Documentation

Mathlib.Data.ZMod.Quotient

ZMod n and quotient groups / rings #

This file relates ZMod n to the quotient group ℤ / AddSubgroup.zmultiples (n : ℤ) and to the quotient ring ℤ ⧸ Ideal.span {(n : ℤ)}.

Main definitions #

Tags #

zmod, quotient group, quotient ring, ideal quotient

ℤ modulo multiples of n : ℕ is ZMod n.

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    ℤ modulo multiples of a : ℤ is ZMod a.nat_abs.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      ℤ modulo the ideal generated by n : ℕ is ZMod n.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        ℤ modulo the ideal generated by a : ℤ is ZMod a.nat_abs.

        Equations
        Instances For
          noncomputable def AddAction.zmultiplesQuotientStabilizerEquiv {α : Type u_3} {β : Type u_4} [AddGroup α] (a : α) [AddAction α β] (b : β) :

          The quotient (ℤ ∙ a) ⧸ (stabilizer b) is cyclic of order minimalPeriod ((+ᵥ) a) b.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem AddAction.zmultiplesQuotientStabilizerEquiv_symm_apply {α : Type u_3} {β : Type u_4} [AddGroup α] (a : α) [AddAction α β] (b : β) (n : ZMod (Function.minimalPeriod ((fun x x_1 => x +ᵥ x_1) a) b)) :
            ↑(AddEquiv.symm (AddAction.zmultiplesQuotientStabilizerEquiv a b)) n = ↑(↑n • { val := a, property := (_ : a ∈ AddSubgroup.zmultiples a) })
            noncomputable def MulAction.zpowersQuotientStabilizerEquiv {α : Type u_3} {β : Type u_4} [Group α] (a : α) [MulAction α β] (b : β) :

            The quotient (a ^ ℤ) ⧸ (stabilizer b) is cyclic of order minimalPeriod ((•) a) b.

            Equations
            Instances For
              theorem MulAction.zpowersQuotientStabilizerEquiv_symm_apply {α : Type u_3} {β : Type u_4} [Group α] (a : α) [MulAction α β] (b : β) (n : ZMod (Function.minimalPeriod ((fun x x_1 => x • x_1) a) b)) :
              ↑(MulEquiv.symm (MulAction.zpowersQuotientStabilizerEquiv a b)) n = ↑({ val := a, property := (_ : a ∈ Subgroup.zpowers a) } ^ ↑n)
              noncomputable def MulAction.orbitZpowersEquiv {α : Type u_3} {β : Type u_4} [Group α] (a : α) [MulAction α β] (b : β) :
              ↑(MulAction.orbit { x // x ∈ Subgroup.zpowers a } b) ≃ ZMod (Function.minimalPeriod ((fun x x_1 => x • x_1) a) b)

              The orbit (a ^ ℤ) • b is a cycle of order minimalPeriod ((•) a) b.

              Equations
              Instances For
                noncomputable def AddAction.orbitZmultiplesEquiv {α : Type u_5} {β : Type u_6} [AddGroup α] (a : α) [AddAction α β] (b : β) :
                ↑(AddAction.orbit { x // x ∈ AddSubgroup.zmultiples a } b) ≃ ZMod (Function.minimalPeriod ((fun x x_1 => x +ᵥ x_1) a) b)

                The orbit (ℤ • a) +ᵥ b is a cycle of order minimalPeriod ((+ᵥ) a) b.

                Equations
                Instances For
                  theorem AddAction.orbit_zmultiples_equiv_symm_apply {α : Type u_3} {β : Type u_4} [AddGroup α] (a : α) [AddAction α β] (b : β) (k : ZMod (Function.minimalPeriod ((fun x x_1 => x +ᵥ x_1) a) b)) :
                  ↑(AddAction.orbitZmultiplesEquiv a b).symm k = ↑k • { val := a, property := (_ : a ∈ AddSubgroup.zmultiples a) } +ᵥ { val := b, property := (_ : b ∈ AddAction.orbit { x // x ∈ AddSubgroup.zmultiples a } b) }
                  theorem MulAction.orbitZpowersEquiv_symm_apply {α : Type u_3} {β : Type u_4} [Group α] (a : α) [MulAction α β] (b : β) (k : ZMod (Function.minimalPeriod ((fun x x_1 => x • x_1) a) b)) :
                  ↑(MulAction.orbitZpowersEquiv a b).symm k = { val := a, property := (_ : a ∈ Subgroup.zpowers a) } ^ ↑k • { val := b, property := (_ : b ∈ MulAction.orbit { x // x ∈ Subgroup.zpowers a } b) }
                  theorem MulAction.orbitZpowersEquiv_symm_apply' {α : Type u_3} {β : Type u_4} [Group α] (a : α) [MulAction α β] (b : β) (k : ℤ) :
                  ↑(MulAction.orbitZpowersEquiv a b).symm ↑k = { val := a, property := (_ : a ∈ Subgroup.zpowers a) } ^ k • { val := b, property := (_ : b ∈ MulAction.orbit { x // x ∈ Subgroup.zpowers a } b) }
                  theorem AddAction.orbitZmultiplesEquiv_symm_apply' {α : Type u_5} {β : Type u_6} [AddGroup α] (a : α) [AddAction α β] (b : β) (k : ℤ) :
                  ↑(AddAction.orbitZmultiplesEquiv a b).symm ↑k = k • { val := a, property := (_ : a ∈ AddSubgroup.zmultiples a) } +ᵥ { val := b, property := (_ : b ∈ AddAction.orbit { x // x ∈ AddSubgroup.zmultiples a } b) }
                  theorem AddAction.minimalPeriod_eq_card {α : Type u_3} {β : Type u_4} [AddGroup α] (a : α) [AddAction α β] (b : β) [Fintype ↑(AddAction.orbit { x // x ∈ AddSubgroup.zmultiples a } b)] :
                  Function.minimalPeriod ((fun x x_1 => x +ᵥ x_1) a) b = Fintype.card ↑(AddAction.orbit { x // x ∈ AddSubgroup.zmultiples a } b)
                  theorem MulAction.minimalPeriod_eq_card {α : Type u_3} {β : Type u_4} [Group α] (a : α) [MulAction α β] (b : β) [Fintype ↑(MulAction.orbit { x // x ∈ Subgroup.zpowers a } b)] :
                  Function.minimalPeriod ((fun x x_1 => x • x_1) a) b = Fintype.card ↑(MulAction.orbit { x // x ∈ Subgroup.zpowers a } b)
                  theorem AddAction.minimalPeriod_pos.proof_1 {α : Type u_1} {β : Type u_2} [AddGroup α] (a : α) [AddAction α β] (b : β) [Finite ↑(AddAction.orbit { x // x ∈ AddSubgroup.zmultiples a } b)] :
                  NeZero (Function.minimalPeriod ((fun x x_1 => x +ᵥ x_1) a) b)
                  instance AddAction.minimalPeriod_pos {α : Type u_3} {β : Type u_4} [AddGroup α] (a : α) [AddAction α β] (b : β) [Finite ↑(AddAction.orbit { x // x ∈ AddSubgroup.zmultiples a } b)] :
                  NeZero (Function.minimalPeriod ((fun x x_1 => x +ᵥ x_1) a) b)
                  Equations
                  instance MulAction.minimalPeriod_pos {α : Type u_3} {β : Type u_4} [Group α] (a : α) [MulAction α β] (b : β) [Finite ↑(MulAction.orbit { x // x ∈ Subgroup.zpowers a } b)] :
                  NeZero (Function.minimalPeriod ((fun x x_1 => x • x_1) a) b)
                  Equations

                  See also add_order_eq_card_zmultiples.

                  theorem order_eq_card_zpowers' {α : Type u_3} [Group α] (a : α) :

                  See also orderOf_eq_card_zpowers.

                  theorem IsOfFinOrder.finite_zpowers {α : Type u_3} [Group α] {a : α} (h : IsOfFinOrder a) :