Si R es un anillo y a, b, c ∈ R tales que a + b = a + c, entonces b = c.
Demostrar que si R es un anillo y a, b, c ∈ R tales que
1 |
a + b = a + c |
entonces
1 |
b = 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 = a + c) : b = 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 58 59 60 61 62 63 64 65 66 67 |
import algebra.ring import tactic variables {R : Type*} [ring R] variables {a b c : R} -- 1ª demostración -- =============== example (h : a + b = a + c) : b = c := calc b = 0 + b : by rw zero_add ... = (-a + a) + b : by rw add_left_neg ... = -a + (a + b) : by rw add_assoc ... = -a + (a + c) : by rw h ... = (-a + a) + c : by rw ←add_assoc ... = 0 + c : by rw add_left_neg ... = c : by rw zero_add -- 2ª demostración -- =============== example (h : a + b = a + c) : b = c := calc b = 0 + b : by simp ... = (-a + a) + b : by simp ... = -a + (a + b) : by simp ... = -a + (a + c) : by rw h ... = (-a + a) + c : by simp ... = 0 + c : by simp ... = c : by simp -- 3ª demostración -- =============== lemma aux : -a + (a + b) = b := by finish example (h : a + b = a + c) : b = c := calc b = -a + (a + b) : aux.symm ... = -a + (a + c) : congr_arg (λ x, -a + x) h ... = c : aux -- 4ª demostración -- =============== example (h : a + b = a + c) : b = c := -- by library_search (add_right_inj a).mp h -- 4ª demostración -- =============== example (h : a + b = a + c) : b = c := -- by hint 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. 11.