Commit 2023-11-13 07:42 771e087d
View on Github →chore: Generalise lemmas from finite groups to torsion elements (#8342)
Many lemmas in GroupTheory.OrderOfElement
were stated for elements of finite groups even though they work more generally for torsion elements of possibly infinite groups. This PR generalises those lemmas (and leaves convenience lemmas stated for finite groups), and fixes a bunch of names to use dot notation.
Renames
Function.eq_of_lt_minimalPeriod_of_iterate_eq
→Function.iterate_injOn_Iio_minimalPeriod
Function.eq_iff_lt_minimalPeriod_of_iterate_eq
→Function.iterate_eq_iterate_iff_of_lt_minimalPeriod
isOfFinOrder_iff_coe
→Submonoid.isOfFinOrder_coe
orderOf_pos'
→IsOfFinOrder.orderOf_pos
pow_eq_mod_orderOf
→pow_mod_orderOf
(and turned around)pow_injective_of_lt_orderOf
→pow_injOn_Iio_orderOf
mem_powers_iff_mem_range_order_of'
→IsOfFinOrder.mem_powers_iff_mem_range_orderOf
orderOf_pow''
→IsOfFinOrder.orderOf_pow
orderOf_pow_coprime
→Nat.Coprime.orderOf_pow
zpow_eq_mod_orderOf
→zpow_mod_orderOf
(and turned around)exists_pow_eq_one
→isOfFinOrder_of_finite
pow_apply_eq_pow_mod_orderOf_cycleOf_apply
→pow_mod_orderOf_cycleOf_apply
New lemmas
IsOfFinOrder.powers_eq_image_range_orderOf
IsOfFinOrder.natCard_powers_le_orderOf
IsOfFinOrder.finite_powers
finite_powers
infinite_powers
Nat.card_submonoidPowers
IsOfFinOrder.mem_powers_iff_mem_zpowers
IsOfFinOrder.powers_eq_zpowers
IsOfFinOrder.mem_zpowers_iff_mem_range_orderOf
IsOfFinOrder.exists_pow_eq_one
Other changes
- Move
decidableMemPowers
/fintypePowers
toGroupTheory.Submonoid.Membership
anddecidableMemZpowers
/fintypeZpowers
toGroupTheory.Subgroup.ZPowers
. finEquivPowers
,finEquivZpowers
,powersEquivPowers
andzpowersEquivZpowers
now assumeIsOfFinTorsion x
instead ofFinite G
.isOfFinOrder_iff_pow_eq_one
now takes one less explicit argument.- Delete
Equiv.Perm.IsCycle.exists_pow_eq_one
since it was saying that a permutation over a finite type is torsion, but this is trivial since the group of permutation is itself finite, so we can useisOfFinOrder_of_finite
instead.