theorem
Hex.Perm.Cycle.State.seen_of_full
{n : Nat}
{p : Perm n}
{old seen : Vector Bool n}
{c : Array (Fin n)}
{x : Fin n}
(s : State p old seen c x)
(ho : Invariant p old)
(hc : n ≤ c.size)
:
At zero fuel there are already at least n distinct entries. A further
fresh point would give n+1 distinct elements of Fin n.
theorem
Hex.Perm.Cycle.visit_valid
{n : Nat}
(p : Perm n)
(old seen : Vector Bool n)
(c : Array (Fin n))
(x : Fin n)
(fuel : Nat)
(s : State p old seen c x)
(ho : Invariant p old)
(bound : n ≤ fuel + c.size)
:
The actual visit loop returns a complete cycle, with exact new marks and no overlap with the cycles that were already marked.