Documentation

Complexitylib.Circuits.SparseSynthesis.Consequences

Scalar continuity and robustness of circuit hardness #

A scalar correction is determined by its support, so its leading constant is one. The vector bound transfers exact lower bounds to circuits making at most square-root-many row errors. Complexity much larger than the correction budget is preserved up to a vanishing relative error, uniformly in the edits.

Scalar square-root continuity has leading constant one.

theorem Complexity.CircuitSparseSynthesis.rowDistance_gt_of_complexity_gt (ε : ℝ) (positive : 0 < ε) :
∃ (p₀ : ℕ), ∀ p ≥ p₀, ∀ m ≤ 2 * p, ∀ (f g : (Fin (2 * p) → Bool) → Fin m → Bool) (s : ℕ), ↑s + (3 + ε) * 2 ^ p < ↑(Cslib.Circuits.complexity Cslib.Circuits.Boolean.interpretation f) → Cslib.Circuits.complexity Cslib.Circuits.Boolean.interpretation g ≤ s → 2 ^ p < Cslib.Circuits.Boolean.Correction.rowDistance f g

A sufficiently large exact lower bound forces more than 2 ^ p row errors. The output width is at most 2 * p, so every comparison has few active outputs.

The same exact-to-approximate transfer with the sharper scalar constant.