Skip to content

Latest commit

 

History

History
129 lines (101 loc) · 2.86 KB

Cancelativa_derecha.md

File metadata and controls

129 lines (101 loc) · 2.86 KB
Título Autor
Si R es un anillo y a, b, c ∈ R tales que a+b=c+b, entonces a=c
José A. Alonso

Demostrar con Lean4 que si R es un anillo y a, b, c ∈ R tales que

   a + b = c + b

entonces

   a = c

Para ello, completar la siguiente teoría de Lean4:

import Mathlib.Algebra.Ring.Defs
import Mathlib.Tactic

variable {R : Type _} [Ring R]
variable {a b c : R}

example
  (h : a + b = c + b)
  : a = c :=
sorry

Demostraciones en lenguaje natural (LN

[mathjax]

1ª demostración en LN

Por la siguiente cadena de igualdades \begin{align} a &= a + 0 &&\text{[por suma con cero]} \ &= a + (b + -b) &&\text{[por suma con opuesto]} \ &= (a + b) + -b &&\text{[por asociativa]} \ &= (c + b) + -b &&\text{[por hipótesis]} \ &= c + (b + -b) &&\text{[por asociativa]} \ &= c + 0 &&\text{[por suma con opuesto]} \ &= c &&\text{[por suma con cero]} \end{align}

2ª demostración en LN

Por la siguiente cadena de igualdades \begin{align} a &= (a + b) + -b \ &= (c + b) + -b &&\text{[por hipótesis]} \ &= c \end{align}

Demostraciones con Lean4

import Mathlib.Algebra.Ring.Defs
import Mathlib.Tactic

variable {R : Type _} [Ring R]
variable {a b c : R}

-- 1ª demostración con Lean4
-- =========================

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 con Lean4
-- =========================

example
  (h : a + b = c + b)
  : a = c :=
calc
  a = (a + b) + -b := (add_neg_cancel_right a b).symm
  _ = (c + b) + -b := by rw [h]
  _ = c            := add_neg_cancel_right c b

-- 3ª demostración con Lean4
-- =========================

example
  (h : a + b = c + b)
  : a = c :=
by
  rw [← add_neg_cancel_right a b]
  rw [h]
  rw [add_neg_cancel_right]

-- 4ª demostración con Lean4
-- =========================

example
  (h : a + b = c + b)
  : a = c :=
by
  rw [← add_neg_cancel_right a b, h, add_neg_cancel_right]

-- 5ª demostración con Lean4
-- =========================

example
  (h : a + b = c + b)
  : a = c :=
add_right_cancel h

Demostraciones interactivas

Se puede interactuar con las demostraciones anteriores en Lean 4 Web.

Referencias