Skip to main content
NM-RFC-0034

Static XOR-to-phase oracle adapters

Design document · English reading edition

RFCs record designs and changes. A proposal appearing here does not mean its feature is ready to use. Explore current language support

Status recorded in the original: Proposed

Bound original source · SHA-256
96d366aa1a48c01e60d61831fe01c873df348f456b565d3bb4bcc67ffcafa2d1

Reading edition reviewed: 2026-10-02

Purpose and scope

Proposes a static verified conversion from an XOR oracle to a phase effect. Dynamic oracle values that capture runtime qubits and unchecked implicit coercions are rejected.

Core design rules

  • Conversion is one-way and combines XorOracle<N,1> with a caller-owned |-> resource.
  • MinusAncilla<1> ownership and restoration are verified explicitly.
  • The resulting phase effect remains subject to Tier B verification with full sign, phase and restoration checks.

Example from the original

This example illustrates the design recorded in the original. It is not by itself a claim of executable or stable support; check required options and the current version.

nm
derive phase_oracle marked_by_f<const N: Int>
  from xor_oracle package.example@1.2.3::f
  using MinusAncilla<1>;

Limits and interpretation

  • Revision 2 is a design contract; it creates no executable ready range, package export or Playground toggle.
  • The conversion does not raise qubit, verification or runtime budgets.

Status and implementation boundary

The source is proposed and gated by pre-implementation review. Distinguish this static adapter design from existing oracle calls or automatic runtime conversion.

Table 1
Review topicInformation to check
Source revisionSHA-256 digest bound to this reading edition
AvailabilityCurrent capability record and tool options
Evidence boundaryModel, size and interpretation limits above