Theorems · Inductive type · group theory
SubNegMonoid
Type u → Type u
A SubNegMonoid is an AddMonoid with unary - and binary - operations
satisfying sub_eq_add_neg : ∀ a b, a - b = a + -b.
The default for sub is such that a - b = a + -b holds by definition.
Adding sub 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, Sub (Foo X) instance but no
∀ X, Neg (Foo X). Suppose we also have an instance
∀ X [Cromulent X], AddGroup (Foo X). Then the (-) coming from
AddGroup.sub cannot be definitionally equal to the (-) coming from
Foo.Sub.
In the same way, adding a zsmul field makes it possible to avoid definitional failures
in diamonds. See the definition of AddMonoid and Note [forgetful inheritance] for more
explanations on this.
- Defined in
- Mathlib.Algebra.Group.Defs
- Cited by
- 79 results in Mathlib
- Foundations
- Depth 0 from the axioms · 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 by110
Results whose statement or proof uses this declaration.
- sub_eq_add_negstatement and proof · cited by 1,023
- zero_substatement and proof · cited by 335
- AddSubgroupClassstatement · cited by 240
- natCast_zsmulstatement and proof · cited by 118
- add_sub_assocstatement and proof · cited by 72
- one_zsmulstatement and proof · cited by 59
- negSucc_zsmulstatement and proof · cited by 45
- sub_memstatement and proof · cited by 40
- ofNat_zsmulstatement and proof · cited by 24
- two_zsmulstatement and proof · cited by 21
- add_substatement and proof · cited by 21
- zero_zsmulstatement and proof · cited by 19