Module docstring
{"# Squares and even elements
This file defines square and even elements in a monoid.
Main declarations
IsSquare ameans that there is somersuch thata = r * rEven ameans that there is somersuch thata = r + r
Note
- Many lemmas about
Even/IsSquare, including importantsimplemmas, are inMathlib.Algebra.Ring.Parity.
TODO
- Try to generalize
IsSquare/Evenlemmas further. For example, there are still a few lemmas inAlgebra.Ring.ParitywhoseSemiringassumptions I (DT) am not convinced are necessary. - The \"old\" definition of
Even aasked for the existence of an elementcsuch thata = 2 * c. For this reason, several fixes introduce an extratwo_mulor← two_mul. It might be the case that by making a careful choice ofsimplemma, this can be avoided.
See also
Mathlib.Algebra.Ring.Parity for the definition of odd elements as well as facts about
Even / IsSquare in rings.
"}