Open circuit count for boundary-relative transition systems #
For an edge subset F that may have boundary flags, the internal
circuit count (internalCircuitCount) is defined only when
F.allInternal holds. This file generalises the count to open
edge subsets by restricting to the periodic flags — internal flags
whose forward walk eventually returns to them.
Main definitions #
PeriodicFlag— a flag on a closed circuit: internal, with the walk staying internal and returning to it.periodicFlags— the finset of periodic flags.walkPermPeriodic— the walk restricted to periodic flags as a permutation.openCircuitCount—(cycleType.card + fixedPoints) / 2on periodic flags.
Main results #
openCircuitCount_of_allInternal— when all flags are internal the open and internal circuit counts agree.internal_periodic_or_terminates— every internal flag is either periodic or its chain reaches the boundary.not_periodic_of_boundary_chain— boundary-terminating flags are not periodic.
1. PeriodicFlag #
A flag on a closed circuit: it is internal, every intermediate pairing stays internal, and the walk returns to it.
Equations
- κ.PeriodicFlag f = (f ∈ F.internalFlags ∧ ∃ (n : ℕ), 1 ≤ n ∧ (∀ j < n, W.pairing (RS.EdgeSubset.iterWalk κ f j) ∈ F.internalFlags) ∧ RS.EdgeSubset.iterWalk κ f n = f)
Instances For
A periodic flag is internal.
Periodicity helpers #
Shift a period: iterWalk κ f (n + k) = iterWalk κ f k when
iterWalk κ f n = f.
All pairings along a periodic walk are internal.
All iterates along a periodic walk are internal.
The walk-successor of a periodic flag is periodic (same period).
2. periodicFlags #
The finset of periodic flags.
Equations
- κ.periodicFlags = {f ∈ F.internalFlags | ∃ (n : ℕ), 1 ≤ n ∧ (∀ j < n, W.pairing (RS.EdgeSubset.iterWalk κ f j) ∈ F.internalFlags) ∧ RS.EdgeSubset.iterWalk κ f n = f}
Instances For
Membership in periodicFlags iff PeriodicFlag.
A periodic flag is internal.
Walk closure on periodic flags #
The walk maps periodic flags to periodic flags.
The walk is injective on periodic flags.
3. walkPermPeriodic #
The walk permutation restricted to periodic flags.
Equations
- κ.walkPermPeriodic = Equiv.ofBijective (fun (f : ↥κ.periodicFlags) => ⟨κ.internalWalk ↑f, ⋯⟩) ⋯
Instances For
4. openCircuitCount #
The open circuit count: half the orbit count of the walk on periodic flags.
Equations
Instances For
Backward period extraction #
If the walk repeats at positions i and i + d (with all
intermediate pairings internal), then it has period d from
position 0.
Pigeonhole period extraction #
5. Compatibility with internalCircuitCount #
Under allInternal, every internal flag is periodic (via
pigeonhole on the walk iterates).
The equivalence between periodic-flag and internal-flag subtypes
under allInternal.
Equations
- RS.EdgeSubset.periodicEquivInternal κ hall = { toFun := fun (g : ↥κ.periodicFlags) => ⟨↑g, ⋯⟩, invFun := fun (g : ↥F.internalFlags) => ⟨↑g, ⋯⟩, left_inv := ⋯, right_inv := ⋯ }
Instances For
The two walk permutations agree under the canonical equivalence.
Compatibility: for a closed edge subset, openCircuitCount
equals internalCircuitCount.
6. Boundary paths are not periodic #
The chain from a flag with all-internal pairings always returns
none (never reaches the boundary).
A flag whose chain reaches the boundary is not periodic.
Dichotomy: periodic or boundary-terminating #
Every internal flag is either periodic or its chain reaches the boundary.
The edge-pairing reversal on periodic flags #
Reversing every periodic flag along its own edge conjugates the walk permutation into its inverse, which is what makes the open circuits come in pairs.
The periodic flags are closed under the edge pairing: a closed circuit's edges lie wholly on it.
The edge-pairing reversal on periodic flags.
Equations
- RS.EdgeSubset.revPerm κ = Function.Involutive.toPerm (fun (x : ↥κ.periodicFlags) => ⟨W.pairing ↑x, ⋯⟩) ⋯
Instances For
The reversal conjugates the walk to its inverse: traversing a circuit backwards.
The reversal is an involution.
Equivalently, it is its own inverse.