原生调度的语义与边界

qaiji.core.native 提供从电路到 CZ 基底的确定性展开、资源时序、JSON 往返及独立认证; qaiji.core.program_native 把认证后的测量事件关联到 L5 调用与输出。 这些入口只从各自子包导入,不改变包根或 qaiji.core 的冻结导出。

输入与展开

Python 电路输入支持 19 种已有门类型(qaiji.GateType):I、X、Y、Z、H、S、T、 RX、RY、RZ、U3、RX90、RX180、CNOT、CX、CZ、SWAP、ISWAP、SQISWAP, 以及顶层测量节点(qaiji.Measure)和仅含门的条件节点 (qaiji.Conditional)。参数须为有限的 Python 内置整数或浮点数, 角度绝对值不超过 2*pi;RX90、RX180 的单个参数表示旋转轴相位。 原有 OpenQASM 编解码器仍拒收 RX90、RX180、ISWAP、SQISWAP; 使用这些门时须从 Python 构造电路。

原生输出只有 I、Z、RZ、RX90、CZ、MEASURE。每个来源组保留 rule_id、来源位置和 显式全局相位;独立矩阵检查验证组的算符关系。测量没有酉矩阵证明,报告中标作 not_applicable。这类算符证据不等于物理保真度或噪声模型验证。

配置与时间

每个量子比特绑定唯一的独占资源;OperationSpec 还可以声明共享资源。 所有实际使用的有序 (kind, qubits) 都必须有规格,没有默认时长或自动交换端点。 cz_couplings 使用升序端点对,表示允许的连接;它不替代有序 CZ 规格,也不提供路由。 I、Z、RZ 时长必须为零;RX90、CZ、MEASURE 时长严格为正。 只有 MEASURE 可有非零 result_latency_ns。

确定性串行调度按来源顺序累加操作时长,不将不同量子比特的操作并行化, 并保留零时长操作的顺序约束。 end_ns 是操作结束边界,ready_ns 是测量结束加结果延迟; all_results_ready_ns 同时涵盖调度结束与所有测量结果就绪时刻。 条件读取同一寄存器每一位最近的测量,按位索引排列;读前未写入会拒收。 条件区域形成全局屏障;嵌套条件、条件内测量、循环、重置、动态表达式与运行时执行均不支持。

认证与持久化

数据格式版本固定为 qaiji.native_schedule.v0,规则集版本固定为 qaiji.cz_basis.v0。 JSON 每层要求完整且精确的字段集合,拒收重复键、未知键、缺字段、非有限数和超过 32 层容器嵌套;数组次序保留。解码不自动取得来源真实性或时序正确性。

原生调度的整数字段拒收布尔值和整数子类,范围通常为 0 <= n < 10**4096, 宽度与数量等字段另要求正数;JSON 整数词法预算为最多 4096 个十进制数字。 宿主 Python 的十进制整数转换限制可能更小,此时读取报 json_parse, 写出报 json_encode;库不会修改进程级限制。有限数值还必须可表示为 IEEE 754 双精度浮点数(binary64)。 这些限制不代表能为极大寄存器或电路分配无限内存。

公开值记录不可修改,嵌套字段复制为声明的类型,序列存为元组,记录不可哈希。 原始电路(qaiji.Circuit)仍可变;每次生成、验证或投影时都会重新捕获来源 并认证。修改电路后,之前的认证结论不再适用;并发修改不受支持。 详细错误位置通过 code / path 或报告提供。

消费边界

qubic_mapping 输出中性标签 IDLE、VIRTUAL_PHASE、PULSE, 或 PULSE_READOUT / REGISTER_RESULT。它不生成 QubiC ISA、DAC 样本或波形, 也不依赖硬件端的默认配置。桥接层输出按调用隔离的事件历史,以及每位最后一次测量 的引用,不产生测量比特值、概率或采样结果。校准与设备元数据引用保持不透明。

完整桥接仍包含 L5 校验与内核引用的计算成本,不承诺端到端线性复杂度或毫秒级时限。 可执行示例见 显式配置的原生调度。