def
Hex.GraphIso.Nauty.Generation.Carries
{n k : Nat}
(G : Colored n k)
(gs : List (Perm n))
(base : List (Fin n))
(u v : Fin n)
:
A carrier is generated by the supplied final list and fixes the active base. The list is independent of either search implementation.
Equations
- Hex.GraphIso.Nauty.Generation.Carries G gs base u v = ∃ (p : Hex.Perm n), Hex.GraphIso.Perm.Generated gs p ∧ Hex.GraphIso.IsIso G G p ∧ Hex.GraphIso.Perm.Fixes base p ∧ p.get u = v
Instances For
theorem
Hex.GraphIso.Nauty.Generation.Carries.mono
{n k : Nat}
{G : Colored n k}
{gs : List (Perm n)}
{base : List (Fin n)}
{u v : Fin n}
{more : List (Perm n)}
(h : Carries G gs base u v)
(hsub : ∀ (p : Perm n), p ∈ gs → p ∈ more)
:
Carries G more base u v
Retaining the emitted generators retains their carrier words.
def
Hex.GraphIso.Nauty.Generation.Realizes
{n k : Nat}
(G : Colored n k)
(gs : List (Perm n))
(store : List (Array Nat))
:
Every recorded array is represented in the supplied generated group, with its exact pointwise action and colour preservation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Hex.GraphIso.Nauty.Generation.Realizes.mono
{n k : Nat}
{G : Colored n k}
{gs : List (Perm n)}
{before after : List (Array Nat)}
(h : Realizes G gs after)
(hsub : ∀ (γ : Array Nat), γ ∈ before → γ ∈ after)
:
Realizes G gs before
Restricting a containing trace preserves all admission witnesses.
theorem
Hex.GraphIso.Nauty.Generation.carries_word
{n k : Nat}
{G : Colored n k}
{gs : List (Perm n)}
{base : List (Fin n)}
{u v : Fin n}
{w : List (Array Nat)}
(htrace : Realizes G gs w)
(hfix : ∀ (γ : Array Nat), γ ∈ w → ∀ (b : Fin n), b ∈ base → γ[↑b]! = ↑b)
(hmap : applyWord w ↑u = ↑v)
:
Carries G gs base u v
Recorded words fixing the active base supply generated carriers.
theorem
Hex.GraphIso.Nauty.Generation.carries_pointer
{n k : Nat}
{G : Colored n k}
{gs : List (Perm n)}
{base : List (Fin n)}
{store : List (Array Nat)}
{orbits : Array Nat}
{v : Fin n}
(hsound : OrbSound (OrbConn store n) orbits n)
(htrace : Realizes G gs store)
(hfix : ∀ (γ : Array Nat), γ ∈ store → ∀ (b : Fin n), b ∈ base → γ[↑b]! = ↑b)
:
An orbit pointer is a generated carrier when its actual trace fixes the active base and is included in the final containing trace.
theorem
Hex.GraphIso.Nauty.Generation.carries_label
{n k : Nat}
{G : Colored n k}
{gs : List (Perm n)}
{base : List (Fin n)}
{ctx : Ctx n}
{ref cur : Array Nat}
{store : Array (Array Nat)}
{pos : Nat}
{u v : Fin n}
(h : LabelCarrier ctx ref cur store)
(htrace : Realizes G gs store.toList)
(hfix : ∀ (γ : Array Nat), γ ∈ store → ∀ (b : Fin n), b ∈ base → γ[↑b]! = ↑b)
(hpos : pos < n)
(href : ref[pos]! = ↑u)
(hcur : cur[pos]! = ↑v)
:
Carries G gs base u v
A returned scatter supplies the generated carrier between its reference vertex and the chosen child vertex.