Commit 2020-07-01 23:16 93099107
View on Github →chore(algebra/*): deduplicate *_with_zero
/semiring
/field
(#3259)
All moved/renamed/merged lemmas were generalized to use
*_with_zero
/nonzero
/mul_zero_class
instead of
(semi)ring
/division_ring
/field
.
Moved to group_with_zero
The following lemmas were formulated for
(semi_)ring
s/division_ring
s/field
s. Some of them had strictly
more general “prime” versions for *_with_zero
. I either moved a
lemma to algebra/group_with_zero
and adjusted the requirements or
removed the non-prime version and '
from the name of the prime
version. Sometimes I also made some arguments implicit.
TL;DR: moved to group_with_zero
, removed name'
lemma if it was there.
is_unit_zero_iff
;not_is_unit_zero
;div_eq_one_iff_eq
;eq_div_iff_mul_eq
;eq_div_of_mul_eq
;eq_one_div_of_mul_eq_one
;eq_one_div_of_mul_eq_one_left
;one_div_one_div
;eq_of_one_div_eq_one_div
;one_div_div
;mul_eq_of_eq_div
;mul_mul_div
;eq_zero_of_zero_eq_one
;eq_inv_of_mul_right_eq_one
;eq_inv_of_mul_left_eq_one
;div_right_comm
;div_div_div_cancel_right
;div_mul_div_cancel
;
Renamed/merged
- rename
mul_inv''
tomul_inv'
and mergemul_inv'
intomul_inv_rev'
; coe_unit_mul_inv
,coe_unit_inv_mul
:units.mul_inv'
,units.inv_mul'
division_ring.inv_eq_iff
:inv_eq_iff
;division_ring.inv_inj
:inv_inj'
;domain.mul_left_inj
:mul_left_inj'
;domain.mul_right_inj
:mul_right_inj'
;eq_of_mul_eq_mul_of_nonzero_left
andeq_of_mul_eq_mul_left
:mul_left_cancel'
;eq_of_mul_eq_mul_of_nonzero_right
andeq_of_mul_eq_mul_right
:mul_right_cancel'
;inv_inj
,inv_inj'
,inv_inj''
:inv_injective
,inv_inj
, andinv_inj'
, respectively;mul_inv_cancel_assoc_left
,mul_inv_cancel_assoc_right
,inv_mul_cancel_assoc_left
,inv_mul_cancel_assoc_right
:mul_inv_cancel_left'
,mul_inv_cacnel_right'
,inv_mul_cancel_left'
,inv_mul_cancel_right'
;ne_zero_and_ne_zero_of_mul_ne_zero
:ne_zero_and_ne_zero_of_mul
.ne_zero_of_mul_left_eq_one
:left_ne_zero_of_mul_eq_one
ne_zero_of_mul_ne_zero_left
:right_ne_zero_of_mul
;ne_zero_of_mul_ne_zero_right
:left_ne_zero_of_mul
;ne_zero_of_mul_right_eq_one
:left_ne_zero_of_mul_eq_one
neg_inj
andneg_inj
renamed toneg_injective
andneg_inj
;one_inv_eq
: merged intoinv_one
;unit_ne_zero
:units.ne_zero
;units.mul_inv'
andunits.inv_mul'
:units.mul_inv_of_eq
andunits.inv_mul_of_eq
;units.mul_left_eq_zero_iff_eq_zero
,units.mul_right_eq_zero_iff_eq_zero
:units.mul_left_eq_zero
,units.mul_right_eq_zero
;
New
class cancel_monoid_with_zero
: amonoid_with_zero
such that left/right multiplication by a non-zero element is injective; the main instances aregroup_with_zero
s anddomain
s;monoid_hom.map_ne_zero
,monoid_hom.map_eq_zero
,monoid_hom.map_inv'
,monoid_hom.map_div
,monoid_hom.injective
: lemmas about monoid homomorphisms of two groups with zeros such thatf 0 = 0
;mul_eq_zero_of_left
,mul_eq_zero_of_right
,ne_zero_of_eq_one
unique_of_zero_eq_one
,eq_of_zero_eq_one
,nonzero_psum_unique
,zero_ne_one_or_forall_eq_0
;mul_left_inj'
,mul_right_inj'
Misc changes
eq_of_div_eq_one
no more requiresb ≠ 0
;