Documentation

HexPermGroup.Normal.CoreStep

def Hex.PermGroup.Core.Member {n : Nat} (G H : Group n) (p : Perm n) :

Membership in every ambient conjugate of the input subgroup.

Equations
Instances For
    theorem Hex.PermGroup.Core.Member.inside {n : Nat} {G H : Group n} {p : Perm n} (h : Member G H p) :
    theorem Hex.PermGroup.Core.Member.conj {n : Nat} {G H : Group n} {p g : Perm n} (h : Member G H p) (hg : Generated G.generators g) :
    Member G H (g.conj p)

    A proposed strict intersection, with a checked group and a complete search certificate. The conjugate is reconstructed from the ambient generator index.

    Instances For
      def Hex.PermGroup.Core.step {n : Nat} (G H : Group n) (s : Step n) :

      Use inverse conjugation so that a failed normality test immediately witnesses strict containment. Ambient chain generators are symmetric.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem Hex.PermGroup.Core.step_inside {n : Nat} {G H K : Group n} {s : Step n} (h : step G H s = some K) :
        theorem Hex.PermGroup.Core.step_retains {n : Nat} {G H K : Group n} {s : Step n} {P : Perm n → Prop} (h : step G H s = some K) (hH : ∀ (p : Perm n), P p → Generated H.generators p) (hc : ∀ (g p : Perm n), Generated G.generators g → P p → P (g.conj p)) (p : Perm n) :
        P p → Generated K.generators p
        theorem Hex.PermGroup.Core.step_double {n : Nat} {G H K : Group n} {s : Step n} (h : step G H s = some K) :
        theorem Hex.PermGroup.Core.replay_inside {n : Nat} {G H K : Group n} {trace : List (Step n)} (h : replay G H trace = some K) :
        theorem Hex.PermGroup.Core.replay_retains {n : Nat} {G H K : Group n} {trace : List (Step n)} {P : Perm n → Prop} (h : replay G H trace = some K) (hH : ∀ (p : Perm n), P p → Generated H.generators p) (hc : ∀ (g p : Perm n), Generated G.generators g → P p → P (g.conj p)) (p : Perm n) :
        P p → Generated K.generators p
        theorem Hex.PermGroup.Core.replay_growth {n : Nat} {G H K : Group n} {trace : List (Step n)} (h : replay G H trace = some K) :
        2 ^ trace.length * K.order ≤ H.order

        Each strict intersection at least halves the group order.