File: Mathlib/GroupTheory/GroupAction/Period.lean

full_name: MulAction.le_period
code: /-- If the action is periodic, then a lower bound for its period can be computed. -/
@[to_additive "If the action is periodic, then a lower bound for its period can be computed."]
theorem le_period {m : M} {a : α} {n : ℕ} (period_pos : 0 < period m a)
    (moved : ∀ k, 0 < k → k < n → m ^ k • a ≠ a) : n ≤ period m a 
goal: n ≤ MulAction.period m a

full_name: AddAction.le_period
code: /-- If the action is periodic, then a lower bound for its period can be computed. -/
@[to_additive "If the action is periodic, then a lower bound for its period can be computed."]
theorem le_period {m : M} {a : α} {n : ℕ} (period_pos : 0 < period m a)
    (moved : ∀ k, 0 < k → k < n → m ^ k • a ≠ a) : n ≤ period m a 
goal: n ≤ AddAction.period m a

full_name: AddAction.period_le_of_fixed
code: /-- If for some `n`, `m ^ n • a = a`, then `period m a ≤ n`. -/
@[to_additive "If for some `n`, `(n • m) +ᵥ a = a`, then `period m a ≤ n`."]
theorem period_le_of_fixed {m : M} {a : α} {n : ℕ} (n_pos : 0 < n) (fixed : m ^ n • a = a) :
    period m a ≤ n 
goal: AddAction.period m a ≤ n

full_name: MulAction.period_le_of_fixed
code: /-- If for some `n`, `m ^ n • a = a`, then `period m a ≤ n`. -/
@[to_additive "If for some `n`, `(n • m) +ᵥ a = a`, then `period m a ≤ n`."]
theorem period_le_of_fixed {m : M} {a : α} {n : ℕ} (n_pos : 0 < n) (fixed : m ^ n • a = a) :
    period m a ≤ n 
goal: MulAction.period m a ≤ n

full_name: MulAction.period_pos_of_fixed
code: /-- If for some `n`, `m ^ n • a = a`, then `0 < period m a`. -/
@[to_additive "If for some `n`, `(n • m) +ᵥ a = a`, then `0 < period m a`."]
theorem period_pos_of_fixed {m : M} {a : α} {n : ℕ} (n_pos : 0 < n) (fixed : m ^ n • a = a) :
    0 < period m a 
goal: 0 < MulAction.period m a

full_name: AddAction.period_pos_of_fixed
code: /-- If for some `n`, `m ^ n • a = a`, then `0 < period m a`. -/
@[to_additive "If for some `n`, `(n • m) +ᵥ a = a`, then `0 < period m a`."]
theorem period_pos_of_fixed {m : M} {a : α} {n : ℕ} (n_pos : 0 < n) (fixed : m ^ n • a = a) :
    0 < period m a 
goal: 0 < AddAction.period m a

full_name: MulAction.period_eq_one_iff
code: @[to_additive]
theorem period_eq_one_iff {m : M} {a : α} : period m a = 1 ↔ m • a = a 
goal: MulAction.period m a = 1 ↔ m • a = a

full_name: AddAction.period_eq_zero_iff
code: @[to_additive]
theorem period_eq_one_iff {m : M} {a : α} : period m a = 1 ↔ m • a = a 
goal: AddAction.period m a = 1 ↔ m +ᵥ a = a

full_name: MulAction.pow_smul_ne_of_lt_period
code: /-- For any non-zero `n` less than the period of `m` on `a`, `a` is moved by `m ^ n`. -/
@[to_additive "For any non-zero `n` less than the period of `m` on `a`, `a` is moved by `n • m`."]
theorem pow_smul_ne_of_lt_period {m : M} {a : α} {n : ℕ} (n_pos : 0 < n)
    (n_lt_period : n < period m a) : m ^ n • a ≠ a 
goal: m ^ n • a ≠ a

full_name: AddAction.nsmul_vadd_ne_of_lt_period
code: /-- For any non-zero `n` less than the period of `m` on `a`, `a` is moved by `m ^ n`. -/
@[to_additive "For any non-zero `n` less than the period of `m` on `a`, `a` is moved by `n • m`."]
theorem pow_smul_ne_of_lt_period {m : M} {a : α} {n : ℕ} (n_pos : 0 < n)
    (n_lt_period : n < period m a) : m ^ n • a ≠ a 
goal: n • m +ᵥ a ≠ a

full_name: MulAction.period_one
code: @[to_additive (attr := simp)]
theorem period_one (a : α) : period (1 : M) a = 1 
goal: MulAction.period 1 a = 1

full_name: AddAction.period_zero
code: @[to_additive (attr := simp)]
theorem period_one (a : α) : period (1 : M) a = 1 
goal: AddAction.period 0 a = 1

full_name: MulAction.period_inv
code: @[to_additive (attr := simp)]
theorem period_inv (g : G) (a : α) : period g⁻¹ a = period g a 
goal: MulAction.period g⁻¹ a = MulAction.period g a

full_name: AddAction.period_neg
code: @[to_additive (attr := simp)]
theorem period_inv (g : G) (a : α) : period g⁻¹ a = period g a 
goal: AddAction.period (-g) a = AddAction.period g a

full_name: AddAction.period_dvd_addOrderOf
code: @[to_additive]
theorem period_dvd_orderOf (m : M) (a : α) : period m a ∣ orderOf m 
goal: AddAction.period m a ∣ addOrderOf m

full_name: MulAction.period_dvd_orderOf
code: @[to_additive]
theorem period_dvd_orderOf (m : M) (a : α) : period m a ∣ orderOf m 
goal: MulAction.period m a ∣ orderOf m

full_name: AddAction.period_pos_of_addOrderOf_pos
code: @[to_additive]
theorem period_pos_of_orderOf_pos {m : M} (order_pos : 0 < orderOf m) (a : α) :
    0 < period m a 
goal: 0 < AddAction.period m a

full_name: MulAction.period_pos_of_orderOf_pos
code: @[to_additive]
theorem period_pos_of_orderOf_pos {m : M} (order_pos : 0 < orderOf m) (a : α) :
    0 < period m a 
goal: 0 < MulAction.period m a

full_name: MulAction.period_le_orderOf
code: @[to_additive]
theorem period_le_orderOf {m : M} (order_pos : 0 < orderOf m) (a : α) :
    period m a ≤ orderOf m 
goal: MulAction.period m a ≤ orderOf m

full_name: AddAction.period_le_addOrderOf
code: @[to_additive]
theorem period_le_orderOf {m : M} (order_pos : 0 < orderOf m) (a : α) :
    period m a ≤ orderOf m 
goal: AddAction.period m a ≤ addOrderOf m

full_name: MulAction.period_dvd_exponent
code: @[to_additive]
theorem period_dvd_exponent (m : M) (a : α) : period m a ∣ Monoid.exponent M 
goal: MulAction.period m a ∣ Monoid.exponent M

full_name: AddAction.period_dvd_exponent
code: @[to_additive]
theorem period_dvd_exponent (m : M) (a : α) : period m a ∣ Monoid.exponent M 
goal: AddAction.period m a ∣ AddMonoid.exponent M

full_name: AddAction.period_pos_of_exponent_pos
code: @[to_additive]
theorem period_pos_of_exponent_pos (exp_pos : 0 < Monoid.exponent M) (m : M) (a : α) :
    0 < period m a 
goal: 0 < AddAction.period m a

full_name: MulAction.period_pos_of_exponent_pos
code: @[to_additive]
theorem period_pos_of_exponent_pos (exp_pos : 0 < Monoid.exponent M) (m : M) (a : α) :
    0 < period m a 
goal: 0 < MulAction.period m a

full_name: AddAction.period_le_exponent
code: @[to_additive]
theorem period_le_exponent (exp_pos : 0 < Monoid.exponent M) (m : M) (a : α) :
    period m a ≤ Monoid.exponent M 
goal: AddAction.period m a ≤ AddMonoid.exponent M

full_name: MulAction.period_le_exponent
code: @[to_additive]
theorem period_le_exponent (exp_pos : 0 < Monoid.exponent M) (m : M) (a : α) :
    period m a ≤ Monoid.exponent M 
goal: MulAction.period m a ≤ Monoid.exponent M

full_name: MulAction.period_bounded_of_exponent_pos
code: @[to_additive]
theorem period_bounded_of_exponent_pos (exp_pos : 0 < Monoid.exponent M) (m : M) :
    BddAbove (Set.range (fun a : α => period m a)) 
goal: BddAbove (Set.range fun a => MulAction.period m a)

full_name: AddAction.period_bounded_of_exponent_pos
code: @[to_additive]
theorem period_bounded_of_exponent_pos (exp_pos : 0 < Monoid.exponent M) (m : M) :
    BddAbove (Set.range (fun a : α => period m a)) 
goal: BddAbove (Set.range fun a => AddAction.period m a)