Typed coordinates for the Proposition 5.9 collapse #
This module records the length and multiplicity ledgers carried by the finite-word collapse, and exposes the change of variables
raw collapse data ≃ (inside list, positive composition, collapsed list).
The last item is an actual Equiv: the block list is recovered by splitting
the inside list at the composition boundaries. In particular, none of the
coordinate projections is used as though it were injective.
Exact additive length ledger before solving for the collapsed length.
Every inside letter survives expansion.
The collapsed word has the paper's length
expanded length - inside length + number of blocks.
Fixed-original-length form of collapsed_length.
Multiplicity transport to the two coordinate words #
Multiplicity of an inside letter in π₁.
Equations
- Anderson4D.insideMultiplicity mult a = mult (Sum.inl a)
Instances For
Multiplicity in π₂: the new marker occurs once for each inside block,
while every outside multiplicity is unchanged.
Equations
- Anderson4D.collapsedMultiplicity mult d (Sum.inl val) = d.blocks.length
- Anderson4D.collapsedMultiplicity mult d (Sum.inr b) = mult (Sum.inr b)
Instances For
π₁ has exactly the inside multiplicities prescribed by the original
word.
π₂ has one marker per inside block and preserves every outside
multiplicity.
Total inside multiplicity is the length of π₁.
Total collapsed multiplicity is the length of π₂.
The total π₂ multiplicity in original-length coordinates.
Fixed-original-length form of the total π₂ multiplicity ledger.
Genuine (π₁, composition, π₂) coordinates #
Typed collapse coordinates. compositionBlocks together with its two
certificates is exactly a positive composition of inside.length; keeping
its data fields exposed makes equality of coordinates proof-irrelevant.
- inside : List A
The flattened inside word
π₁. Positive block lengths, i.e. the composition between
π₁andπ₂.- compositionBlocks_pos {k : ℕ} : k ∈ self.compositionBlocks → 0 < k
The collapsed outside word
π₂.- noTwoAdjacentMarkers : NoTwoAdjacentMarkers self.collapsed
Instances For
The genuine mathlib Composition carried by the coordinate block
lengths.
Equations
- q.composition = { blocks := q.compositionBlocks, blocks_pos := ⋯, blocks_sum := ⋯ }
Instances For
Forget the explicit coordinates by splitting π₁ at the composition
boundaries.
Equations
Instances For
Read the flattened inside word, its block composition, and the collapsed word from raw collapse data.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Raw block/collapsed data are equivalent to the explicit
(π₁, composition, π₂) coordinates.
Equations
- Anderson4D.rawCollapseCoordinatesEquiv A B = { toFun := Anderson4D.rawToCollapseCoordinates, invFun := Anderson4D.collapseCoordinatesToRaw, left_inv := ⋯, right_inv := ⋯ }