The elementary re-pairing move on relative transition systems #
For a fixed edge subset F : EdgeSubset W, this file introduces the
elementary 2-opt move on boundary-relative transition systems and
proves that the moves connect any two systems.
Main definitions #
EdgeSubset.repairFun— the raw re-pairing of a matching function at four flags:a ↦ c,c ↦ a,b ↦ d,d ↦ b.EdgeSubset.RepairSquare— the admissibility data for a move: four pairwise distinct internal flags at a common vertex witha ↔ bandc ↔ dmatched.EdgeSubset.RelTransitionSystem.repair— the elementary move, producing a transition system over the sameF(so the edge subset, itsinternalFlags, and itsboundaryFlagsare untouched by construction).EdgeSubset.RelTransitionSystem.MatchEq— matching equality on internal flags; two systems whose matchings agree onF.internalFlagsare indistinguishable to every field ofRelTransitionSystem, so connectivity is stated up toMatchEq.EdgeSubset.IsRepairStep— one elementary move (up toMatchEq).EdgeSubset.disagreeSet— the internal flags where two systems' matchings differ.
Main results #
EdgeSubset.repair_connectivity— connectivity: any two relative transition systems onFare joined by a finite chain of elementary moves, withMatchEqat the endpoints. The proof is by induction on(disagreeSet κ κ').card: a disagreement atayields an admissible square (repairSquare_of_disagree) whose repair strictly shrinks the disagreement set (disagreeSet_repair_subset).EdgeSubset.IsRepairStep.symm— the move is reversible, so chains can be traversed backwards.EdgeSubset.RelTransitionSystem.Orientation.ofMatchEqand…Orientation.transportRepair— orientation transport acrossMatchEqand (conditionally) across a move.
Orientation transport along a matching equality #
Orientation.transportRepair transports an orientation across a
repair when it already separates a from c
(o.isOut c = !o.isOut a): the directions carry over unchanged.
When instead o.isOut c = o.isOut a the transported orientation
must flip isOut along the walk-orbit segment through c, which
needs the orbit machinery; that construction is
Orientation.segFlip in NonSeparatedStep.lean, with
Orientation.flipOrbit of PathLedger.lean for a periodic
segment.
The raw re-pairing function #
Admissibility data for a move #
The data of an admissible 2-opt re-pairing move on
κ : F.RelTransitionSystem: four pairwise distinct internal flags
a, b, c, d attached to a common vertex v, with a ↔ b and
c ↔ d matched by κ. (The distinctness facts a ≠ b and c ≠ d
are derivable from match_ne and are not recorded.)
Instances For
b is internal.
d is internal.
b ≠ a.
d ≠ c.
κ matches b back to a.
κ matches d back to c.
b sits at the common vertex.
d sits at the common vertex.
The κ-partner of a flag off the square stays off the square.
The elementary move #
The elementary move (2-opt re-pairing): given an admissible
square (a ↔ b, c ↔ d matched, all four distinct, all at vertex
v), the transition system matching a ↔ c and b ↔ d instead,
keeping every other matched pair. The result is a system over the
same edge subset F.
Equations
Instances For
The repaired system's matching at a.
At c.
At b.
At d.
And everywhere else, unchanged.
Matching equality #
Two relative transition systems agree when their matchings agree
on the internal flags. All fields of RelTransitionSystem constrain
only internal flags, so MatchEq-related systems are
interchangeable; the matching's values off F.internalFlags are
junk.
Instances For
Matching equality is reflexive.
It is symmetric.
It is transitive — an equivalence, so chains compose up to it.
Transport of squares and moves #
A repair square transports across matching equality.
Repairing MatchEq-equal systems along the same square yields
MatchEq-equal systems.
The move is an involution: repairing back along the inverse square recovers the original matching on internal flags.
The inverse square: after the move, (a, c, b, d) is again
admissible (the move a ↔ c, b ↔ d back to a ↔ b, c ↔ d).
The elementary step relation #
One elementary move joins κ₁ to κ₂: some admissible square of
κ₁ repairs it to a system matching-equal to κ₂.
Equations
- RS.EdgeSubset.IsRepairStep κ₁ κ₂ = ∃ (a : W.Flag) (b : W.Flag) (c : W.Flag) (d : W.Flag) (v : W.Vertex) (h : RS.EdgeSubset.RepairSquare κ₁ a b c d v), (κ₁.repair a b c d v h).MatchEq κ₂
Instances For
The step relation respects matching equality on both sides.
The step relation is symmetric: every move can be undone by a move, so chains of moves can be reversed.
The disagreement set #
The internal flags at which two transition systems' matchings disagree.
Equations
- RS.EdgeSubset.disagreeSet κ κ' = {f ∈ F.internalFlags | κ.match_ f ≠ κ'.match_ f}
Instances For
Membership in the disagreement set: an internal flag the two matchings send to different places.
The disagreement set is empty exactly for matching-equal systems.
A disagreement at a yields an admissible square: with
b := κ.match_ a, c := κ'.match_ a, d := κ.match_ c, the four
flags are pairwise distinct internal flags at a's vertex.
Disagreement decrease: repairing the square of a disagreement
at a (with c = κ'.match_ a) removes both a and c from the
disagreement set and adds nothing; in particular the new disagreement
set avoids a.
Connectivity #
Connectivity, with an explicit bound on the disagreement count:
strong induction on (disagreeSet κ κ').card.
Connectivity of the elementary move: any two boundary-relative transition systems on the same edge subset are joined by a finite chain of elementary re-pairing moves, matching-equal to the given systems at the endpoints.
Orientation transport #
Orientations transport across matching equality: an orientation
constrains isOut only through the matching's values on internal
flags.
Equations
- RS.EdgeSubset.RelTransitionSystem.Orientation.ofMatchEq heq o = { isOut := o.isOut, match_flip := ⋯, pairing_flip := ⋯ }
Instances For
Orientation transport along a move (separated case): when the
orientation already separates a and c (isOut c = !isOut a), it
transports unchanged along the repair. When instead
isOut c = isOut a the transported orientation must flip isOut
along a walk segment; that is Orientation.segFlip.
Equations
- RS.EdgeSubset.RelTransitionSystem.Orientation.transportRepair h o hflip = { isOut := o.isOut, match_flip := ⋯, pairing_flip := ⋯ }