Si G es un grupo y a, b ∈ G, tales que ab = 1 entonces a⁻¹ = b
Demostrar con Lean4 que si \(G\) es un grupo y \(a, b \in G\) tales que \(ab = 1\) entonces \(a^{-1} = b\).
Para ello, completar la siguiente teoría de Lean4:
1 2 3 4 5 6 7 8 9 |
import Mathlib.Algebra.Group.Defs variable {G : Type _} [Group G] variable (a b : G) example (h : a * b = 1) : a⁻¹ = b := sorry |
Demostración en lenguaje natural
Se tiene a partir de la siguente cadena de igualdades
\begin{align}
a⁻¹ &= a⁻¹·1 &&\text{[por producto por uno]} \\
&= a⁻¹·(a·b) &&\text{[por hipótesis]} \\
&= (a⁻¹·a)·b &&\text{[por asociativa]} \\
&= 1·b &&\text{[por producto con inverso]} \\
&= b &&\text{[por producto por uno]}
\end{align}
Demostraciones con Lean4
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 |
import Mathlib.Algebra.Group.Defs variable {G : Type _} [Group G] variable (a b : G) -- 1º demostración example (h : a * b = 1) : a⁻¹ = b := calc a⁻¹ = a⁻¹ * 1 := by rw [mul_one] _ = a⁻¹ * (a * b) := by rw [h] _ = (a⁻¹ * a) * b := by rw [mul_assoc] _ = 1 * b := by rw [mul_left_inv] _ = b := by rw [one_mul] -- 2º demostración example (h : a * b = 1) : a⁻¹ = b := calc a⁻¹ = a⁻¹ * 1 := by simp _ = a⁻¹ * (a * b) := by simp [h] _ = (a⁻¹ * a) * b := by simp _ = 1 * b := by simp _ = b := by simp -- 3º demostración example (h : a * b = 1) : a⁻¹ = b := calc a⁻¹ = a⁻¹ * (a * b) := by simp [h] _ = b := by simp -- 4º demostración example (h : a * b = 1) : a⁻¹ = b := by exact inv_eq_of_mul_eq_one_right h |
Demostraciones interactivas
Se puede interactuar con las demostraciones anteriores en Lean 4 Web.
Referencias
- J. Avigad y P. Massot. Mathematics in Lean, p. 12.