theorem
proved
zero_add'
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Foundation.IntegersFromLogic on GitHub at line 379.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
376theorem add_comm' (a b : LogicInt) : a + b = b + a := by
377 rw [eq_iff_toInt_eq, toInt_add, toInt_add]; ring
378
379theorem zero_add' (a : LogicInt) : (0 : LogicInt) + a = a := by
380 rw [eq_iff_toInt_eq, toInt_add, toInt_zero]; ring
381
382theorem add_zero' (a : LogicInt) : a + (0 : LogicInt) = a := by
383 rw [eq_iff_toInt_eq, toInt_add, toInt_zero]; ring
384
385theorem add_left_neg' (a : LogicInt) : -a + a = 0 := by
386 rw [eq_iff_toInt_eq, toInt_add, toInt_neg, toInt_zero]; ring
387
388theorem mul_assoc' (a b c : LogicInt) : (a * b) * c = a * (b * c) := by
389 rw [eq_iff_toInt_eq, toInt_mul, toInt_mul, toInt_mul, toInt_mul]; ring
390
391theorem mul_comm' (a b : LogicInt) : a * b = b * a := by
392 rw [eq_iff_toInt_eq, toInt_mul, toInt_mul]; ring
393
394theorem one_mul' (a : LogicInt) : (1 : LogicInt) * a = a := by
395 rw [eq_iff_toInt_eq, toInt_mul, toInt_one]; ring
396
397theorem mul_one' (a : LogicInt) : a * (1 : LogicInt) = a := by
398 rw [eq_iff_toInt_eq, toInt_mul, toInt_one]; ring
399
400theorem mul_add' (a b c : LogicInt) : a * (b + c) = a * b + a * c := by
401 rw [eq_iff_toInt_eq, toInt_mul, toInt_add, toInt_add, toInt_mul, toInt_mul]; ring
402
403theorem add_mul' (a b c : LogicInt) : (a + b) * c = a * c + b * c := by
404 rw [eq_iff_toInt_eq, toInt_mul, toInt_add, toInt_add, toInt_mul, toInt_mul]; ring
405
406/-- `LogicInt` has no zero divisors: from `a * b = 0`, either `a = 0`
407or `b = 0`. Forced by the ring isomorphism with `Int`. -/
408theorem mul_eq_zero {a b : LogicInt} : a * b = 0 ↔ a = 0 ∨ b = 0 := by
409 constructor