Documentation

HexPermGroup.Normal.Core

def Hex.PermGroup.Core.check {n : Nat} (G H K : Group n) (trace : List (Step n)) :

Replay strict complete intersections and verify the final normality pass.

Equations
Instances For
    theorem Hex.PermGroup.Core.check_spec {n : Nat} {G H K : Group n} {trace : List (Step n)} (h : check G H K trace = true) (p : Perm n) :
    structure Hex.PermGroup.Core.Result {n : Nat} (G H : Group n) :

    Complete replay data certifies both containment and maximality.

    Instances For
      theorem Hex.PermGroup.Core.Result.checked {n : Nat} {G H : Group n} (c : Result G H) :
      theorem Hex.PermGroup.Core.Result.spec {n : Nat} {G H : Group n} (c : Result G H) (p : Perm n) :
      theorem Hex.PermGroup.Core.Result.greatest {n : Nat} {G H : Group n} (c : Result G H) (N : Group n) (hN : N.IsSubgroup H) (hn : Normal.check G N = true) :
      def Hex.PermGroup.Core.Result.prepend {n : Nat} {G H K : Group n} (s : Step n) (hs : step G H s = some K) (child : Result G K) :
      Result G H
      Equations
      Instances For

        A complete intersection with the inverse conjugate named by a failed normality test. Its generators and search tree are retained for replay.

        Equations
        Instances For
          theorem Hex.PermGroup.Core.cut_step {n : Nat} (G H : Group n) (i : Fin G.chain.generators.size) (j : Fin H.generators.size) (hn : ¬Generated H.generators (G.chain.generators[↑i].conj H.generators[↑j])) :
          step G H { conjugator := ↑i, conjugate := (Group.conjugate G.chain.generators[↑i].inv H).chain, group := (cut G H i).group, certificate := (cut G H i).certificate } = some (cut G H i).group
          def Hex.PermGroup.Core.iterate {n : Nat} (G : Group n) (remaining : Nat) (H : Group n) (bound : H.order ≤ remaining) :
          Result G H

          The order bound cannot be exhausted before the subgroup is normal.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def Hex.PermGroup.Core.build {n : Nat} (G H : Group n) :
            Result G H
            Equations
            Instances For
              def Hex.PermGroup.Group.coreCert {n : Nat} (G H : Group n) (_h : H.IsSubgroup G) :

              The greatest normal subgroup of G contained in H, with complete intersection certificates and a terminal normality check.

              Equations
              Instances For
                def Hex.PermGroup.Group.core {n : Nat} (G H : Group n) (h : H.IsSubgroup G) :
                Equations
                Instances For
                  theorem Hex.PermGroup.Group.mem_core {n : Nat} (G H : Group n) (h : H.IsSubgroup G) (p : Perm n) :
                  Generated (G.core H h).generators p ↔ ∀ (g : Perm n), Generated G.generators g → Generated H.generators (g.conj p)
                  theorem Hex.PermGroup.Group.core_inside {n : Nat} (G H : Group n) (h : H.IsSubgroup G) :
                  (G.core H h).IsSubgroup H
                  theorem Hex.PermGroup.Group.core_subgroup {n : Nat} (G H : Group n) (h : H.IsSubgroup G) :
                  (G.core H h).IsSubgroup G
                  theorem Hex.PermGroup.Group.core_normal {n : Nat} (G H : Group n) (h : H.IsSubgroup G) :
                  (G.core H h).isNormal G ⋯ = true
                  theorem Hex.PermGroup.Group.le_core {n : Nat} (G H N : Group n) (h : H.IsSubgroup G) (hn : Normal.check G N = true) :