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_)rings/division_rings/fields. 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_leftandeq_of_mul_eq_mul_left:mul_left_cancel';eq_of_mul_eq_mul_of_nonzero_rightandeq_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_onene_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_oneneg_injandneg_injrenamed toneg_injectiveandneg_inj;one_inv_eq: merged intoinv_one;unit_ne_zero:units.ne_zero;units.mul_inv'andunits.inv_mul':units.mul_inv_of_eqandunits.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_zerosuch that left/right multiplication by a non-zero element is injective; the main instances aregroup_with_zeros anddomains;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_oneunique_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_oneno more requiresb ≠ 0;