Existence of path-canonical orientations #
Every orientation of a boundary-relative transition system can be repaired into a path-canonical one by flipping exactly the internal flags lying on non-canonically oriented boundary-to-boundary chains.
Main results #
EdgeSubset.exists_pathCanonical— from any orientation of a relative transition system, a path-canonical orientation of the same system exists.EdgeSubset.canonOrientation— the orientation it produces, built by flipping every chain whose low end points outwards.
Proof route #
BadFlagmarks the pairing-side flags of chains whose low-labelled boundary end has an outgoing entry edge (ChainNonCanon); the symmetric formulation covers every internal flag of such a chain, since match-side flags are the pairing-side flags of the reverse chain (iterWalk_reverse).- The flip set is closed under the matching (
badFlag_match) and under the edge pairing on internal partners (badFlag_pairing), so negatingisOuton it yields a valid orientation (canonOrientation). - Exit steps of a forward walk are unique
(
exit_step_unique), and a pairing-side flag's forward walk exits at its chain's base end (chain_flag_exit); hence the chain data witnessing badness of an entry flag are pinned to the entry's own chain, and the flip decision at each entry flag matches its chain's canonicality status (pathCanonical_canonOrientation).
1. Exit uniqueness and chain membership #
Exit uniqueness: two boundary-exit data for the forward walk of one flag agree on the exit step.
Chain-flag exit data: the forward walk of the pairing-side
flag at step m of a chain from b has internal pairings before
step m and exits at b at step m.
The path match of a boundary end equals the terminal pairing of any boundary-terminated chain data from it (via exit uniqueness — no fuel bound required on the given data).
A flag whose partner is a boundary flag is matched to it.
2. Non-canonical chains and the flip set #
The chain from boundary end b is non-canonically oriented:
its lower-labelled end — whichever of b and its path match that is —
has an outgoing entry edge.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Non-canonicality passes to the opposite chain end.
The flip set: f is a pairing-side flag of a
non-canonically oriented boundary-to-boundary chain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Match closure: the flip set is closed under the matching — the match of a pairing-side flag is a pairing-side flag of the reverse chain, whose base end is the path match of the original.
Pairing closure: the flip set is closed under the edge pairing whenever the partner is internal — the partner is a match-side flag, i.e. a pairing-side flag of the reverse chain.
3. The flipped orientation #
The candidate canonical orientation as a raw flag function: negate on the flip set.
Equations
- RS.EdgeSubset.canonIsOut κ o f = if RS.EdgeSubset.BadFlag κ o f then !o.isOut f else o.isOut f
Instances For
On a flag of a badly oriented chain the repair reverses.
Elsewhere it leaves the orientation alone.
The flipped orientation: negate the given orientation on the flip set. The closure lemmas make the flip commute with both orientation axioms.
Equations
- RS.EdgeSubset.canonOrientation κ o = { isOut := RS.EdgeSubset.canonIsOut κ o, match_flip := ⋯, pairing_flip := ⋯ }
Instances For
The repaired orientation's table is that repair.
4. Canonicality of the flipped orientation #
The flipped orientation is path-canonical: at each low-end entry flag, exit uniqueness pins any badness witness to the entry's own chain, so the flip decision matches the chain's prior status.
Existence and its canonical-frame form #
Existence of path-canonical orientations: any orientation of a boundary-relative transition system can be repaired into a path-canonical orientation of the same system.