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
An additive commutative group is an additive group with commutative (+).
Instances
A commutative group is a group with commutative (*).
Instances
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.