theorem
finset.mem_range_iff_mem_finset_range_of_mod_eq
{α : Type u_1}
[decidable_eq α]
{f : ℤ → α}
{a : α}
{n : ℕ} :
theorem
conj_injective
{α : Type u_1}
[group α]
{x : α} :
function.injective (λ (g : α), x * g * x⁻¹)
@[instance]
def
quotient_group.fintype
{α : Type u_1}
[group α]
[fintype α]
(s : subgroup α)
[d : decidable_pred (λ (a : α), a ∈ s)] :
Equations
theorem
card_eq_card_quotient_mul_card_subgroup
{α : Type u_1}
[group α]
[fintype α]
(s : subgroup α)
[fintype ↥s]
[decidable_pred (λ (a : α), a ∈ s)] :
theorem
card_quotient_dvd_card
{α : Type u_1}
[group α]
[fintype α]
(s : subgroup α)
[decidable_pred (λ (a : α), a ∈ s)]
[fintype ↥s] :
theorem
order_of_le_card_univ
{α : Type u_1}
{a : α}
[group α]
[fintype α]
[dec : decidable_eq α] :
order_of a ≤ fintype.card α
theorem
mem_gpowers_iff_mem_range_order_of
{α : Type u_1}
[group α]
[fintype α]
[dec : decidable_eq α]
{a a' : α} :
a' ∈ subgroup.gpowers a ↔ a' ∈ finset.image (has_pow.pow a) (finset.range (order_of a))
@[instance]
Equations
- decidable_gpowers = λ (a' : α), decidable_of_iff' (a' ∈ finset.image (has_pow.pow a) (finset.range (order_of a))) _
theorem
order_of_dvd_of_pow_eq_one
{α : Type u_1}
{a : α}
[group α]
[fintype α]
[dec : decidable_eq α]
{n : ℕ} :
theorem
sum_card_order_of_eq_card_pow_eq_one
{α : Type u_1}
[group α]
[fintype α]
[dec : decidable_eq α]
{n : ℕ} :
0 < n → (finset.filter (λ (_x : ℕ), _x ∣ n) (finset.range n.succ)).sum (λ (m : ℕ), (finset.filter (λ (a : α), order_of a = m) finset.univ).card) = (finset.filter (λ (a : α), a ^ n = 1) finset.univ).card
@[simp]
@[simp]
theorem
order_of_dvd_card_univ
{α : Type u_1}
{a : α}
[group α]
[fintype α]
[dec : decidable_eq α] :
order_of a ∣ fintype.card α
@[simp]
theorem
mem_powers_iff_mem_gpowers
{α : Type u_1}
[group α]
[fintype α]
{a x : α} :
x ∈ submonoid.powers a ↔ x ∈ subgroup.gpowers a
theorem
powers_eq_gpowers
{α : Type u_1}
[group α]
[fintype α]
(a : α) :
↑(submonoid.powers a) = ↑(subgroup.gpowers a)
theorem
image_range_order_of
{α : Type u_1}
[group α]
[fintype α]
[dec : decidable_eq α]
(a : α) :
finset.image (λ (i : ℕ), a ^ i) (finset.range (order_of a)) = ↑(subgroup.gpowers a).to_finset
@[class]
- exists_generator : ∃ (g : α), ∀ (x : α), x ∈ subgroup.gpowers g
A group is called cyclic if it is generated by a single element.
A cyclic group is always commutative. This is not an instance
because often we have a better
proof of comm_group
.
theorem
is_cyclic_of_order_of_eq_card
{α : Type u_1}
[group α]
[decidable_eq α]
[fintype α]
(x : α) :
order_of x = fintype.card α → is_cyclic α
theorem
order_of_eq_card_of_forall_mem_gpowers
{α : Type u_1}
[group α]
[decidable_eq α]
[fintype α]
{g : α} :
(∀ (x : α), x ∈ subgroup.gpowers g) → order_of g = fintype.card α
@[instance]
Equations
theorem
is_cyclic.card_pow_eq_one_le
{α : Type u_1}
[group α]
[decidable_eq α]
[fintype α]
[is_cyclic α]
{n : ℕ} :
0 < n → (finset.filter (λ (a : α), a ^ n = 1) finset.univ).card ≤ n
theorem
is_cyclic.exists_monoid_generator
(α : Type u_1)
[group α]
[fintype α]
[is_cyclic α] :
∃ (x : α), ∀ (y : α), y ∈ submonoid.powers x
theorem
is_cyclic.image_range_order_of
{α : Type u_1}
{a : α}
[group α]
[decidable_eq α]
[fintype α] :
(∀ (x : α), x ∈ subgroup.gpowers a) → finset.image (λ (i : ℕ), a ^ i) (finset.range (order_of a)) = finset.univ
theorem
is_cyclic.image_range_card
{α : Type u_1}
{a : α}
[group α]
[decidable_eq α]
[fintype α] :
(∀ (x : α), x ∈ subgroup.gpowers a) → finset.image (λ (i : ℕ), a ^ i) (finset.range (fintype.card α)) = finset.univ
theorem
card_pow_eq_one_eq_order_of_aux
{α : Type u_1}
[group α]
[decidable_eq α]
[fintype α]
(hn : ∀ (n : ℕ), 0 < n → (finset.filter (λ (a : α), a ^ n = 1) finset.univ).card ≤ n)
(a : α) :
(finset.filter (λ (b : α), b ^ order_of a = 1) finset.univ).card = order_of a
theorem
card_order_of_eq_totient_aux₂
{α : Type u_1}
[group α]
[decidable_eq α]
[fintype α]
(hn : ∀ (n : ℕ), 0 < n → (finset.filter (λ (a : α), a ^ n = 1) finset.univ).card ≤ n)
{d : ℕ} :
d ∣ fintype.card α → (finset.filter (λ (a : α), order_of a = d) finset.univ).card = d.totient
theorem
is_cyclic_of_card_pow_eq_one_le
{α : Type u_1}
[group α]
[decidable_eq α]
[fintype α] :
(∀ (n : ℕ), 0 < n → (finset.filter (λ (a : α), a ^ n = 1) finset.univ).card ≤ n) → is_cyclic α
theorem
is_cyclic.card_order_of_eq_totient
{α : Type u_1}
[group α]
[is_cyclic α]
[decidable_eq α]
[fintype α]
{d : ℕ} :
d ∣ fintype.card α → (finset.filter (λ (a : α), order_of a = d) finset.univ).card = d.totient