-- Suma_con_opuesto.lean -- Si R es un anillo y a ∈ R, entonces a + -a = 0 -- José A. Alonso Jiménez <https://jaalonso.github.io> -- Sevilla, 27-julio-2023 -- --------------------------------------------------------------------- -- --------------------------------------------------------------------- -- Demostrar en Lean4 que si R es un anillo, entonces -- ∀ a : R, a + -a = 0 -- --------------------------------------------------------------------- -- Demostración en lenguaje natural -- ================================ -- Por la siguiente cadena de igualdades -- a + -a = -a + a [por la conmutativa de la suma] -- = 0 [por el axioma de inverso por la izquierda] -- Demostración con Lean4 -- ====================== import Mathlib.Algebra.Ring.Defs variable {R : Type _} [Ring R] variable (a : R) -- 1ª demostración -- =============== example : a + -a = 0 := calc a + -a = -a + a := by rw [add_comm] _ = 0 := by rw [neg_add_cancel] -- 2ª demostración -- =============== example : a + -a = 0 := by rw [add_comm] rw [neg_add_cancel] -- 3ª demostración -- =============== example : a + -a = 0 := by rw [add_comm, neg_add_cancel] -- 4ª demostración -- =============== example : a + -a = 0 := by exact add_neg_cancel a -- 5ª demostración -- =============== example : a + -a = 0 := add_neg_cancel a -- 6ª demostración -- =============== example : a + -a = 0 := by simp -- Lemas usados -- ============ -- variable (a b : R) -- #check (add_comm a b : a + b = b + a) -- #check (add_neg_cancel a : a + -a = 0) -- #check (neg_add_cancel a : -a + a = 0)