Pulling fusion covers back along a counterexample section #
A semi-filter argument often studies a circuit over one ambient space while
the combinatorial cover lives over the complement of a different target. A
SemifilterPullback records the bridge:
- a section from source counterexamples into the circuit's ambient space;
- a reference point in the circuit space for each source witness;
- soundness of every circuit generator under pullback; and
- separation of the target from the image of the section.
Every target circuit then gives a pair cover of the source problem. The pair associated with an AND gate is obtained by pulling its two argument sets back along the section, and the cover cost is exactly the circuit's AND cost.
Data transporting semi-filter witnesses from source to a set
construction problem target.
- counterexampleMap : Problem.Outside source → Δ
Embed each source counterexample into the target ambient space.
- referencePoint : SemifilterWitness source admissible → Δ
Reference point used for a particular source witness.
- input_sound (witness : SemifilterWitness source admissible) (input : Fin target.inputCount) : self.referencePoint witness ∈ target.inputs input → self.counterexampleMap ⁻¹' target.inputs input ∈ witness.filter
Reference-true target generators pull back to accepted source sets.
- target_reference (witness : SemifilterWitness source admissible) : self.referencePoint witness ∈ target.target
Every reference point belongs to the target.
- section_avoids_target (counterexample : Problem.Outside source) : self.counterexampleMap counterexample ∉ target.target
The counterexample section avoids the target.
Instances For
Observation model induced by a semi-filter pullback.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pulled-back pair contributed by an AND atom.
Equations
- One or more equations did not get rendered due to their size.
- Algebraic.Fusion.Atom.pullbackPair? pullback { op := Algebraic.AndOr.Op.or, arguments := arguments } = none
Instances For
Pull back all intersection pairs from a list of target atoms.
Equations
- pullback.pairs atoms = List.filterMap (Algebraic.Fusion.Atom.pullbackPair? pullback) atoms
Instances For
Pulled-back pair count is the AND weight of the atoms.
Preserving an atom's pulled-back pair is enough to preserve the atom in the pullback observation model.
A constructing target circuit yields a pair cover of the source problem.
Equations
- pullback.pairCoverOfCircuit circuit constructs = { pairs := pullback.pairs (Algebraic.Fusion.circuitAtoms circuit (Algebraic.AndOr.setInterpretation Δ) target.inputs), isCover := ⋯ }
Instances For
Pullback preserves the exact AND cost of a constructing circuit.
A lower bound for source pair covers transfers across a pullback to every constructing target circuit.