Documentation

HexPermGroup.Group

structure Hex.PermGroup.Group (n : Nat) :

A finite permutation group with an independently checked complete chain. The original ordered generator array is retained for membership programs.

Instances For
    def Hex.PermGroup.Group.ofChain? {n : Nat} (S : Array (Perm n)) (c : Chain n) :

    Validate raw chain data before exposing any group decision or exact order.

    Equations
    Instances For
      @[simp]
      def Hex.PermGroup.Group.contains {n : Nat} (G : Group n) (p : Perm n) :

      Exact membership, including replayable negative sifts.

      Equations
      Instances For

        Exact order from the complete chain, using arbitrary-precision naturals.

        Equations
        Instances For
          def Hex.PermGroup.SameGroup {n : Nat} (G H : Group n) :

          Mathematical equality of represented subgroups, independent of their ordered generators, certificates, or Lean record equality.

          Equations
          Instances For
            @[reducible, inline]
            abbrev Hex.PermGroup.Element {n : Nat} (G : Group n) :

            An element's identity is its permutation value. A membership word is separate certificate data and does not enter equality.

            Equations
            Instances For
              def Hex.PermGroup.Element.ofPerm? {n : Nat} (G : Group n) (p : Perm n) :

              Construct an element from a raw permutation exactly when it belongs to the group.

              Equations
              Instances For
                @[simp]
                theorem Hex.PermGroup.Element.isSome_ofPerm? {n : Nat} (G : Group n) (p : Perm n) :
                def Hex.PermGroup.Element.comp {n : Nat} {G : Group n} (p q : Element G) :
                Equations
                Instances For
                  def Hex.PermGroup.Element.inv {n : Nat} {G : Group n} (p : Element G) :
                  Equations
                  Instances For
                    @[instance_reducible]
                    instance Hex.PermGroup.Element.instMul {n : Nat} {G : Group n} :
                    Equations
                    @[instance_reducible]
                    instance Hex.PermGroup.Element.instInv {n : Nat} {G : Group n} :
                    Equations
                    @[simp]
                    @[simp]
                    theorem Hex.PermGroup.Element.val_comp {n : Nat} {G : Group n} (p q : Element G) :
                    (p.comp q).val = p.val.comp q.val
                    @[simp]
                    theorem Hex.PermGroup.Element.val_inv {n : Nat} {G : Group n} (p : Element G) :
                    @[simp]
                    theorem Hex.PermGroup.Element.comp_id {n : Nat} {G : Group n} (p : Element G) :
                    p.comp (Element.id G) = p
                    @[simp]
                    theorem Hex.PermGroup.Element.id_comp {n : Nat} {G : Group n} (p : Element G) :
                    (Element.id G).comp p = p
                    theorem Hex.PermGroup.Element.comp_assoc {n : Nat} {G : Group n} (p q r : Element G) :
                    (p.comp q).comp r = p.comp (q.comp r)
                    @[simp]
                    @[simp]