Algebra-generic fusion lower bounds #
Fusion arguments turn the gates of a concrete computation into a static cover of a family of observations. This file contains the part of that argument which is independent of Boolean sets, semi-filters, or any particular circuit basis.
An observation compares two predicates on every semantic value: a reference predicate and an observed predicate. Inputs satisfy the implication from the reference predicate to the observed predicate, while the target violates it. Consequently, every circuit constructing the target contains a gate at which that implication is not preserved. The resulting local gate configurations cover all observations, and their total weight is exactly the circuit cost.
A fixed algebraic construction problem: construct target from inputs.
- inputCount : ℕ
Number of available generators.
- inputs : Fin self.inputCount → U
The generators available as circuit inputs.
- target : U
The value to be constructed.
Instances For
The semantic result of a fusion atom.
Instances For
The weight of one fusion atom.
Instances For
Total weight of a list of fusion atoms.
Equations
- Algebraic.Fusion.Atom.listCost atoms operationCost = (List.map (fun (atom : Algebraic.Fusion.Atom σ U) => atom.cost operationCost) atoms).sum
Instances For
An observation model for one construction problem. A witness supplies a reference predicate and an observed predicate on semantic values. Every input is sound for every witness, whereas the target is reference-true and observed-false.
The model deliberately imposes no Boolean or order structure on U. For
set-theoretic fusion, witnesses will be points equipped with semi-filters. For
arithmetic circuits they can instead be linear, rank, derivative, or other
algebraic observations.
- Witness : Type w
Observations which every proposed cover must exclude.
The reference view of a semantic value.
The fused or approximating view of a semantic value.
- input_sound (witness : self.Witness) (input : Fin problem.inputCount) : self.reference witness (problem.inputs input) → self.observed witness (problem.inputs input)
Every generator is sound under every observation.
The target is true in every reference view.
The target is false in every observed view.
Instances For
The reference-to-observed implication at one semantic value.
Instances For
A witness preserves an atom when sound arguments imply a sound result.
Equations
Instances For
A list of atoms covers a model when no witness preserves every atom.
Equations
- model.IsCover atoms = ∀ (witness : model.Witness), ¬∀ atom ∈ atoms, atom.PreservedBy model witness
Instances For
A proof-carrying finite fusion cover.
Local gate configurations in the cover.
Every observation is violated by some atom in the list.
Instances For
Total operation weight of a fusion cover.
Equations
- cover.cost = Algebraic.Fusion.Atom.listCost cover.atoms operationCost
Instances For
Minimum weighted cover cost, or ⊤ if no finite cover exists.
Equations
- model.coverComplexity = ⨅ (cover : Algebraic.Fusion.Cover model), ↑cover.cost
Instances For
Every concrete cover upper-bounds minimum cover complexity.
A line evaluated after a prefix program, viewed as a fusion atom.
Equations
Instances For
The result of a line's fusion atom is exactly the line evaluation.
Semantic gate configurations of a program, in topological order.
Equations
- One or more equations did not get rendered due to their size.
- Algebraic.Fusion.programAtoms interpretation input Cslib.Circuits.Program.empty = []
Instances For
Extracted atoms have exactly the weighted cost of the source program.
If a witness preserves every extracted atom, then every wire in the program is sound for that witness.
A circuit constructs a problem when its sole output is the target value.
Equations
Instances For
Semantic gate configurations extracted from a circuit.
Equations
- Algebraic.Fusion.circuitAtoms circuit interpretation input = Algebraic.Fusion.programAtoms interpretation input circuit.program
Instances For
Extracted circuit atoms have exactly the circuit's weighted cost.
Every circuit constructing the target supplies a fusion cover.
Equations
- Algebraic.Fusion.coverOfCircuit model circuit constructs = { atoms := Algebraic.Fusion.circuitAtoms circuit interpretation problem.inputs, isCover := ⋯ }
Instances For
The cover extracted from a circuit has exactly the circuit's cost.
A lower bound for every fusion cover is a circuit-cost lower bound.
Cover complexity lower-bounds every circuit constructing the target.
A packaged combinatorial lower bound for one fusion model.
- bound : ℕ
Claimed weighted lower bound.
Every finite fusion cover pays the claimed bound.
Instances For
A fusion framework proves its bound for every constructing circuit.