mathlib documentation

algebra.​char_zero

algebra.​char_zero

@[class]
structure char_zero (α : Type u_1) [add_monoid α] [has_one α] :
Prop

Typeclass for monoids with characteristic zero. (This is usually stated on fields but it makes sense for any additive monoid with 1.)

Instances
theorem char_zero_of_inj_zero {α : Type u_1} [add_monoid α] [has_one α] :
(∀ (a b c : α), a + b = a + cb = c)(∀ (n : ), n = 0n = 0)char_zero α

theorem add_group.​char_zero_of_inj_zero {α : Type u_1} [add_group α] [has_one α] :
(∀ (n : ), n = 0n = 0)char_zero α

theorem ordered_cancel_comm_monoid.​char_zero_of_inj_zero {α : Type u_1} [ordered_cancel_add_comm_monoid α] [has_one α] :
(∀ (n : ), n = 0n = 0)char_zero α

theorem nat.​cast_injective {α : Type u_1} [add_monoid α] [has_one α] [char_zero α] :

@[simp]
theorem nat.​cast_inj {α : Type u_1} [add_monoid α] [has_one α] [char_zero α] {m n : } :
m = n m = n

@[simp]
theorem nat.​cast_eq_zero {α : Type u_1} [add_monoid α] [has_one α] [char_zero α] {n : } :
n = 0 n = 0

theorem nat.​cast_ne_zero {α : Type u_1} [add_monoid α] [has_one α] [char_zero α] {n : } :
n 0 n 0

theorem nat.​cast_add_one_ne_zero {α : Type u_1} [add_monoid α] [has_one α] [char_zero α] (n : ) :
n + 1 0

@[simp]
theorem nat.​cast_dvd_char_zero {α : Type u_1} [field α] [char_zero α] {m n : } :
n m(m / n) = m / n

theorem two_ne_zero' {α : Type u_1} [add_monoid α] [has_one α] [char_zero α] :
2 0

theorem add_self_eq_zero {α : Type u_1} [semiring α] [no_zero_divisors α] [char_zero α] {a : α} :
a + a = 0 a = 0

theorem bit0_eq_zero {α : Type u_1} [semiring α] [no_zero_divisors α] [char_zero α] {a : α} :
bit0 a = 0 a = 0

@[simp]
theorem half_add_self {α : Type u_1} [division_ring α] [char_zero α] (a : α) :
(a + a) / 2 = a

@[simp]
theorem add_halves' {α : Type u_1} [division_ring α] [char_zero α] (a : α) :
a / 2 + a / 2 = a

theorem sub_half {α : Type u_1} [division_ring α] [char_zero α] (a : α) :
a - a / 2 = a / 2

theorem half_sub {α : Type u_1} [division_ring α] [char_zero α] (a : α) :
a / 2 - a = -(a / 2)