Characteristic zero #
A ring R is called of characteristic zero if every natural number n is non-zero when considered
as an element of R. Since this definition doesn't mention the multiplicative structure of R
except for the existence of 1 in this file characteristic zero is defined for additive monoids
with 1.
Main definition #
CharZero is the typeclass of an additive monoid with one such that the natural homomorphism
from the natural numbers into it is injective.
TODO #
- Unify with
CharP(possibly using an out-parameter)
Typeclass for monoids with characteristic zero. (This is usually stated on fields but it makes sense for any additive monoid with 1.)
Warning: for a semiring R, CharZero R and CharP R 0 need not coincide.
CharZero Rrequires an injectionℕ ↪ R;CharP R 0asks that only0 : ℕmaps to0 : Runder the mapℕ → R. For instance, endowing{0, 1}with addition given bymax(i.e.1is absorbing), shows thatCharZero {0, 1}does not hold and yetCharP {0, 1} 0does. This example is formalized inCounterexamples/CharPZeroNeCharZero.lean.
- cast_injective : Function.Injective Nat.cast
An additive monoid with one has characteristic zero if the canonical map
ℕ → Ris injective.
Instances
Equations
- (_ : NeZero (OfNat.ofNat n)) = (_ : NeZero (OfNat.ofNat n))