The identity law: stage equivalences #
Composing with a strand bundle is the identity up to fragment
equivalence. The proof runs by descending induction through
glueInterface with the invariant that the stage-t' fragment is
equivalent to (strandBundle t').disjUnion F relabelled along a
stage equivalence relocating the not-yet-glued interface labels of
F into the left label block.
The stage equivalence is assembled from block decompositions: the
five blocks are the strand-in labels A, the strand-out labels
A', the already-glued interface labels B, the not-yet-glued
interface labels C, and the outer labels D; the shuffle
(A ⊕ A') ⊕ ((B ⊕ C) ⊕ D) ≃ ((A ⊕ C) ⊕ A') ⊕ (B ⊕ D) is a plain
constructor permutation with definitional inverses.
The stage relabelling for the identity law: on the left, the
t' strand-in labels, then the t - t' not-yet-glued interface
labels of F, then the t' strand-out labels; on the right, the
t' already-glued interface labels, then the u outer labels.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Label evaluations #
Evaluation of the stage equivalence on a right label: an already-glued interface label stays right, a not-yet-glued interface label relocates to the left block, and an outer label stays right with an offset.
Evaluation of the stage equivalence on a left (strand) label: a strand-in label stays left with its index, a strand-out label goes left with an offset past the interface block.
The base case #
The empty bundle has no flags.
Nor any vertices — it is the empty fragment.
The base case of the identity law: after zero interface gluings, the triply-relabelled strand-0/F union is equivalent to F.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The descent step #
The boundary flag at the right interface label in the relabelled
disjoint union: it is F's boundary flag at label t'.
The glue in the descent step is always the open case.
The flag equivalence for the descent step: surviving flags of the
open glue at stage t' + 1 correspond to flags of the stage-t'
disjoint union (strandBundle t').disjUnion F.
Equations
- One or more equations did not get rendered due to their size.
Instances For
interfaceStepEquiv evaluation lemmas #
The stage step equivalence #
The relabelled strand-fragment union before the next left identity glue.
Equations
- RS.baseFragment t t' u ht F = ((RS.strandBundle (t' + 1)).disjUnion F).relabel (RS.stageEquiv t (t' + 1) u ht)
Instances For
The relabelled strand-fragment union at the target stage of identity descent.
Equations
- RS.targetFragment t t' u ht' F = ((RS.strandBundle t').disjUnion F).relabel (RS.stageEquiv t t' u ht')
Instances For
The source fragment obtained by one open glue in the left identity descent.
Equations
- RS.sourceFragment t t' u ht F = ((RS.baseFragment t t' u ht F).gluePairOpen (Sum.inl ⟨t + t', ⋯⟩) (Sum.inr ⟨t', ⋯⟩) ⋯ ⋯).relabel (RS.interfaceStepEquiv t t' u)
Instances For
Assembly: the left identity law #
The descent step: after one open glue (at the t'-th interface
pair), the resulting fragment is equivalent to the stage-t'
disjoint union relabelled by the stage-t' equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The stage equivalence at t' = t acts as the identity: every
element is mapped to itself.
Relabelling by a pointwise-identity equivalence yields an equivalent fragment.
Equations
- RS.Fragment.Equiv.relabelPointwiseId W e h = { flagEquiv := Equiv.refl (W.relabel e).Flag, vertexEquiv := Equiv.refl (W.relabel e).Vertex, attach_comm := ⋯, pairing_comm := ⋯, circles_eq := ⋯ }
Instances For
Descending induction: iterating glueInterface from stage t'
down to zero, with the stage-t' fragment, yields a result
equivalent to iterating from stage t on the original strand/F
union.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The left identity law for fragment composition: composing with the strand bundle on the left yields an equivalent fragment.
Equations
- RS.composeStrandBundleLeft t u F = ((RS.glueInterfaceStrandBundleDescent t u F 0 ⋯).relabelCongr finSumFinEquiv).trans (RS.stageZeroEquiv t u F)