mathlib documentation

data.int.parity

Parity of integers #

This file contains theorems about the even and odd predicates on the integers.

Tags #

even, odd

@[simp]
theorem int.mod_two_ne_one {n : } :
¬n % 2 = 1 n % 2 = 0
theorem int.mod_two_ne_zero {n : } :
¬n % 2 = 0 n % 2 = 1
theorem int.even_iff {n : } :
even n n % 2 = 0
theorem int.odd_iff {n : } :
odd n n % 2 = 1
theorem int.not_even_iff {n : } :
¬even n n % 2 = 1
theorem int.not_odd_iff {n : } :
¬odd n n % 2 = 0
theorem int.even_iff_not_odd {n : } :
@[simp]
theorem int.odd_iff_not_even {n : } :
theorem int.is_compl_even_odd  :
is_compl {n : | even n} {n : | odd n}
theorem int.even_or_odd (n : ) :
theorem int.even_or_odd' (n : ) :
∃ (k : ), n = 2 * k n = 2 * k + 1
theorem int.even_xor_odd (n : ) :
xor (even n) (odd n)
theorem int.even_xor_odd' (n : ) :
∃ (k : ), xor (n = 2 * k) (n = 2 * k + 1)
@[simp]
theorem int.two_dvd_ne_zero {n : } :
¬2 n n % 2 = 1
@[simp]
theorem int.even_zero  :
@[simp]
theorem int.not_even_one  :
@[simp]
theorem int.even_bit0 (n : ) :
theorem int.even_add {m n : } :
even (m + n) (even m even n)
theorem int.even.add_even {m n : } (hm : even m) (hn : even n) :
even (m + n)
theorem int.even_add' {m n : } :
even (m + n) (odd m odd n)
theorem int.odd.add_odd {m n : } (hm : odd m) (hn : odd n) :
even (m + n)
@[simp]
theorem int.not_even_bit1 (n : ) :
theorem int.two_not_dvd_two_mul_add_one (n : ) :
¬2 2 * n + 1
theorem int.even_sub {m n : } :
even (m - n) (even m even n)
theorem int.even.sub_even {m n : } (hm : even m) (hn : even n) :
even (m - n)
theorem int.even_sub' {m n : } :
even (m - n) (odd m odd n)
theorem int.odd.sub_odd {m n : } (hm : odd m) (hn : odd n) :
even (m - n)
theorem int.even_add_one {n : } :
even (n + 1) ¬even n
theorem int.even_mul {m n : } :
even (m * n) even m even n
theorem int.odd_mul {m n : } :
odd (m * n) odd m odd n
theorem int.even.mul_left {m : } (hm : even m) (n : ) :
even (m * n)
theorem int.even.mul_right {n : } (m : ) (hn : even n) :
even (m * n)
theorem int.odd.mul {m n : } (hm : odd m) (hn : odd n) :
odd (m * n)
theorem int.odd.of_mul_left {m n : } (h : odd (m * n)) :
odd m
theorem int.odd.of_mul_right {m n : } (h : odd (m * n)) :
odd n
theorem int.even_pow {m : } {n : } :
even (m ^ n) even m n 0
theorem int.even_pow' {m : } {n : } (h : n 0) :
even (m ^ n) even m
theorem int.odd_add {m n : } :
odd (m + n) (odd m even n)
theorem int.odd.add_even {m n : } (hm : odd m) (hn : even n) :
odd (m + n)
theorem int.odd_add' {m n : } :
odd (m + n) (odd n even m)
theorem int.even.add_odd {m n : } (hm : even m) (hn : odd n) :
odd (m + n)
theorem int.ne_of_odd_add {m n : } (h : odd (m + n)) :
m n
theorem int.odd_sub {m n : } :
odd (m - n) (odd m even n)
theorem int.odd.sub_even {m n : } (hm : odd m) (hn : even n) :
odd (m - n)
theorem int.odd_sub' {m n : } :
odd (m - n) (odd n even m)
theorem int.even.sub_odd {m n : } (hm : even m) (hn : odd n) :
odd (m - n)
theorem int.even_mul_succ_self (n : ) :
even (n * (n + 1))
@[simp]
theorem int.even_coe_nat (n : ) :
@[simp]
theorem int.odd_coe_nat (n : ) :
@[simp]
theorem int.nat_abs_even {n : } :
@[simp]
theorem int.nat_abs_odd {n : } :