Mathlib v3 is deprecated. Go to Mathlib v4

Commit 2020-12-16 15:31 1221ab6b

View on Github →

chore(*): add a div/sub field to (add_)group(_with_zero) (#5303) This PR is intended to fix the following kind of diamonds: Let foo X be a type with a ∀ X, has_div (foo X) instance but no ∀ X, has_inv (foo X), e.g. when foo X is a euclidean_domain. Suppose we also have an instance ∀ X [cromulent X], group_with_zero (foo X). Then the (/) coming from group_with_zero_has_div cannot be defeq to the (/) coming from foo.has_div. As a consequence of making the has_div instances defeq, we can no longer assume that (div_eq_mul_inv a b : a / b = a * b⁻¹) = rfl for all groups. The previous preparation PR #5302 should have changed all places in mathlib that assumed defeqness, to rewrite explicitly instead.

Estimated changes

added theorem of_add_sub
added theorem of_mul_div
added theorem to_add_div
added theorem to_mul_sub