Si R es un anillo y a, b, c ∈ R tales que a + b = c + b, entonces a = c
Demostrar que si R es un anillo y a, b, c ∈ R tales que
1 |
a + b = c + b |
entonces
1 |
a = c |
Para ello, completar la siguiente teoría de Lean:
1 2 3 4 5 6 7 8 9 10 |
import algebra.ring import tactic variables {R : Type*} [ring R] variables {a b c : R} example (h : a + b = c + b) : a = c := sorry |
Soluciones con Lean
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
import algebra.ring import tactic variables {R : Type*} [ring R] variables {a b c : R} -- 1ª demostración -- =============== example (h : a + b = c + b) : a = c := calc a = a + 0 : by rw add_zero ... = a + (b + -b) : by rw add_right_neg ... = (a + b) + -b : by rw add_assoc ... = (c + b) + -b : by rw h ... = c + (b + -b) : by rw ← add_assoc ... = c + 0 : by rw ← add_right_neg ... = c : by rw add_zero -- 2ª demostración -- =============== example (h : a + b = c + b) : a = c := calc a = a + 0 : by simp ... = a + (b + -b) : by simp ... = (a + b) + -b : by simp ... = (c + b) + -b : by rw h ... = c + (b + -b) : by simp ... = c + 0 : by simp ... = c : by simp -- 3ª demostración -- =============== lemma aux : (a + b) + -b = a := by finish example (h : a + b = c + b) : a = c := calc a = (a + b) + -b : aux.symm ... = (c + b) + -b : congr_arg (λ x, x + -b) h ... = c : aux -- 4ª demostración -- =============== example (h : a + b = c + b) : a = c := by finish |
Se puede interactuar con la prueba anterior en esta sesión con Lean.
Referencias
- J. Avigad, K. Buzzard, R.Y. Lewis y P. Massot. Mathematics in Lean, p. 12.