Multiplicative and additive equivalence acting on units. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
An additive group is isomorphic to its group of additive units
A multiplicative equivalence of monoids defines a multiplicative equivalence of their groups of units.
Equations
- units.map_equiv h = {to_fun := (units.map h.to_monoid_hom).to_fun, inv_fun := ⇑(units.map h.symm.to_monoid_hom), left_inv := _, right_inv := _, map_mul' := _}
Left addition in an add_group
is a permutation of the underlying type.
Equations
- equiv.add_left a = (⇑to_add_units a).add_left
Extra simp lemma that dsimp
can use. simp
will never use this.
Extra simp lemma that dsimp
can use. simp
will never use this.
Extra simp lemma that dsimp
can use. simp
will never use this.
Extra simp lemma that dsimp
can use. simp
will never use this.
A version of equiv.add_right (-a) b
that is defeq to b - a
.
A version of equiv.mul_right a⁻¹ b
that is defeq to b / a
.
When the add_group
is commutative, equiv.neg
is an add_equiv
.
Equations
- add_equiv.neg G = {to_fun := has_neg.neg (sub_neg_monoid.to_has_neg G), inv_fun := has_neg.neg (sub_neg_monoid.to_has_neg G), left_inv := _, right_inv := _, map_add' := _}
In a division_comm_monoid
, equiv.inv
is a mul_equiv
. There is a variant of this
mul_equiv.inv' G : G ≃* Gᵐᵒᵖ
for the non-commutative case.
Equations
- mul_equiv.inv G = {to_fun := has_inv.inv (div_inv_monoid.to_has_inv G), inv_fun := has_inv.inv (div_inv_monoid.to_has_inv G), left_inv := _, right_inv := _, map_mul' := _}