Groups with an adjoined zero element #
This file describes structures that are not usually studied on their own right in mathematics, namely a special sort of monoid: apart from a distinguished “zero element” they form a group, or in other words, they are groups with an adjoined zero element.
Examples are:
- division rings;
- the value monoid of a multiplicative valuation;
- in particular, the non-negative real numbers.
Main definitions #
Various lemmas about GroupWithZero
and CommGroupWithZero
.
To reduce import dependencies, the type-classes themselves are in
Algebra.GroupWithZero.Defs
.
Implementation details #
As is usual in mathlib, we extend the inverse function to the zero element,
and require 0⁻¹ = 0
.
To match one_mul_eq_id
.
To match mul_one_eq_id
.
In a monoid with zero, if zero equals one, then zero is the only element.
In a monoid with zero, if zero equals one, then zero is the unique element.
Somewhat arbitrarily, we define the default element to be 0
.
All other elements will be provably equal to it, but not necessarily definitionally equal.
Equations
- uniqueOfZeroEqOne h = { default := 0, uniq := ⋯ }
Instances For
In a monoid with zero, zero equals one if and only if all elements of that semiring are equal.
Alias of the forward direction of subsingleton_iff_zero_eq_one
.
In a monoid with zero, zero equals one if and only if all elements of that semiring are equal.
In a monoid with zero, either zero and one are nonequal, or zero is the only element.
An element of a CancelMonoidWithZero
fixed by right multiplication by an element other
than one must be zero.
An element of a CancelMonoidWithZero
fixed by left multiplication by an element other
than one must be zero.
Equations
- GroupWithZero.toDivisionMonoid = DivisionMonoid.mk ⋯ ⋯ ⋯
Equations
- GroupWithZero.toCancelMonoidWithZero = CancelMonoidWithZero.mk
Multiplying a
by itself and then by its inverse results in a
(whether or not a
is zero).
Multiplying a
by its inverse and then by itself results in a
(whether or not a
is zero).
Multiplying a⁻¹
by a
twice results in a
(whether or not a
is zero).
Multiplying a
by itself and then dividing by itself results in a
, whether or not a
is
zero.
Dividing a
by itself and then multiplying by itself results in a
, whether or not a
is
zero.
Dividing a
by the result of dividing a
by itself results in
a
(whether or not a
is zero).