Crossing the monoid over a block of the multi-tensor #
The endgame of ModMulti.lean: the braided crossing of the monoid
A over a whole first block of modules factors through the slot
relations of the multi-tensor. From it, the concatenation map
descends through the binary modTensor of two bundled multi-tensor
modules, and the braiding of two adjacent factors descends to the
two-element multi-tensor.
modCrossMid,modCrossLegOf: the boundary-insertion carrier — the monoid seated between two blocks, under a prefix — and its assembly of a boundary window into a prefix-whiskered leg.modCrossHeadWin/modCrossYWin: the two boundary windows — the monoid crosses the whole first block and acts on its head, or acts on the head of the second block.modCross_rel: the fold-level crossing relation — the two boundary legs agree after the projection, at every prefix; the crossing is consumed one factor at a time, one slot relation per factor.modListCross: the prefix-free crossing relation, in the typed form consumed by themodTensordescent.modTensorMulti: the concatenation map descended through the binary module tensor product of two bundled multi-tensors, with its defining equationmodTensorπ_multi.modWinSwap,modMultiSwapPair: the braiding of the two factors of a two-element multi-tensor, by descent through the single slot relation, with its defining equationmodMultiπ_swapPair.
The boundary-insertion carrier #
The monoid seated at the boundary between two blocks, under a
prefix. The prefix enters by recursion, exactly as in
modMultiMid, so that slot-relation consumption below can match
prefixes on the nose.
The boundary-insertion object: the monoid between the folds of two blocks, whiskered under a prefix.
Equations
- RS.modCrossMid A Xs Ys [] = CategoryTheory.MonoidalCategoryStruct.tensorObj (CategoryTheory.MonoidalCategoryStruct.tensorObj (RS.modList A Xs) A) (RS.modList A Ys)
- RS.modCrossMid A Xs Ys (P :: rest) = CategoryTheory.MonoidalCategoryStruct.tensorObj P.X (RS.modCrossMid A Xs Ys rest)
Instances For
Assemble a boundary window into a prefix-whiskered leg.
Equations
- RS.modCrossLegOf A Xs Ys w [] = w
- RS.modCrossLegOf A Xs Ys w (P :: rest) = CategoryTheory.MonoidalCategoryStruct.whiskerLeft P.X (RS.modCrossLegOf A Xs Ys w rest)
Instances For
The two boundary windows #
The crossing window: the monoid braids over the whole first block and acts on its head.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The stationary window: the monoid acts on the head of the second block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The singleton first block #
For a one-module first block the two boundary windows are the two relation legs of the head slot, up to the unit seed of the fold. The bridge below absorbs the seed and retypes the boundary carrier at the relation object of the slot.
The base bridge: absorb the unit seed of a singleton first block and reassociate onto the relation window of the head slot.
Equations
- One or more equations did not get rendered due to their size.
- RS.modCrossBridge A X Y m (P :: rest) = CategoryTheory.MonoidalCategoryStruct.whiskerLeft P.X (RS.modCrossBridge A X Y m rest)
Instances For
The crossing window of a singleton block is the first relation leg of the head slot, through the bridge.
The stationary window of a singleton block is the second relation leg of the head slot, through the bridge.
The step of the crossing #
For a first block of two or more modules, the crossing decomposes by the hexagon: the monoid braids over the tail of the block first, reaching the relation window of the head slot; the slot relation walks it past the head, and what remains is the crossing of the tail block under a prefix extended by the head.
Peel the head of the first block into the prefix.
Equations
- One or more equations did not get rendered due to their size.
- RS.modCrossPeel A X Xs' Ys (P :: rest) = CategoryTheory.MonoidalCategoryStruct.whiskerLeft P.X (RS.modCrossPeel A X Xs' Ys rest)
Instances For
Peeling passes the stationary window: the stationary window of the extended block is the peel followed by the whiskered stationary window of the tail block.
The step bridge: braid the monoid over the tail of the first block and retype at the relation window of the head slot.
Equations
- One or more equations did not get rendered due to their size.
- RS.modCrossStepBridge A X P l' Ys (P_1 :: rest) = CategoryTheory.MonoidalCategoryStruct.whiskerLeft P_1.X (RS.modCrossStepBridge A X P l' Ys rest)
Instances For
The crossing window decomposes over the head slot: by the hexagon, the full crossing is the step bridge followed by the first relation leg of the head slot.
The step bridge against the second relation leg: past the head slot, what remains is the crossing of the tail block, under the prefix extended by the head.
The crossing relation #
The fold-level crossing relation: after the projection of the multi-tensor, braiding the monoid over the whole first block and acting on its head agrees with acting on the head of the second block, at every ambient prefix. The crossing is consumed one factor at a time, one slot relation per factor.
The crossing relation, prefix-free: braiding the monoid
over the first block and acting on its head agrees, after the
projection, with acting on the head of the second block. This is
the typed form consumed by the modTensor descent below.
Descent of the concatenation through the module tensor #
For a commutative monoid the two bundled multi-tensor modules have
a binary modTensor; the concatenation map coequalizes its two
legs — by the crossing relation — and so descends.
The concatenation coequalizes the binary module-tensor legs of two bundled multi-tensors: the crossing relation, lifted through the projections.
The concatenation descends to the binary module tensor product of two multi-tensors.
Equations
- RS.modTensorMulti A X Y l m = RS.modTensorDesc A (RS.modMultiMod A X l) (RS.modMultiMod A Y m) (RS.modMultiConcat A (X :: l) (Y :: m)) ⋯
Instances For
Defining equation of the descended concatenation against the module-tensor projection.
Defining equation of the descended concatenation against the module-tensor projection.
Defining equation of the descended concatenation against the multi-tensor projections: on the folds it is the fold concatenation.
Defining equation of the descended concatenation against the multi-tensor projections: on the folds it is the fold concatenation.
The braiding at a relation window #
In a symmetric category the braiding of the two module factors of a relation window carries the monoid along; the window legs intertwine it with the plain braiding of the factors, exchanging the two legs. This mirrors the treatment of the symmetric-power slot exchange, at two distinct modules.
Exchange of the two module factors of a relation window,
carrying the monoid along: (x ⊗ c) ⊗ y ↦ (y ⊗ c) ⊗ x.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The window exchange is an involution.
The window exchange is an involution.
The first leg intertwines the window exchange with the braiding: acting on the first factor and braiding is exchanging and acting on the second factor.
The first leg intertwines the window exchange with the braiding: acting on the first factor and braiding is exchanging and acting on the second factor.
The second leg intertwines the window exchange with the braiding, by the involutivity of both.
The second leg intertwines the window exchange with the braiding, by the involutivity of both.
The two-element swap #
The braiding of a two-element multi-tensor: the exchange of the two factors descends, the single slot relation consumed through the window exchange.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Defining equation of the two-element swap: on the fold it is the braiding of the factors, conjugated by the unit seeds.
Defining equation of the two-element swap: on the fold it is the braiding of the factors, conjugated by the unit seeds.