A checked invariant partition that is neither discrete nor indiscrete.
- point : Fin n
- solution : Blocks.Solution G.chain.generators [(a, self.point)]
Instances For
theorem
Hex.PermGroup.Primitivity.Failure.invariant
{n : Nat}
{G : Group n}
{a : Fin n}
(f : Failure G a)
:
theorem
Hex.PermGroup.Primitivity.Failure.nondiscrete
{n : Nat}
{G : Group n}
{a : Fin n}
(f : Failure G a)
:
theorem
Hex.PermGroup.Primitivity.Failure.not_primitive
{n : Nat}
{G : Group n}
{a : Fin n}
(f : Failure G a)
:
inductive
Hex.PermGroup.Primitivity.Result
{n : Nat}
(G : Group n)
(a : Fin n)
(k : Nat)
(hk : k ≤ n)
:
Either all tests through k are complete, or an explicit nontrivial
invariant partition has been found.
- complete {n : Nat} {G : Group n} {a : Fin n} {k : Nat} {hk : k ≤ n} (checks : Checks G a k hk) : Result G a k hk
- imprimitive {n : Nat} {G : Group n} {a : Fin n} {k : Nat} {hk : k ≤ n} (failure : Failure G a) : Result G a k hk
Instances For
def
Hex.PermGroup.Primitivity.Checks.push
{n : Nat}
{G : Group n}
{a : Fin n}
{k : Nat}
{hk : k ≤ n}
(c : Checks G a k hk)
(hn : k + 1 ≤ n)
(trace : List (Fin n × Fin n))
(h :
have b := ⟨k, ⋯⟩;
b ≠ a → Blocks.check G.chain.generators [(a, b)] (Partition.indiscrete n) trace = true)
:
Append one successful seed test to the already checked prefix.
Instances For
def
Hex.PermGroup.Primitivity.scan
{n : Nat}
(G : Group n)
(a : Fin n)
(k : Nat)
(hk : k ≤ n)
:
Result G a k hk
Visit other points in natural order, retaining each completed block trace and stopping immediately at a nontrivial invariant partition.
Equations
- One or more equations did not get rendered due to their size.
- Hex.PermGroup.Primitivity.scan G a 0 hk_2 = Hex.PermGroup.Primitivity.Result.complete { traces := #v[], checked := ⋯ }