A persistent assertion on every node and sweep, including the first descent, exhausted calls, and nonlocal returns.
Equations
- One or more equations did not get rendered due to their size.
Instances For
structure
Hex.GraphIso.Nauty.Generic.Preserve
{n : Nat}
{σ γ : Type}
[Policy σ n]
(ctx : γ)
(inf tcLevel : Nat)
(P : σ → Prop)
:
Local preservation rules for the actual policy operations. These have
no recursive correctness premise; sound composes them by the shared engine.
- afterSweep (first : Bool) (level size index : Nat) (st : σ) : P st → P (Policy.afterSweep first level size index st)
Instances For
theorem
Hex.GraphIso.Nauty.Generic.Preserve.node_step
{n : Nat}
{σ γ : Type}
[Policy σ n]
{ctx : γ}
{inf tcLevel : Nat}
{P : σ → Prop}
(h : Preserve ctx inf tcLevel P)
{fuel : Nat}
{next : SweepFn σ n}
(hn : (preserveContract n P).sweepValid fuel (n + 1) next)
(first : Bool)
(level numcells : Nat)
(st : σ)
(hp : P st)
:
theorem
Hex.GraphIso.Nauty.Generic.Preserve.sweep_step
{n : Nat}
{σ γ : Type}
[Policy σ n]
{ctx : γ}
{inf tcLevel : Nat}
{P : σ → Prop}
(h : Preserve ctx inf tcLevel P)
{fuel cfuel : Nat}
{descend : NodeFn σ}
{next : SweepFn σ n}
(hd : (preserveContract n P).nodeValid fuel descend)
(hn : (preserveContract n P).sweepValid fuel cfuel next)
(first : Bool)
(level numcells tc tv1 tv index : Nat)
(cell : VSet n)
(st : σ)
(hp : P st)
:
theorem
Hex.GraphIso.Nauty.Generic.Preserve.sound
{n : Nat}
{σ γ : Type}
[Policy σ n]
{ctx : γ}
{inf tcLevel : Nat}
{P : σ → Prop}
(h : Preserve ctx inf tcLevel P)
:
SoundPolicy ctx inf tcLevel (preserveContract n P)
The shared mutual recursion preserves the assertion on every path.