Isomorphism theory of fragments #
An equivalence of fragments Fragment.Equiv W₁ W₂ (defined in
RS/Definitions.lean) is a pair of type equivalences on flags and
vertices commuting with attachment, pairing, and boundary-flag
data, preserving the circle count. This module proves the
equivalences form a groupoid (refl, symm, trans) and are
congruences for the fragment operations: relabelling, disjoint
union, and single-pair gluing.
The flag equivalence sends boundary flags to boundary flags.
The identity equivalence.
Equations
- RS.Fragment.Equiv.refl W = { flagEquiv := Equiv.refl W.Flag, vertexEquiv := Equiv.refl W.Vertex, attach_comm := ⋯, pairing_comm := ⋯, circles_eq := ⋯ }
Instances For
The composite equivalence.
Equations
- e₁.trans e₂ = { flagEquiv := e₁.flagEquiv.trans e₂.flagEquiv, vertexEquiv := e₁.vertexEquiv.trans e₂.vertexEquiv, attach_comm := ⋯, pairing_comm := ⋯, circles_eq := ⋯ }
Instances For
Congruences #
Relabelling commutes with fragment equivalence.
Equations
- e.relabelCongr σ = { flagEquiv := e.flagEquiv, vertexEquiv := e.vertexEquiv, attach_comm := ⋯, pairing_comm := ⋯, circles_eq := ⋯ }
Instances For
Disjoint union commutes with fragment equivalence.
Equations
- e₁.disjUnionCongr e₂ = { flagEquiv := e₁.flagEquiv.sumCongr e₂.flagEquiv, vertexEquiv := e₁.vertexEquiv.sumCongr e₂.vertexEquiv, attach_comm := ⋯, pairing_comm := ⋯, circles_eq := ⋯ }
Instances For
Glue-pair congruence #
The flag equivalence restricts to surviving flags.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The glue case (closed vs open) is preserved by the equivalence.
The closed case: the flag equivalence restricts to a
gluePairClosed congruence.
Equations
- e.gluePairClosedCongr h₁ h₂ = { flagEquiv := e.survivingFlagEquiv i j, vertexEquiv := e.vertexEquiv, attach_comm := ⋯, pairing_comm := ⋯, circles_eq := ⋯ }
Instances For
Rewire commutation #
The open case: the flag equivalence restricts to a
gluePairOpen congruence.
Equations
- e.gluePairOpenCongr hopen₁ hopen₂ hij = { flagEquiv := e.survivingFlagEquiv i j, vertexEquiv := e.vertexEquiv, attach_comm := ⋯, pairing_comm := ⋯, circles_eq := ⋯ }
Instances For
Single-pair gluing commutes with fragment equivalence.
Equations
- e.gluePairCongr hij = id (if h : W₁.pairing (W₁.boundaryFlag i) = W₁.boundaryFlag j then ⋯.mpr (⋯.mpr (e.gluePairClosedCongr h ⋯)) else ⋯.mpr (⋯.mpr (e.gluePairOpenCongr h ⋯ hij)))
Instances For
Relabel algebra #
Relabelling by the identity is the identity on fragments, up to equivalence.
Equations
- One or more equations did not get rendered due to their size.