Interaction-span Fusion for arithmetic circuits #
Many cancellation-tolerant arithmetic lower bounds use a linear feature with the following product rule: the feature of a product is a linear combination of the two old feature values plus one new interaction term. Hessian matrices are the motivating example; their new term is the symmetrized outer product of the two gradients.
This module isolates the circuit-combinatorial part. It proves that the target feature lies in the span of one interaction term for each multiplication gate. Concrete feature maps and rank estimates are supplied in separate modules.
Algebraic data whose product rule creates one new interaction term.
- feature : U → Q
Linearized feature used to obstruct the target.
- interaction : U → U → Q
New feature contribution created by multiplying two values.
Free inputs have zero feature.
Addition is linear at feature level.
Named scalar constants have zero feature.
- feature_mul (left right : U) : ∃ (leftScalar : K) (rightScalar : K), self.feature (left * right) = leftScalar • self.feature left + rightScalar • self.feature right + self.interaction left right
A product propagates its input features linearly and creates exactly one additional interaction.
Instances For
A submodule obstruction for an interaction certificate.
- submodule : Submodule K Q
Candidate span of the interactions already made available.
The target feature is not yet in the candidate span.
Instances For
Fusion model induced by an interaction certificate.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Addition preserves every interaction-span witness.
Named constants preserve every interaction-span witness.
A multiplication preserves a witness whenever its new interaction is already in the witness submodule.
Retain the new interaction created by a multiplication atom and discard addition and constant atoms.
Equations
- Algebraic.Fusion.Arithmetic.Interaction.Atom.interaction? certificate { op := Algebraic.Arithmetic.Op.add, arguments := arguments } = none
- Algebraic.Fusion.Arithmetic.Interaction.Atom.interaction? certificate { op := Algebraic.Arithmetic.Op.mul, arguments := arguments } = some (certificate.interaction (arguments 0) (arguments 1))
- Algebraic.Fusion.Arithmetic.Interaction.Atom.interaction? certificate { op := Algebraic.Arithmetic.Op.constant value, arguments := arguments } = none
Instances For
Interaction terms extracted from a list of arithmetic atoms.
Equations
- Algebraic.Fusion.Arithmetic.Interaction.interactions certificate atoms = List.filterMap (Algebraic.Fusion.Arithmetic.Interaction.Atom.interaction? certificate) atoms
Instances For
Extracting interactions is the same ordered projection as first extracting multiplication occurrences and then mapping the certificate's interaction function. In particular, this preserves repeated semantic multiplications as distinct occurrences.
The number of extracted interactions is exactly multiplication cost.
Submodule generated by all multiplication interactions in an atom list.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The interaction of a multiplication atom in the list belongs to the generated interaction submodule.
Every interaction-span Fusion cover spans the target feature.
A constructing arithmetic circuit spans its target feature using exactly one extracted interaction per multiplication gate.
Every wire feature belongs to the interaction span of any atom list that contains all atoms of the program. Unlike the cover argument, this invariant does not single out one output and is therefore the bridge to multi-output lower bounds.
Every output feature of a circuit lies in the common span of all its multiplication interactions.