Groups #
This file defines additive and multiplicative group structures. Division monoid structures are
defined in Mathlib.Algebra.Group.DivInvMonoid.
A Group is a Monoid with an operation ⁻¹ satisfying a⁻¹ * a = 1.
There is also a division operation / such that a / b = a * b⁻¹,
with a default so that a / b = a * b⁻¹ holds by definition.
Use Group.ofLeftAxioms or Group.ofRightAxioms to define a group structure
on a type with the minimum proof obligations.
Instances
An AddGroup is an AddMonoid with a unary - satisfying -a + a = 0.
There is also a binary operation - such that a - b = a + -b,
with a default so that a - b = a + -b holds by definition.
Use AddGroup.ofLeftAxioms or AddGroup.ofRightAxioms to define an
additive group structure on a type with the minimum proof obligations.
Instances
Equations
- Group.toDivisionMonoid = { toDivInvMonoid := inst✝.toDivInvMonoid, inv_inv := ⋯, mul_inv_rev := ⋯, inv_eq_of_mul := ⋯ }
Equations
- AddGroup.toSubtractionMonoid = { toSubNegMonoid := inst✝.toSubNegMonoid, neg_neg := ⋯, neg_add_rev := ⋯, neg_eq_of_add := ⋯ }
Equations
- Group.toCancelMonoid = { toMonoid := inst✝.toMonoid, toIsLeftCancelMul := ⋯, toIsRightCancelMul := ⋯ }
Equations
- AddGroup.toAddCancelMonoid = { toAddMonoid := inst✝.toAddMonoid, toIsLeftCancelAdd := ⋯, toIsRightCancelAdd := ⋯ }
An additive commutative group is an additive group with commutative (+).
Instances
A commutative group is a group with commutative (*).
Instances
Equations
- CommGroup.toCancelCommMonoid = { toMonoid := inst✝.toMonoid, mul_comm := ⋯, toIsLeftCancelMul := ⋯ }
Equations
- AddCommGroup.toAddCancelCommMonoid = { toAddMonoid := inst✝.toAddMonoid, add_comm := ⋯, toIsLeftCancelAdd := ⋯ }
Equations
- CommGroup.toDivisionCommMonoid = { toDivInvMonoid := inst✝.toDivInvMonoid, inv_inv := ⋯, mul_inv_rev := ⋯, inv_eq_of_mul := ⋯, mul_comm := ⋯ }
Equations
- AddCommGroup.toDivisionAddCommMonoid = { toSubNegMonoid := inst✝.toSubNegMonoid, neg_neg := ⋯, neg_add_rev := ⋯, neg_eq_of_add := ⋯, add_comm := ⋯ }
We initialize the projections for the group structures for @[simps] here.
The lemmas generated for the npow/zpow projections will not apply to x ^ y, since the
argument order of these projections does not match the argument order of ^. The nsmul/zsmul
lemmas are correct.