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 #
char_zero
is the typeclass of an additive monoid with one such that the natural homomorphism
from the natural numbers into it is injective.
Main statements #
- A linearly ordered semiring has characteristic zero.
- Characteristic zero implies that the additive monoid is infinite.
TODO #
- Once order of a group is defined for infinite additive monoids redefine or at least connect to
order of
1
in the additive monoid with one. - Unify with
char_p
(possibly using an out-parameter)
@[class]
- cast_injective : function.injective coe
Typeclass for monoids with characteristic zero. (This is usually stated on fields but it makes sense for any additive monoid with 1.)
theorem
char_zero_of_inj_zero
{R : Type u_1}
[add_left_cancel_monoid R]
[has_one R]
(H : ∀ (n : ℕ), ↑n = 0 → n = 0) :
Note this is not an instance as char_zero
implies nontrivial
,
and this would risk forming a loop.
@[protected, instance]
@[simp]
nat.cast
as an embedding into monoids of characteristic 0
.
Equations
- nat.cast_embedding = {to_fun := coe coe_to_lift, inj' := _}
@[simp, norm_cast]
@[norm_cast]
@[protected, instance]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[protected, instance]
theorem
ring_hom.char_zero_iff
{R : Type u_1}
{S : Type u_2}
[semiring R]
[semiring S]
{ϕ : R →+* S}
(hϕ : function.injective ⇑ϕ) :