Signed insertion of graded multilinear maps #
This file defines one-slot substitution of multilinear maps. The inputs are split into a prefix, the block consumed by the inserted map, and a suffix. Using sum types for these three blocks keeps the evaluation rule definitional and avoids transports between propositionally equal finite arities.
For graded maps, inserting a map of degree q after homogeneous prefix inputs of degrees d i
contributes the Koszul coefficient
(-1) ^ (q * ∑ i, d i).
The signed operation takes the intended degrees of the homogeneous prefix inputs as an explicit parameter. The API does not enforce that these degrees correspond to the inputs; on the intended component the sign is a scalar, so the result is again a multilinear map. The homogeneity theorem proves that insertion adds the degrees of the outer and inner operations.
Main definitions #
MultilinearMap.evalNat: evaluate a finite-arity map on a natural-indexed input family.TauCeti.replaceBlock: collapse a consecutive block in a natural-indexed family.Fin.blockEquivandFin.oneSlotEquiv: canonical reindexings for one-slot substitution.MultilinearMap.oneSlot: substitute one multilinear map into a specified block of another.MultilinearMap.koszulSign: the sign acquired by crossing the prefix inputs.MultilinearMap.signedOneSlot: one-slot substitution scaled by the Koszul sign for supplied prefix degrees, correct when the prefix inputs have those degrees.
References #
- Ezra Getzler and J. D. S. Jones, A-infinity algebras and the cyclic bar complex, Sections 1--2.
- Bernhard Keller, Introduction to A-infinity algebras and modules, Section 3.1.
Evaluate an arity-k operation on the first k entries of a family indexed by the naturals.
Instances For
evalNat only reads the entries whose indices are below the operation's arity.
Substitute g into the middle input of f.
The domain is divided into prefix inputs α, the inputs β consumed by g, and suffix
inputs γ. Correspondingly, f has prefix inputs, one middle input, and suffix inputs.
Equations
Instances For
Evaluating oneSlot f g substitutes the value of g on the middle block between the
unchanged prefix and suffix inputs of f.
Identify a prefix, inserted block, and suffix with their total finite arity.
Equations
- Fin.blockEquiv p s t = ((Equiv.refl (Fin p)).sumCongr finSumFinEquiv).trans (finSumFinEquiv.trans (finCongr ⋯))
Instances For
Identify a prefix, one collapsed slot, and suffix with their total finite arity.
Equations
- Fin.oneSlotEquiv p t = ((Equiv.refl (Fin p)).sumCongr (finOneEquiv.symm.sumCongr (Equiv.refl (Fin t)))).trans (Fin.blockEquiv p 1 t)
Instances For
One-slot substitution adds the degree of the inserted map to the degree of the outer map.
The Koszul coefficient acquired when a degree-q operation crosses homogeneous inputs with
degrees d i.
Equations
- MultilinearMap.koszulSign q d = TauCeti.negOnePowCast R (q * ∑ i : α, d i)
Instances For
Signed one-slot substitution using d as the supplied degrees of the homogeneous prefix
inputs.
The API does not enforce that d corresponds to the input components. On the intended component
the sign is constant, so scalar multiplication preserves multilinearity.
Equations
- MultilinearMap.signedOneSlot q d f g = MultilinearMap.koszulSign q d • f.oneSlot g
Instances For
Evaluating signedOneSlot q d f g gives the one-slot substitution formula multiplied by the
Koszul sign determined by q and the supplied prefix degrees d.
Signed one-slot substitution has the sum of the degrees of its two operations.