Lemmas about power operations on monoids and groups #
This file contains lemmas about monoid.pow, group.pow, nsmul, zsmul
which require additional imports besides those available in algebra.group_power.basic.
(Additive) monoid #
Equations
- invertible_pow m n = {inv_of := ⅟ m ^ n, inv_of_mul_self := _, mul_inv_of_self := _}
If x ^ n.succ = 1 then x has an inverse, x^n.
Equations
- invertible_of_pow_succ_eq_one x n hx = {inv_of := x ^ n, inv_of_mul_self := _, mul_inv_of_self := _}
If x ^ n = 1 then x has an inverse, x^(n - 1).
Equations
- invertible_of_pow_eq_one x n hx hn = invertible_of_pow_succ_eq_one x (n - 1) _
zpow/zsmul and an order #
Those lemmas are placed here (rather than in algebra.group_power.order with their friends) because
they require facts from data.int.basic.
See also smul_right_injective. TODO: provide a no_zero_smul_divisors instance. We can't do that
here because importing that definition would create import cycles.
Alias of zsmul_right_inj, for ease of discovery alongside zsmul_le_zsmul_iff' and
zsmul_lt_zsmul_iff'.
Alias of zsmul_right_inj, for ease of discovery alongside zsmul_le_zsmul_iff' and
zsmul_lt_zsmul_iff'.
Note that add_comm_monoid.nat_smul_comm_class requires stronger assumptions on R.
Note that add_comm_monoid.nat_is_scalar_tower requires stronger assumptions on R.
Note that add_comm_group.int_smul_comm_class requires stronger assumptions on R.
Note that add_comm_group.int_is_scalar_tower requires stronger assumptions on R.
Monoid homomorphisms from multiplicative ℕ are defined by the image
of multiplicative.of_add 1.
Equations
- powers_hom M = {to_fun := λ (x : M), {to_fun := λ (n : multiplicative ℕ), x ^ ⇑multiplicative.to_add n, map_one' := _, map_mul' := _}, inv_fun := λ (f : multiplicative ℕ →* M), ⇑f (⇑multiplicative.of_add 1), left_inv := _, right_inv := _}
Monoid homomorphisms from multiplicative ℤ are defined by the image
of multiplicative.of_add 1.
Equations
- zpowers_hom G = {to_fun := λ (x : G), {to_fun := λ (n : multiplicative ℤ), x ^ ⇑multiplicative.to_add n, map_one' := _, map_mul' := _}, inv_fun := λ (f : multiplicative ℤ →* G), ⇑f (⇑multiplicative.of_add 1), left_inv := _, right_inv := _}
Additive homomorphisms from ℕ are defined by the image of 1.
Additive homomorphisms from ℤ are defined by the image of 1.
monoid_hom.ext_mint is defined in data.int.cast
add_monoid_hom.ext_nat is defined in data.nat.cast
add_monoid_hom.ext_int is defined in data.int.cast
If M is commutative, powers_hom is a multiplicative equivalence.
Equations
- powers_mul_hom M = {to_fun := (powers_hom M).to_fun, inv_fun := (powers_hom M).inv_fun, left_inv := _, right_inv := _, map_mul' := _}
If M is commutative, zpowers_hom is a multiplicative equivalence.
Equations
- zpowers_mul_hom G = {to_fun := (zpowers_hom G).to_fun, inv_fun := (zpowers_hom G).inv_fun, left_inv := _, right_inv := _, map_mul' := _}
If M is commutative, multiples_hom is an additive equivalence.
Equations
- multiples_add_hom A = {to_fun := (multiples_hom A).to_fun, inv_fun := (multiples_hom A).inv_fun, left_inv := _, right_inv := _, map_add' := _}
If M is commutative, zmultiples_hom is an additive equivalence.
Equations
- zmultiples_add_hom A = {to_fun := (zmultiples_hom A).to_fun, inv_fun := (zmultiples_hom A).inv_fun, left_inv := _, right_inv := _, map_add' := _}
Commutativity (again) #
Facts about semiconj_by and commute that require zpow or zsmul, or the fact that integer
multiplication equals semiring multiplication.
Moving to the opposite monoid commutes with taking powers.
Moving to the opposite group or group_with_zero commutes with taking powers.