A search node describes the coset prefix * <suffix.generators>. The
checked suffix fixes every point preceding the current base position.
- base : Nat
- suffix : Chain n
- inside (p : Perm n) : Generated self.suffix.generators p → Generated G.generators p
- rep : Element G
Instances For
Equations
- Hex.PermGroup.Search.Node.root G = { base := 0, suffix := G.chain, checked := ⋯, inside := ⋯, rep := Hex.PermGroup.Element.id G }
Instances For
theorem
Hex.PermGroup.Search.Node.generated
{n : Nat}
{G : Group n}
(t : Node G)
{p : Perm n}
(hp : t.Contains p)
:
Generated G.generators p
theorem
Hex.PermGroup.Search.Node.level_checked
{n : Nat}
{G : Group n}
(t : Node G)
{level : Level n}
{tail : Chain n}
(hs : t.suffix = Chain.cons level tail)
:
theorem
Hex.PermGroup.Search.Node.tail_inside
{n : Nat}
{G : Group n}
(t : Node G)
{level : Level n}
{tail : Chain n}
(hs : t.suffix = Chain.cons level tail)
{p : Perm n}
(hp : Generated tail.generators p)
:
Generated G.generators p
theorem
Hex.PermGroup.Search.Node.contains_children
{n : Nat}
{G : Group n}
(t : Node G)
{level : Level n}
{tail : Chain n}
(hs : t.suffix = Chain.cons level tail)
(p : Perm n)
:
Every parent completion belongs to a child, and every child stays in its parent. The children are reconstructed from the checked chain.
theorem
Hex.PermGroup.Search.Node.child_disjoint
{n : Nat}
{G : Group n}
(t : Node G)
{level : Level n}
{tail : Chain n}
(hs : t.suffix = Chain.cons level tail)
{i j : Fin level.orbit.points.size}
{p : Perm n}
(hi : (t.child hs i).Contains p)
(hj : (t.child hs j).Contains p)
:
Distinct children are disjoint, detected at the next assigned base point.