Documentation

HexGraphIso.Nauty.Policy.Generic.Reference

structure Hex.GraphIso.Nauty.Generic.ReferencePolicy {n : Nat} {σ α γ : Type} [Policy σ n] (ctx : γ) (inf tcLevel : Nat) (project : σ → α) :

Local operations outside the first descent preserve a projection of the policy state, such as the first labelling, codes, and target array.

Instances For
    theorem Hex.GraphIso.Nauty.Generic.ReferencePolicy.stable {n : Nat} {σ α γ : Type} [Policy σ n] {ctx : γ} {inf tcLevel : Nat} {project : σ → α} (h : ReferencePolicy ctx inf tcLevel project) (ref : α) :
    StablePolicy ctx inf tcLevel fun (st : σ) => project st = ref

    Equal projections preserve the invariant of matching a fixed reference.

    theorem Hex.GraphIso.Nauty.Generic.node_reference {n : Nat} {σ α γ : Type} [Policy σ n] {ctx : γ} {inf tcLevel : Nat} {project : σ → α} (h : ReferencePolicy ctx inf tcLevel project) (fuel level numcells : Nat) (st : σ) :
    project (node false ctx inf tcLevel fuel level numcells st).snd = project st

    An off-path node preserves the projected reference fields.

    theorem Hex.GraphIso.Nauty.Generic.sweep_reference {n : Nat} {σ α γ : Type} [Policy σ n] {ctx : γ} {inf tcLevel : Nat} {project : σ → α} (h : ReferencePolicy ctx inf tcLevel project) (first : Bool) (fuel cfuel level numcells tc tv1 index : Nat) (cursor : Option Nat) (cell : VSet n) (st : σ) (hpast : Past first tv1 cursor) :
    project (sweep first ctx inf tcLevel fuel cfuel level numcells tc tv1 cursor cell index st).snd.snd = project st

    Later siblings preserve the projected reference fields.