Adjoining a zero/one to semigroups and related algebraic structures #
This file contains different results about adjoining an element to an algebraic structure which then
behaves like a zero or a one. An example is adjoining a one to a semigroup to obtain a monoid. That
this provides an example of an adjunction is proved in
Mathlib/Algebra/Category/MonCat/Adjunctions.lean.
Another result says that adjoining to a group an element zero gives a GroupWithZero. For more
information about these structures (which are not that standard in informal mathematics, see
Mathlib/Algebra/GroupWithZero/Basic.lean)
TODO #
WithOne.coe_mul and WithZero.coe_mul have inconsistent use of implicit parameters
Add an extra element 1 to a type
Equations
Instances For
Add an extra element 0 to a type
Equations
Instances For
Equations
Equations
Deconstruct an x : WithOne α to the underlying value in α, given a proof that x ≠ 1.
Equations
Instances For
Deconstruct an x : WithZero α to the underlying value in α, given a proof that x ≠ 0.