The free collapse descends to the module power #
The collapse freeCollapse A V n : (A ⊗ V) ^ ⊗ n ⟶ A ⊗ V ^ ⊗ n of
FreePow.lean multiplies all the heads of a word of free letters
into a single head at the front. Here it is shown to coequalise
the slot relations that present the module power of the free module
A ⊗ V, so that it descends to freeCollapseDesc.
The engine is head absorption freeModShuffle A P V viewed as the
laxity of the functor V ↦ A ⊗ V: it is natural, associative and
unital (freeModShuffle_natural_left,
freeModShuffle_assoc_inv, freeModShuffle_unit), and the collapse
is its iterate. Generalised associativity of a laxity is
freeCollapse_concat, the compatibility of the collapse with
concatenation of words.
Given that, a slot relation is local: whiskering the ambient letters
away, both legs reduce to the two-letter window
((A ⊗ V) ⊗ A) ⊗ (A ⊗ V) ⟶ A ⊗ (V ⊗ V), on which the left leg
multiplies the extra scalar into the first head and the right leg
into the second. The two differ by a single crossing of the two
heads that are multiplied first — a braid identity of the ambient
symmetric structure, freeWindow_braid — which commutativity of A
absorbs.
Throughout, the module structure on A ⊗ V is freeModObj A V; the
carrier is spelt (freeMod A V).X so that instance synthesis finds
it.
The laws of head absorption #
Naturality of head absorption in the accumulated block.
Naturality of head absorption in the accumulated block.
Associativity of head absorption, in inverse-associator
form: the mirror of RS.freeModShuffle_assoc.
Associativity of head absorption, in inverse-associator
form: the mirror of RS.freeModShuffle_assoc.
Unitality of head absorption.
The collapse of a concatenation #
The collapse of a concatenation: collapsing a concatenated word is collapsing each part and multiplying the two heads.
The window of a relation slot #
The descended collapse #
The collapse coequalises the slot relations: a scalar absorbed on either side of a slot ends up in the same head.
The descended collapse.
Equations
- RS.freeCollapseDesc A V n = RS.modPowDesc A (RS.freeMod A V).X (RS.freeCollapse A V n) ⋯