mathlib documentation

core.​init.​data.​int.​comp_lemmas

core.​init.​data.​int.​comp_lemmas

theorem int.​ne_neg_of_ne {a b : ℤ} :
a ≠ b → -a ≠ -b

theorem int.​neg_ne_zero_of_ne {a : ℤ} :
a ≠ 0 → -a ≠ 0

theorem int.​zero_ne_neg_of_ne {a : ℤ} :
0 ≠ a → 0 ≠ -a

theorem int.​neg_ne_of_pos {a b : ℤ} :
a > 0 → b > 0 → -a ≠ b

theorem int.​ne_neg_of_pos {a b : ℤ} :
a > 0 → b > 0 → a ≠ -b

theorem int.​one_pos  :
1 > 0

theorem int.​bit0_pos {a : ℤ} :
a > 0 → bit0 a > 0

theorem int.​bit1_pos {a : ℤ} :
a ≥ 0 → bit1 a > 0

theorem int.​zero_nonneg  :
0 ≥ 0

theorem int.​one_nonneg  :
1 ≥ 0

theorem int.​bit0_nonneg {a : ℤ} :
a ≥ 0 → bit0 a ≥ 0

theorem int.​bit1_nonneg {a : ℤ} :
a ≥ 0 → bit1 a ≥ 0

theorem int.​nonneg_of_pos {a : ℤ} :
a > 0 → a ≥ 0

theorem int.​ne_of_nat_abs_ne_nat_abs_of_nonneg {a b : ℤ} :
a ≥ 0 → b ≥ 0 → a.nat_abs ≠ b.nat_abs → a ≠ b

theorem int.​ne_of_nat_ne_nonneg_case {a b : ℤ} {n m : ℕ} :
a ≥ 0 → b ≥ 0 → a.nat_abs = n → b.nat_abs = m → n ≠ m → a ≠ b

theorem int.​nat_abs_add_nonneg {a b : ℤ} :
a ≥ 0 → b ≥ 0 → (a + b).nat_abs = a.nat_abs + b.nat_abs

theorem int.​nat_abs_add_neg {a b : ℤ} :
a < 0 → b < 0 → (a + b).nat_abs = a.nat_abs + b.nat_abs

theorem int.​nat_abs_bit0_step {a : ℤ} {n : ℕ} :
a.nat_abs = n → (bit0 a).nat_abs = bit0 n

theorem int.​nat_abs_bit1_nonneg {a : ℤ} :
a ≥ 0 → (bit1 a).nat_abs = bit1 a.nat_abs

theorem int.​nat_abs_bit1_nonneg_step {a : ℤ} {n : ℕ} :
a ≥ 0 → a.nat_abs = n → (bit1 a).nat_abs = bit1 n