Commit 2022-10-14 00:13 26e9fca1

View on Github →

feat: replace Algebra/Group/{Defs,Basic} with direct ports from mathlib3 (#457) This PR discards and replaces with a direct port from mathlib3 the files:

  • Algebra/Group/Defs.lean
  • Algebra/Group/Basic.lean These files contained an ad-hoc redevelopment of parts of the algebraic hierarchy, and the expense of interfacing their content with other material which we need to port from mathlib3 to support tactic development was too high. The rest of the PR consists of making everything work again! To do so, we add partial ports of mathlib3's
  • Algebra/Group/Units.lean
  • Algebra/Group/Semiconj.lean
  • Algebra/Group/Commute.lean (just the initial segment of each which was required to provide the lemmas we need to patch up problems from the main replacement above). Unfortunately it's still not working: there are mysterious (to me!) failures in Tactic/Ring.lean, which all seem to come down to the simplifier not wanting to use zero_add and add_zero, even though exact or rw accepts them. If @digama0 or @gebner would be able to have a look at these and provide some advice I'd much appreciate it.

Estimated changes

deleted theorem add_add_add_comm
deleted theorem add_right_eq_self
added theorem comp_mul_left
added theorem comp_mul_right
added theorem div_div
added theorem div_div_cancel
added theorem div_div_cancel_left
added theorem div_div_div_comm
added theorem div_div_div_eq
added theorem div_div_eq_mul_div
added theorem div_div_self'
added theorem div_eq_div_mul_div
added theorem div_eq_iff_eq_mul'
added theorem div_eq_iff_eq_mul
added theorem div_eq_inv_mul
added theorem div_eq_inv_self
added theorem div_eq_mul_one_div
added theorem div_eq_of_eq_mul''
added theorem div_eq_of_eq_mul'
added theorem div_eq_one
added theorem div_eq_self
added theorem div_inv_eq_mul
added theorem div_left_inj
added theorem div_left_injective
added theorem div_mul
added theorem div_mul_cancel''
added theorem div_mul_cancel'
added theorem div_mul_comm
added theorem div_mul_div_cancel''
added theorem div_mul_div_cancel'
added theorem div_mul_div_comm
added theorem div_mul_eq_div_div
added theorem div_mul_eq_mul_div
added theorem div_mul_mul_cancel
added theorem div_ne_one
added theorem div_ne_one_of_ne
added theorem div_one
added theorem div_right_comm
added theorem div_right_inj
added theorem div_right_injective
added theorem div_self'
added theorem eq_div_iff_mul_eq''
added theorem eq_div_iff_mul_eq'
added theorem eq_div_of_mul_eq''
added theorem eq_div_of_mul_eq'
added theorem eq_inv_iff_eq_inv
added theorem eq_inv_iff_mul_eq_one
added theorem eq_inv_mul_iff_mul_eq
added theorem eq_inv_mul_of_mul_eq
added theorem eq_inv_of_eq_inv
added theorem eq_mul_inv_iff_mul_eq
added theorem eq_mul_inv_of_mul_eq
added theorem eq_mul_of_div_eq'
added theorem eq_mul_of_div_eq
added theorem eq_mul_of_inv_mul_eq
added theorem eq_mul_of_mul_inv_eq
added theorem eq_of_div_eq_one
added theorem inv_comp_inv
added theorem inv_div'
added theorem inv_div
added theorem inv_div_inv
added theorem inv_div_left
added theorem inv_eq_iff_inv_eq
added theorem inv_eq_iff_mul_eq_one
added theorem inv_eq_one
added theorem inv_eq_one_div
added theorem inv_inj
added theorem inv_injective
added theorem inv_inv_div_inv
added theorem inv_involutive
added theorem inv_mul'
added theorem inv_mul_eq_div
added theorem inv_mul_eq_iff_eq_mul
added theorem inv_mul_eq_of_eq_mul
added theorem inv_mul_eq_one
added theorem inv_ne_one
added theorem inv_surjective
added theorem inv_unique
added theorem ite_mul_one
added theorem ite_one_mul
added theorem left_inverse_inv
added theorem mul_comm_div
added theorem mul_div
added theorem mul_div_assoc'
added theorem mul_div_assoc
added theorem mul_div_cancel'''
added theorem mul_div_cancel''
added theorem mul_div_cancel'_right
added theorem mul_div_div_cancel
added theorem mul_div_left_comm
added theorem mul_div_mul_comm
added theorem mul_div_right_comm
added theorem mul_eq_of_eq_div'
added theorem mul_eq_of_eq_div
added theorem mul_eq_of_eq_inv_mul
added theorem mul_eq_of_eq_mul_inv
added theorem mul_eq_one_iff_eq_inv
added theorem mul_eq_one_iff_inv_eq
added theorem mul_inv
added theorem mul_inv_eq_iff_eq_mul
added theorem mul_inv_eq_of_eq_mul
added theorem mul_inv_eq_one
added theorem mul_left_comm
added theorem mul_left_eq_self
added theorem mul_left_surjective
added theorem mul_mul_div_cancel
modified theorem mul_mul_mul_comm
added theorem mul_one_div
added theorem mul_one_eq_id
added theorem mul_right_comm
added theorem mul_right_eq_self
added theorem mul_right_surjective
added theorem mul_rotate'
added theorem mul_rotate
added theorem one_div
added theorem one_div_div
added theorem one_div_mul_one_div
added theorem one_div_one
added theorem one_div_one_div
added theorem one_eq_inv
added theorem one_mul_eq_id
added theorem right_inverse_inv
deleted theorem self_eq_add_right
added theorem self_eq_mul_left
added theorem self_eq_mul_right
added theorem Commute.mul_left
added theorem Commute.mul_right
added theorem Commute.one_left
added theorem Commute.one_right
added theorem Commute.pow_left
added theorem Commute.pow_pow
added theorem Commute.pow_pow_self
added theorem Commute.pow_right
added theorem Commute.pow_self
added theorem Commute.self_pow
added def Commute
added theorem pow_succ'
deleted def Int.cast
deleted theorem Int.cast_negSucc
deleted theorem Int.cast_ofNat
deleted theorem Int.cast_one
deleted theorem Int.cast_zero
added theorem MulOneClass.ext
deleted def Nat.cast
deleted theorem Nat.cast_add
deleted theorem Nat.cast_ofNat
deleted theorem Nat.cast_one
deleted theorem Nat.cast_succ
deleted theorem Nat.cast_zero
deleted theorem add_assoc
deleted theorem add_comm
deleted theorem add_left_cancel
deleted theorem add_left_cancel_iff
deleted theorem add_left_inj
deleted theorem add_left_neg
deleted theorem add_neg_cancel_right
deleted theorem add_neg_self
deleted theorem add_right_cancel
deleted theorem add_right_cancel_iff
deleted theorem add_right_inj
deleted theorem add_right_neg
deleted theorem add_zero
added theorem div_eq_mul_inv
deleted theorem eq_of_sub_eq_zero'
deleted def gpow_rec
deleted def gsmul_rec
deleted theorem inv_eq_of_mul_eq_one
modified theorem inv_inv
modified theorem inv_mul_cancel_left
added theorem inv_mul_cancel_right
modified theorem inv_mul_self
added theorem inv_one
added def leftMul
modified theorem left_inv_eq_right_inv
deleted theorem left_neg_eq_right_neg
added theorem mul_assoc
added theorem mul_comm
added theorem mul_inv_cancel_left
modified theorem mul_inv_cancel_right
added theorem mul_inv_rev
modified theorem mul_inv_self
deleted theorem mul_left_comm
modified theorem mul_left_inj
added theorem mul_left_injective
added theorem mul_ne_mul_left
added theorem mul_ne_mul_right
modified theorem mul_one
deleted theorem mul_pow
modified theorem mul_right_cancel
deleted theorem mul_right_comm
modified theorem mul_right_inj
added theorem mul_right_injective
modified theorem mul_right_inv
deleted theorem neg_add_cancel_left
deleted theorem neg_add_self
deleted theorem neg_eq_of_add_eq_zero
deleted theorem neg_neg
added def npowRec
modified theorem npow_eq_pow
deleted def npow_rec
added def nsmulRec
added theorem nsmul_eq_smul
deleted def nsmul_rec
modified theorem one_mul
deleted theorem pow_add
deleted theorem pow_mul
deleted theorem pow_mul_comm
deleted theorem pow_one
deleted theorem pow_succ'
modified theorem pow_succ
modified theorem pow_zero
added def rightMul
added theorem succ_nsmul
deleted theorem zero_add
added theorem zero_nsmul
added def zpowRec
added theorem zpow_coe_nat
added theorem zpow_eq_pow
added theorem zpow_neg_succ_of_nat
added theorem zpow_of_nat
added theorem zpow_zero
added def zsmulRec
added theorem Commute.mul_pow
added theorem mul_pow
added theorem pow_add
added theorem pow_mul
added theorem pow_one
added def Int.cast
added theorem Int.cast_negSucc
added theorem Int.cast_ofNat
added theorem Int.cast_one
added theorem Int.cast_zero
added def Nat.cast
added theorem Nat.cast_add
added theorem Nat.cast_ofNat
added theorem Nat.cast_one
added theorem Nat.cast_succ
added theorem Nat.cast_zero
added theorem eq_of_sub_eq_zero'
added theorem pow_succ''
added theorem Iff.not
added theorem Iff.not_left
added theorem Iff.not_right