Documentation

TauCeti.GroupTheory.Perm.ComputedCycleType

Executable full cycle types #

This file gives an executable decomposition of a permutation of a finite linearly ordered type. For a point i, Equiv.Perm.cycleLenOf σ i counts the points in its cycle. A point is the canonical representative of its cycle when it is the least point in that cycle, and Equiv.Perm.computedCycleType σ lists cycleLenOf σ i over those representatives.

The main theorem Equiv.Perm.computedCycleType_eq_fullCycleType identifies this finite search with Equiv.Perm.fullCycleType, the canonical full cycle partition. Thus computations use only decidable finite predicates, while mathematical statements can continue to use the canonical partition API.

Main definitions #

Main result #

References #

theorem Equiv.Perm.mem_orbitFinset_singleton_iff_sameCycle {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Perm α} {i j : α} :

A point lies in the computed orbit Finset.orbitFinset {σ} i exactly when it lies in the cycle of σ containing i.

def Equiv.Perm.cycleLenOf {α : Type u_1} [Fintype α] [DecidableEq α] (σ : Perm α) (i : α) :

The length of the cycle of σ containing i, computed as the size of the orbit of i under σ.

Equations
Instances For
    @[simp]
    theorem Equiv.Perm.cycleLenOf_pos {α : Type u_1} [Fintype α] [DecidableEq α] (σ : Perm α) (i : α) :
    0 < σ.cycleLenOf i

    The computed cycle length is positive.

    theorem Equiv.Perm.cycleLenOf_eq_of_sameCycle {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Perm α} {i j : α} (hij : σ.SameCycle i j) :

    Points in the same cycle have the same computed cycle length.

    theorem Equiv.Perm.cycleLenOf_eq_minimalPeriod {α : Type u_1} [Fintype α] [DecidableEq α] (σ : Perm α) (i : α) :

    The executable cycle length agrees with the abstract minimal period of the point.

    @[simp]
    theorem Equiv.Perm.cycleLenOf_eq_one_iff {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Perm α} {i : α} :
    σ.cycleLenOf i = 1 ↔ σ i = i

    The cycle of a point has length one exactly when the point is fixed.

    def Equiv.Perm.cycleMin {α : Type u_1} [Fintype α] [LinearOrder α] (σ : Perm α) (i : α) :
    α

    The least point in the cycle of i. This is an executable canonical representative.

    Equations
    Instances For
      theorem Equiv.Perm.sameCycle_cycleMin {α : Type u_1} [Fintype α] [LinearOrder α] (σ : Perm α) (i : α) :
      σ.SameCycle i (σ.cycleMin i)

      The least representative of a cycle belongs to that cycle.

      theorem Equiv.Perm.cycleMin_le_of_sameCycle {α : Type u_1} [Fintype α] [LinearOrder α] {σ : Perm α} {i j : α} (hij : σ.SameCycle i j) :
      σ.cycleMin i ≤ j

      The canonical representative is no larger than any point in its cycle.

      @[simp]
      theorem Equiv.Perm.cycleMin_eq_cycleMin_iff {α : Type u_1} [Fintype α] [LinearOrder α] {σ : Perm α} {i j : α} :
      σ.cycleMin i = σ.cycleMin j ↔ σ.SameCycle i j

      Two points have the same canonical representative exactly when they lie in the same cycle.

      def Equiv.Perm.IsCycleMin {α : Type u_1} [LinearOrder α] (σ : Perm α) (i : α) :

      A point is a cycle minimum when it is no larger than every point in its cycle.

      Equations
      Instances For
        @[instance_reducible]
        instance Equiv.Perm.decidableIsCycleMin {α : Type u_1} [Fintype α] [LinearOrder α] (σ : Perm α) (i : α) :
        Equations
        @[simp]
        theorem Equiv.Perm.cycleMin_eq_self_iff {α : Type u_1} [Fintype α] [LinearOrder α] {σ : Perm α} {i : α} :
        σ.cycleMin i = i ↔ σ.IsCycleMin i

        A point is the least point of its cycle exactly when it is its canonical representative.

        @[simp]
        theorem Equiv.Perm.cycleMin_cycleMin {α : Type u_1} [Fintype α] [LinearOrder α] (σ : Perm α) (i : α) :
        σ.cycleMin (σ.cycleMin i) = σ.cycleMin i

        Taking the cycle minimum is idempotent.

        @[simp]
        theorem Equiv.Perm.isCycleMin_cycleMin {α : Type u_1} [Fintype α] [LinearOrder α] (σ : Perm α) (i : α) :

        The canonical representative is a cycle minimum.

        The image of the cycle-minimum map is exactly the finset of cycle minima.

        The full cycle type computed by listing the length at the least point of every cycle.

        Equations
        Instances For
          @[simp]

          The executable cycle decomposition agrees with the canonical full cycle type.