Transport of transition data across a single-pair glue #
For W' := W.gluePair i j hij (in either the open or the closed
case) the internal flags of a glued edge subset EdgeSubset.mk s'
correspond to the internal flags of the lifted edge subset
(liftSubsetOpen / liftSubsetClosed) via Subtype.val: gluing
touches only the two boundary flags, and internal flags are
attached to vertices.
Along this correspondence we transport boundary-relative
transition systems (RelTransitionSystem.unglueOpen/glueOpen,
unglueClosed/glueClosed) and their orientations in both
directions, prove the round trips on match_ pointwise at
internal flags, relate the walk steps (iterWalk-style
match_ ∘ pairing) away from the glued interface, record the
exact rewired step at the interface (what the circuit-count delta
of GlueCircuitDelta.lean reads), and prove that
openCircuitCount is stable under the transport when the glued
edge's flags do not participate.
Rewire evaluation lemmas #
Away from the glued interface, rewire agrees with the
original pairing.
At the i-side of the interface, rewire jumps to the far
end of the j-edge.
At the j-side of the interface, rewire jumps to the far
end of the i-edge.
A surviving flag whose pairing is the i-boundary flag is the
far end of the i-edge.
A surviving flag whose pairing is the j-boundary flag is the
far end of the j-edge.
Generic transport helpers #
An internal flag of any edge subset of W survives a glue at
{i, j}: it is attached to a vertex, hence is no boundary flag.
Extend a surviving-flag self-map to all of W.Flag:
apply it through the subtype on surviving flags, identity
elsewhere.
Equations
- RS.EdgeSubset.unglueMatch m f = if h : f ≠ W.boundaryFlag i ∧ f ≠ W.boundaryFlag j then ↑(m ⟨f, h⟩) else f
Instances For
The unglued matching at a surviving flag is the glued matching
read through Subtype.val.
The same, stated on a surviving flag's underlying flag.
Restrict a flag self-map of W to the surviving flags on a
given internal-flag set: apply it through Subtype.val there
(with a supplied surviving-ness certificate), identity
elsewhere.
Equations
- RS.EdgeSubset.glueMatch m P hP f' = if h : f' ∈ P then ⟨m ↑f', ⋯⟩ else f'
Instances For
The glued matching on the flags it is defined at agrees with the matching it came from.
Extend a surviving-flag orientation to all of W.Flag:
through the subtype on surviving flags, false elsewhere.
Equations
- RS.EdgeSubset.unglueIsOut b f = if h : f ≠ W.boundaryFlag i ∧ f ≠ W.boundaryFlag j then b ⟨f, h⟩ else false
Instances For
The unglued orientation at a surviving flag.
The same, stated on a surviving flag's underlying flag.
The open case #
Internal-flag correspondence (open case) #
Internal-flag correspondence (open case): the internal
flags of the glued subset and of the lifted subset correspond via
Subtype.val.
Forward direction of the correspondence, val form.
Backward direction of the correspondence, mk form.
Transition transport (open case) #
Unglue (open case): transport a transition system on the glued subset to the lifted subset. The matching acts through the surviving-flag subtype; identity junk at the two glued boundary flags.
Equations
- RS.EdgeSubset.RelTransitionSystem.unglueOpen hij hopen s' hc' hc κ' = { match_ := RS.EdgeSubset.unglueMatch κ'.match_, match_invol := ⋯, match_ne := ⋯, match_mem := ⋯, match_vertex := ⋯ }
Instances For
The open ungluing's matching at a surviving flag.
The same on a surviving flag's underlying flag.
The surviving-ness certificate for restricting a lifted-side matching to the glued subset.
Glue (open case): restrict a transition system on the lifted subset to the glued subset.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The open gluing's matching at an internal flag: the round trip agrees with the system it started from.
Round trips (open case) #
Round trip lifted → glued → lifted: match_ agrees pointwise
at internal flags.
Orientation transport (open case) #
Unglue an orientation (open case): through the subtype on
surviving flags, false junk at the two glued boundary flags
(which are never internal, so the structure fields do not
constrain them).
Equations
- RS.EdgeSubset.unglueOrientationOpen hij hopen s' hc' hc κ' o' = { isOut := RS.EdgeSubset.unglueIsOut o'.isOut, match_flip := ⋯, pairing_flip := ⋯ }
Instances For
Glue an orientation (open case): through Subtype.val.
The rewired pairing crosses the interface, so a flip-compatibility
hypothesis between the two far ends is required (it is vacuous
when the interface edges do not participate).
Equations
- RS.EdgeSubset.glueOrientationOpen hij hopen s' hc' hc κ o hcompat = { isOut := fun (f' : (W.gluePairOpen i j hij hopen).Flag) => o.isOut ↑f', match_flip := ⋯, pairing_flip := ⋯ }
Instances For
Walk-step agreement (open case) #
The glued pairing at projection level, away from the interface.
Walk-step agreement (open case, glue direction): when the lifted pairing target is internal, the glued walk step projects to the lifted walk step.
The interface (open case): the rewired step #
The glued pairing at the i-side of the interface, projection
level.
The glued pairing at the j-side of the interface, projection
level.
openCircuitCount stability (open case, interface not in #
the subset)
When the far end of the i-edge is absent, so is the far end
of the j-edge (by closure under the glued pairing).
When the interface is not in the subset, the glued pairing
agrees with the W-pairing on all subset flags.
Walk correspondence (glued-side continuation data): the lifted walk is the projection of the glued walk, and the glued iterates stay internal.
Walk correspondence (lifted-side continuation data): the converse bookkeeping, with the glued pairing-internality reconstructed step by step.
Periodic flags project forward along the unglue transport.
Periodic flags lift backward along the unglue transport.
The val-bijection between the periodic flags of the two
sides.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The walk permutations on periodic flags agree under the
val-bijection.
openCircuitCount stability (open case): when the glued
edge's flags are not in the subset, the open circuit count is
unchanged by the unglue transport.
The closed case #
In the closed case the pairing of a surviving flag is itself surviving: the closed-off edge pairs its two boundary flags with each other.
In the closed case the glued pairing agrees with the
W-pairing on all surviving flags, at projection level.
Internal-flag correspondence (closed case) #
Internal-flag correspondence (closed case).
Forward direction of the correspondence, val form.
Backward direction of the correspondence, mk form.
Transition transport (closed case) #
Unglue (closed case): transport a transition system on the glued subset to the lifted subset.
Equations
- RS.EdgeSubset.RelTransitionSystem.unglueClosed hclosed b s' hc' hc κ' = { match_ := RS.EdgeSubset.unglueMatch κ'.match_, match_invol := ⋯, match_ne := ⋯, match_mem := ⋯, match_vertex := ⋯ }
Instances For
The closed ungluing's matching at a surviving flag.
The same on a surviving flag's underlying flag.
The surviving-ness certificate for restricting a lifted-side matching to the glued subset (closed case).
Glue (closed case): restrict a transition system on the lifted subset to the glued subset.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The closed gluing's matching at an internal flag: the round trip again agrees.
Round trips (closed case) #
Round trip lifted → glued → lifted: match_ agrees pointwise
at internal flags.
Orientation transport (closed case) #
Unglue an orientation (closed case): through the subtype,
false junk at the two glued boundary flags.
Equations
- RS.EdgeSubset.unglueOrientationClosed hclosed b s' hc' hc κ' o' = { isOut := RS.EdgeSubset.unglueIsOut o'.isOut, match_flip := ⋯, pairing_flip := ⋯ }
Instances For
Glue an orientation (closed case): through Subtype.val.
Unconditional: the closed glued pairing agrees with the
W-pairing on surviving flags.
Equations
- RS.EdgeSubset.glueOrientationClosed hclosed b s' hc' hc κ o = { isOut := fun (f' : (W.gluePairClosed i j hclosed).Flag) => o.isOut ↑f', match_flip := ⋯, pairing_flip := ⋯ }
Instances For
openCircuitCount stability (closed case) #
Walk correspondence (glued-side continuation data), closed case.
Walk correspondence (lifted-side continuation data), closed case.
Periodic flags project forward along the unglue transport (closed case).
Periodic flags lift backward along the unglue transport (closed case).
The val-bijection between the periodic flags of the two
sides (closed case).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The walk permutations on periodic flags agree under the
val-bijection (closed case).
openCircuitCount stability (closed case): the open
circuit count is unchanged by the unglue transport, for either
value of b (the closed-off circle-edge is boundary-attached in
W and never periodic).