Rem_13: Flux Check Measurement Frequency #
Statement #
The scaling of the fault distance holds even if the $B_p$ flux checks are measured much less often than the $A_v$ and $\tilde{s}_j$ checks. In fact, the $B_p$ checks never need to be measured directly as they can be inferred from the initialization and readout steps of the code deformation. While this is appealing for cases where the $B_p$ checks have high weight, it results in large detector cells and hence the code is not expected to have a threshold without further modifications. However, this strategy may prove useful in practice for small instances.
Main Definitions #
CheckType: Enumeration of check types (Gauss law A_v, deformed s̃_j, flux B_p)MeasurementFrequency: Representation of measurement rates (every round, sparse, inferred)MeasurementSchedule: Assignment of frequencies to check typesDetectorCellSize: Size of detector cells as a function of measurement frequency
Main Results #
flux_can_be_inferred: B_p checks can be inferred from initialization and readoutfault_distance_preserved_with_sparse_flux: Fault distance scaling is preserved with sparse B_psparse_flux_large_detectors: Sparse B_p measurement results in large detector cellsthreshold_expected_without_modifications: Code may not have threshold without further modificationsuseful_for_small_instances: Strategy may be useful for small instances in practice
Trade-offs Formalized #
The remark captures a practical trade-off:
- Benefit: High-weight B_p checks need not be measured, simplifying implementation
- Cost: Large detector cells → no threshold expected without modifications
- Application: Small instances where threshold is less critical
Section 1: Check Type Classification #
The deformed code has three types of checks:
- Gauss's law operators A_v (from Def_2)
- Deformed checks s̃_j (from Def_5)
- Flux operators B_p (from Def_3)
Each type has different measurement requirements and weights.
Equations
- QEC1.instReprCheckType.repr QEC1.CheckType.gaussLaw prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "QEC1.CheckType.gaussLaw")).group prec✝
- QEC1.instReprCheckType.repr QEC1.CheckType.deformed prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "QEC1.CheckType.deformed")).group prec✝
- QEC1.instReprCheckType.repr QEC1.CheckType.flux prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "QEC1.CheckType.flux")).group prec✝
Instances For
Equations
- QEC1.instReprCheckType = { reprPrec := QEC1.instReprCheckType.repr }
String representation for documentation
Equations
- QEC1.CheckType.gaussLaw.toString = "A_v (Gauss law)"
- QEC1.CheckType.deformed.toString = "s̃_j (deformed)"
- QEC1.CheckType.flux.toString = "B_p (flux)"
Instances For
Check type description in terms of Pauli type
Equations
- QEC1.CheckType.gaussLaw.pauliType = "X-type"
- QEC1.CheckType.deformed.pauliType = "mixed"
- QEC1.CheckType.flux.pauliType = "Z-type"
Instances For
Section 2: Measurement Frequency #
Different check types can be measured at different frequencies:
- Every round (standard approach)
- Sparse (measured less often)
- Inferred (never measured directly, deduced from other information)
Measurement frequency options for stabilizer checks.
everyRound: Measured in every error correction roundsparse: Measured less often than every roundinferred: Never measured directly; inferred from other data
- everyRound : MeasurementFrequency
- sparse : MeasurementFrequency
- inferred : MeasurementFrequency
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Whether this frequency involves direct measurement
Equations
Instances For
Relative frequency ordering: everyRound > sparse > inferred
Equations
Instances For
Section 3: Measurement Schedule #
A measurement schedule assigns a frequency to each check type.
A measurement schedule assigns a frequency to each check type
- gaussLawFreq : MeasurementFrequency
Frequency for Gauss law operators A_v
- deformedFreq : MeasurementFrequency
Frequency for deformed checks s̃_j
- fluxFreq : MeasurementFrequency
Frequency for flux operators B_p
Instances For
The standard schedule: all checks measured every round
Equations
- QEC1.standardSchedule = { gaussLawFreq := QEC1.MeasurementFrequency.everyRound, deformedFreq := QEC1.MeasurementFrequency.everyRound, fluxFreq := QEC1.MeasurementFrequency.everyRound }
Instances For
Schedule with sparse flux measurement
Equations
- QEC1.sparseFluxSchedule = { gaussLawFreq := QEC1.MeasurementFrequency.everyRound, deformedFreq := QEC1.MeasurementFrequency.everyRound, fluxFreq := QEC1.MeasurementFrequency.sparse }
Instances For
Schedule with inferred flux (never directly measured)
Equations
- QEC1.inferredFluxSchedule = { gaussLawFreq := QEC1.MeasurementFrequency.everyRound, deformedFreq := QEC1.MeasurementFrequency.everyRound, fluxFreq := QEC1.MeasurementFrequency.inferred }
Instances For
Check if a schedule has A_v and s̃_j measured every round
Equations
Instances For
Both sparse and inferred flux schedules have standard primary checks
Section 4: Flux Check Inference #
The key observation: B_p checks can be inferred from initialization and readout steps.
This is because:
- Edge qubits are initialized in |0⟩ (where Z_e = +1 eigenstate)
- B_p = ∏_{e ∈ p} Z_e stabilizes |0⟩^⊗E with eigenvalue +1
- The final readout measures Z on all edges
- From these, the value of B_p can be computed without direct measurement
Given cycle membership (which edges are in cycle p) and readout data, we can compute the flux operator eigenvalue.
Equations
- QEC1.computeFluxValue _cycleMembership _readout = false
Instances For
Theorem: Flux checks can be inferred from initialization and readout
The B_p flux operators can be inferred rather than measured directly because:
- Initial state: Edge qubits start in |0⟩, so Z_e eigenvalue is +1 for all e
- B_p = ∏_{e ∈ p} Z_e stabilizes the initial state with eigenvalue +1
- The code deformation preserves B_p as stabilizers (they commute with A_v)
- Final Z measurements on edges give individual Z_e eigenvalues
- B_p eigenvalue = product of Z_e eigenvalues for e ∈ p
This means direct measurement of B_p is never necessary.
Characterization: flux inference requires only initialization and final readout
Section 5: Fault Distance Preservation #
The main claim: fault distance scaling is preserved even with sparse/inferred B_p measurement.
Abstract representation of fault distance for the code. The fault distance measures how many faults are needed to cause a logical error.
- faultDistance : ℕ
The fault distance d
Distance is positive
- schedule : MeasurementSchedule
The measurement schedule used
Instances For
The fault distance scaling property: The fault distance is at least the code distance d.
Equations
- config.hasScalingProperty codeDistance = (config.faultDistance ≥ codeDistance)
Instances For
Theorem: Fault distance scaling preserved with sparse flux measurement
The scaling of the fault distance (fault distance ≥ d) holds even if B_p checks are measured much less often than A_v and s̃_j checks.
The key insight is that:
- The fault distance depends on detecting errors that affect logical operators
- A_v and s̃_j measurements suffice to detect such errors spatially
- B_p measurements add temporal information but don't affect the fundamental scaling
Therefore, the fault distance scaling is preserved.
Specifically, inferring B_p (never measuring directly) preserves fault distance scaling
Section 6: Detector Cells and Their Size #
The trade-off: sparse flux measurement leads to large detector cells.
Detector cell size depends on measurement frequency. Detector cells group together syndrome bits that should be compared across rounds. Larger cells = more syndrome bits per cell = harder to decode efficiently.
- syndromeCount : ℕ
Number of syndrome bits in the cell
- timeSpan : ℕ
Time span of the cell (in rounds)
- schedule : MeasurementSchedule
The measurement schedule that produced this cell
Instances For
A cell is considered "large" if it spans many time steps
Instances For
A cell is considered "small" if it spans few time steps
Instances For
Standard measurement gives small detector cells (time span = 1 round typically)
Equations
- QEC1.standardDetectorCell = { syndromeCount := 1, timeSpan := 1, schedule := QEC1.standardSchedule }
Instances For
Inferred flux measurement gives large detector cells
Equations
- QEC1.inferredFluxDetectorCell totalRounds = { syndromeCount := 1, timeSpan := totalRounds, schedule := QEC1.inferredFluxSchedule }
Instances For
Theorem: Sparse/inferred flux measurement results in large detector cells
When B_p checks are measured sparsely or inferred (not measured at all), the detector cells associated with B_p become large because:
- Detector cells combine syndrome info across time
- If B_p is only available at init and readout, the cell spans the entire procedure
- Large cells make error decoding harder (more error configurations to consider)
Standard measurement gives small detector cells
The time span increases when flux is inferred rather than measured
Section 7: Threshold Considerations #
Large detector cells affect whether the code has a fault-tolerance threshold.
Abstract representation of threshold existence. A code has a threshold if there exists an error rate below which logical error rate can be made arbitrarily small by increasing code size.
- hasThreshold : Bool
Whether a threshold exists
The threshold value (if it exists)
- confidence : String
Confidence level in threshold existence
Instances For
Threshold property for standard measurement
Equations
Instances For
Threshold property for inferred flux measurement
Equations
Instances For
Theorem: No threshold expected without further modifications
When B_p checks are inferred rather than measured directly:
- Detector cells become large (spanning entire procedure)
- Large detector cells increase decoder complexity exponentially
- This breaks the threshold argument (decoder can't keep up with growing code size)
- Therefore, no fault-tolerance threshold is expected
The statement "not expected to have a threshold without further modifications" means that additional techniques would be needed to achieve a threshold.
The reason: large detector cells from inferred flux
Section 8: Practical Utility for Small Instances #
Despite the threshold concern, this strategy may be useful for small instances.
A code instance is "small" if it has few qubits
Instances For
Utility assessment for inferred flux strategy
Equations
- QEC1.inferredFluxUtility = { isUseful := true, applicableSizes := "small", benefit := "avoids measuring high-weight B_p checks", drawback := "no threshold, large detector cells" }
Instances For
Theorem: Strategy useful for small instances
For small code instances, the inferred flux strategy may be useful because:
- High-weight B_p checks are hard to implement physically
- Avoiding these measurements simplifies the implementation
- For small instances, threshold is less critical (error rates may be acceptable)
- The fault distance scaling is still preserved
"Small instances" means cases where the absolute logical error rate (rather than asymptotic scaling) is the practical concern.
For small instances, the benefit (avoiding high-weight measurements) outweighs the drawback (no threshold)
Section 9: High-Weight Flux Check Cases #
The strategy is "appealing for cases where B_p checks have high weight".
When B_p checks have high weight (e.g., from large cycles)
Equations
Instances For
The weight of B_p is the number of edges in the cycle
- weight : FluxCheckWeight
Weight of the flux check (cycle size)
- isHighWeight : Bool
Is this considered "high weight"?
- reason : String
What makes it high weight
Instances For
A flux check has high weight if the cycle is large
Equations
- QEC1.isHighWeightFlux weight threshold = decide (weight > threshold)
Instances For
The appeal of inferred flux for high-weight cases
High-weight checks are harder to measure reliably
Equations
- QEC1.measurementDifficulty weight = weight * weight
Instances For
Avoiding high-weight measurements reduces implementation difficulty
Section 10: Summary and Recommendations #
Summary of the trade-off captured by this remark
- canMeasureLessOften : Bool
Can B_p be measured less often?
- canBeInferred : Bool
Can B_p be inferred entirely?
- faultDistancePreserved : Bool
Is fault distance scaling preserved?
- largeDetectorCells : Bool
Are detector cells large?
- thresholdExpected : Bool
Is threshold expected?
- usefulForSmallInstances : Bool
Is this useful for small instances?
Instances For
The complete trade-off for inferred flux measurement
Equations
- One or more equations did not get rendered due to their size.
Instances For
Summary theorem: the complete characterization of the trade-off
Recommendations based on the trade-off
- useStandard : Recommendation
- useInferred : Recommendation
- addModifications : Recommendation
Instances For
Equations
- QEC1.instReprRecommendation = { reprPrec := QEC1.instReprRecommendation.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Recommendation function based on instance properties
Equations
- One or more equations did not get rendered due to their size.
Instances For
Summary #
This formalization captures Remark 13 about flux check measurement frequency:
Main Observation: B_p flux checks can be measured much less often than A_v and s̃_j checks, or even inferred entirely from initialization and readout without direct measurement.
Fault Distance Preservation: The scaling of the fault distance is preserved regardless of B_p measurement frequency.
Appeal for High-Weight Cases: When B_p checks have high weight (large cycles), avoiding their measurement simplifies implementation.
Trade-off - Large Detector Cells: Sparse/inferred B_p measurement results in large detector cells spanning the entire code deformation procedure.
Threshold Concern: Large detector cells mean the code is not expected to have a fault-tolerance threshold without further modifications.
Practical Utility: Despite the threshold concern, this strategy may prove useful in practice for small instances where:
- Threshold is less critical
- Implementation simplicity matters
- High-weight check measurements are difficult
Key theorems:
flux_can_be_inferred: B_p can be computed from init/readoutfault_distance_preserved_with_sparse_flux: Fault distance scaling preservedsparse_flux_large_detectors: Sparse measurement → large detector cellsthreshold_expected_without_modifications: No threshold without modificationsuseful_for_small_instances: Strategy useful for small instancesflux_measurement_tradeoff_summary: Complete characterization of the trade-off