structure
Hex.PermGroup.Orbit.Tree.Certificates
{n : Nat}
{S : Array (Perm n)}
{a : Fin n}
(t : Tree S a)
(k : Nat)
:
Transporter roots for the first k discovery entries, sharing an append-only
program. Bounds and transporter invariants are erased during compilation.
- arena : Program.Builder S
Instances For
def
Hex.PermGroup.Orbit.Tree.Certificates.empty
{n : Nat}
{S : Array (Perm n)}
{a : Fin n}
(t : Tree S a)
:
t.Certificates 0
Equations
- Hex.PermGroup.Orbit.Tree.Certificates.empty t = { arena := Hex.PermGroup.Program.Builder.empty S, roots := #v[], size := ⋯, bound := ⋯, image := ⋯, identity := ⋯ }
Instances For
def
Hex.PermGroup.Orbit.Tree.Certificates.append
{n : Nat}
{S : Array (Perm n)}
{a : Fin n}
{t : Tree S a}
{k : Nat}
(c : t.Certificates k)
(hk : k < t.points.size)
(b : Program.Builder S)
(hs : c.arena.values.size ≤ b.values.size)
(he : ∀ (j : Fin c.arena.values.size), b.values[↑j] = c.arena.values[↑j])
(r : Fin b.values.size)
(hi : b.values[↑r].val.get a = t.points[k])
(hid : t.points[k] = a → b.values[↑r].val = Perm.id n)
:
t.Certificates (k + 1)
Retain earlier roots when the arena grows, then append one new transporter.
Equations
Instances For
def
Hex.PermGroup.Orbit.Tree.Certificates.next
{n : Nat}
{S : Array (Perm n)}
{a : Fin n}
{t : Tree S a}
{k : Nat}
(c : t.Certificates k)
(hk : k < t.points.size)
:
t.Certificates (k + 1)
Compile one parent edge. The generator is composed on the left of its parent's transporter, using earlier node references rather than copied words.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[irreducible]
def
Hex.PermGroup.Orbit.Tree.Certificates.finish
{n : Nat}
{S : Array (Perm n)}
{a : Fin n}
{t : Tree S a}
{k : Nat}
(c : t.Certificates k)
:
t.Certificates t.points.size
Compile the remaining entries in discovery order.
Instances For
theorem
Hex.PermGroup.Orbit.Tree.Certificates.finish_size
{n : Nat}
{S : Array (Perm n)}
{a : Fin n}
{t : Tree S a}
{k : Nat}
(c : t.Certificates k)
:
Compiling a tree adds at most two nodes per point, regardless of path length.