Theorems · Inductive type · group theory
DivInvMonoid
Type u → Type u
A DivInvMonoid is a Monoid with operations / and ⁻¹ satisfying
div_eq_mul_inv : ∀ a b, a / b = a * b⁻¹.
This deduplicates the name div_eq_mul_inv.
The default for div is such that a / b = a * b⁻¹ holds by definition.
Adding div as a field rather than defining a / b := a * b⁻¹ allows us to
avoid certain classes of unification failures, for example:
Let Foo X be a type with a ∀ X, Div (Foo X) instance but no
∀ X, Inv (Foo X), e.g. when Foo X is a EuclideanDomain. Suppose we
also have an instance ∀ X [Cromulent X], GroupWithZero (Foo X). Then the
(/) coming from GroupWithZero.div cannot be definitionally equal to
the (/) coming from Foo.Div.
In the same way, adding a zpow field makes it possible to avoid definitional failures
in diamonds. See the definition of Monoid and Note [forgetful inheritance] for more
explanations on this.
- Defined in
- Mathlib.Algebra.Group.Defs
- Cited by
- 103 results in Mathlib
- Foundations
- Depth 0 from the axioms, rests on 1 definitions · uses no axioms
Around this declaration
Dashed lines are statement dependencies; solid lines are citations in proofs.
Cites0
Mathlib declarations this one mentions in its statement or cites explicitly in its proof. Plumbing is filtered out.
Nothing in Mathlib beyond the foundations.
Cited by139
Results whose statement or proof uses this declaration.
- div_eq_mul_invstatement and proof · cited by 715
- one_divstatement and proof · cited by 624
- zpow_natCaststatement and proof · cited by 271
- mul_div_assocstatement and proof · cited by 149
- zpow_ofNatstatement and proof · cited by 144
- zpow_negSuccstatement and proof · cited by 92
- ConjAct.toConjActstatement and proof · cited by 56
- zpow_zerostatement and proof · cited by 52
- mul_one_divstatement and proof · cited by 45
- zpow_onestatement and proof · cited by 41
- SubgroupClassstatement · cited by 34
- inv_eq_one_divstatement and proof · cited by 33