Documentation

HexPermGroup.Cycles

def Hex.Perm.support {n : Nat} (p : Perm n) :

The sorted points moved by a permutation.

Equations
Instances For
    @[simp]
    theorem Hex.Perm.mem_support {n : Nat} (p : Perm n) (i : Fin n) :
    i ∈ p.support ↔ p.get i ≠ i
    def Hex.Perm.visit {n : Nat} (p : Perm n) :
    Nat → Fin n → Vector Bool n → Array (Fin n) → Vector Bool n × Array (Fin n)

    Follow one cycle, marking each point on its first visit. The degree bounds its length, including when the cycle contains every point.

    Equations
    Instances For
      def Hex.Perm.scanCycles {n : Nat} (p : Perm n) :
      List (Fin n) → Vector Bool n → Array (Array (Fin n)) → Vector Bool n × Array (Array (Fin n))

      Scan the starting points, retaining the marks between visits.

      Equations
      Instances For
        def Hex.Perm.allCycles {n : Nat} (p : Perm n) :

        Disjoint cycles, including singleton fixed points. Scanning starting points in order makes each cycle begin at its least point and orders the cycles.

        Equations
        Instances For
          def Hex.Perm.cycles {n : Nat} (p : Perm n) :

          Canonical disjoint cycles, omitting fixed points.

          Equations
          Instances For
            def Hex.Perm.cycleType {n : Nat} (p : Perm n) :

            Sorted cycle lengths, with a one for every fixed point. Counting lengths in the range 1,...,n keeps the computation linear in the declared degree.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Hex.Perm.sign {n : Nat} (p : Perm n) :

              Permutation sign from the number of cycles, including fixed points.

              Equations
              Instances For
                def Hex.Perm.order {n : Nat} (p : Perm n) :

                The least common multiple of the cycle lengths; the empty lcm is one.

                Equations
                Instances For
                  def Hex.Perm.pow {n : Nat} (p : Perm n) :
                  Nat → Perm n

                  Natural powers, with function-composition multiplication.

                  Equations
                  Instances For
                    @[simp]
                    theorem Hex.Perm.pow_zero {n : Nat} (p : Perm n) :
                    p.pow 0 = Perm.id n
                    @[simp]
                    theorem Hex.Perm.pow_succ {n : Nat} (p : Perm n) (k : Nat) :
                    p.pow (k + 1) = p.comp (p.pow k)
                    theorem Hex.Perm.pow_add {n : Nat} (p : Perm n) (k l : Nat) :
                    p.pow (k + l) = (p.pow k).comp (p.pow l)
                    @[instance_reducible]
                    instance Hex.Perm.instMul {n : Nat} :
                    Mul (Perm n)
                    Equations
                    @[instance_reducible]
                    instance Hex.Perm.instInv {n : Nat} :
                    Inv (Perm n)
                    Equations
                    @[instance_reducible]
                    Equations
                    @[instance_reducible]
                    instance Hex.Perm.instPowNat {n : Nat} :
                    Equations
                    @[simp]
                    theorem Hex.Perm.mul_def {n : Nat} (p q : Perm n) :
                    p * q = p.comp q
                    @[simp]
                    theorem Hex.Perm.inv_def {n : Nat} (p : Perm n) :
                    @[simp]
                    theorem Hex.Perm.one_def {n : Nat} :
                    @[simp]
                    theorem Hex.Perm.pow_def {n : Nat} (p : Perm n) (k : Nat) :
                    p ^ k = p.pow k
                    theorem Hex.Perm.sign_eq {n : Nat} (p : Perm n) :
                    p.sign = 1 ∨ p.sign = -1