Terminal measure
Terminal-measurement validation for physical Gemini programs (post-unroll).
PhysicalTerminalMeasurementValidation checks that the unrolled squin kernel
has exactly one qubit.stmts.Measure statement and that it consumes every
qubit allocated in the circuit.
Run this after SquinToNative + AggressiveUnroll so that
qubit.stmts.New and qubit.stmts.Measure are present as direct IR
statements rather than Invokes.
The _PhysicalTerminalMeasurementAnalysis Forward pass accumulates a
measure_count on the interpreter; the per-statement impl is registered in
bloqade.gemini.common.impl.terminal_measure under the key
"gemini.validate.physical.terminal_measure".
PhysicalTerminalMeasurementValidation
dataclass
PhysicalTerminalMeasurementValidation()
Bases: ValidationPass
flowchart TD
bloqade.gemini.common.validation.terminal_measure.PhysicalTerminalMeasurementValidation[PhysicalTerminalMeasurementValidation]
click bloqade.gemini.common.validation.terminal_measure.PhysicalTerminalMeasurementValidation href "" "bloqade.gemini.common.validation.terminal_measure.PhysicalTerminalMeasurementValidation"
Validate that a physical (post-unroll) circuit contains exactly one
qubit.stmts.Measure consuming all allocated qubits.