The image-list API retained for certificate sources produced by earlier releases.
Equations
- Hex.PermGroup.Kernel.images n g = List.map (fun (i : Fin n) => ↑(g i)) (List.finRange n)
Instances For
theorem
Hex.PermGroup.Kernel.eq_top_of_hasOrder
{n : ℕ}
{gs : List (Equiv.Perm (Fin n))}
(h : HasOrder (List.map Perm.ofEquiv gs).toArray n.factorial)
:
theorem
Hex.PermGroup.Kernel.map_pack_cons
{n : ℕ}
{g : Equiv.Perm (Fin n)}
{gs : List (Equiv.Perm (Fin n))}
{x : ℕ}
{xs : List ℕ}
(h : pack (Perm.ofEquiv g) = x)
(t : List.map pack (List.map Perm.ofEquiv gs) = xs)
:
theorem
Hex.PermGroup.Kernel.card_of_check
{n : ℕ}
{gs : List (Equiv.Perm (Fin n))}
{inputs : List ℕ}
{c : Certificate}
{N : ℕ}
(hS : List.map pack (List.map Perm.ofEquiv gs) = inputs)
(h : check n inputs c = true)
(hN : order c = N)
:
theorem
Hex.PermGroup.Kernel.mem_of_check
{n : ℕ}
{gs : List (Equiv.Perm (Fin n))}
{inputs : List ℕ}
{c : Certificate}
{g : Equiv.Perm (Fin n)}
{x : ℕ}
(hS : List.map pack (List.map Perm.ofEquiv gs) = inputs)
(h : check n inputs c = true)
(hx : pack (Perm.ofEquiv g) = x)
(hs : sift n (width n) (ident n (width n)) c x = true)
:
theorem
Hex.PermGroup.Kernel.not_mem_of_check
{n : ℕ}
{gs : List (Equiv.Perm (Fin n))}
{inputs : List ℕ}
{c : Certificate}
{g : Equiv.Perm (Fin n)}
{x : ℕ}
(hS : List.map pack (List.map Perm.ofEquiv gs) = inputs)
(h : check n inputs c = true)
(hx : pack (Perm.ofEquiv g) = x)
(hs : sift n (width n) (ident n (width n)) c x = false)
:
g ∉ Subgroup.closure {x : Equiv.Perm (Fin n) | x ∈ gs}
theorem
Hex.PermGroup.Kernel.eq_top_of_check
{n : ℕ}
{gs : List (Equiv.Perm (Fin n))}
{inputs : List ℕ}
{c : Certificate}
(hS : List.map pack (List.map Perm.ofEquiv gs) = inputs)
(h : check n inputs c = true)
(hN : order c = n.factorial)
: