Si G es un grupo y a ∈ G, entonces aa⁻¹ = 1
En Lean4, se declara que \(G\) es un grupo mediante la expresión
1 |
variable {G : Type _} [Group G] |
Como consecuencia, se tiene los siguientes axiomas
1 2 3 |
mul_assoc : ∀ a b c : G, a * b * c = a * (b * c) one_mul : ∀ a : G, 1 * a = a mul_left_inv : ∀ a : G, a⁻¹ * a = 1 |
Demostrar que si \(G\) es un grupo y \(a \in G\), entonces
\[aa⁻¹ = 1\]
Para ello, completar la siguiente teoría de Lean4:
1 2 3 4 5 6 7 |
import Mathlib.Algebra.Group.Defs variable {G : Type _} [Group G] variable (a b : G) example : a * a⁻¹ = 1 := sorry |
Demostración en lenguaje natural
Por la siguiente cadena de igualdades
\begin{align}
a·a⁻¹ &= 1·(a·a⁻¹) &&\text{[por producto con uno]} \\
&= (1·a)·a⁻¹ &&\text{[por asociativa]} \\
&= (((a⁻¹)⁻¹·a⁻¹) ·a)·a⁻¹ &&\text{[por producto con inverso]} \\
&= ((a⁻¹)⁻¹·(a⁻¹ ·a))·a⁻¹ &&\text{[por asociativa]} \\
&= ((a⁻¹)⁻¹·1)·a⁻¹ &&\text{[por producto con inverso]} \\
&= (a⁻¹)⁻¹·(1·a⁻¹) &&\text{[por asociativa]} \\
&= (a⁻¹)⁻¹·a⁻¹ &&\text{[por producto con uno]} \\
&= 1 &&\text{[por producto con inverso]}
\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 |
import Mathlib.Algebra.Group.Defs variable {G : Type _} [Group G] variable (a b : G) -- 1ª demostración example : a * a⁻¹ = 1 := calc a * a⁻¹ = 1 * (a * a⁻¹) := by rw [one_mul] _ = (1 * a) * a⁻¹ := by rw [mul_assoc] _ = (((a⁻¹)⁻¹ * a⁻¹) * a) * a⁻¹ := by rw [mul_left_inv] _ = ((a⁻¹)⁻¹ * (a⁻¹ * a)) * a⁻¹ := by rw [← mul_assoc] _ = ((a⁻¹)⁻¹ * 1) * a⁻¹ := by rw [mul_left_inv] _ = (a⁻¹)⁻¹ * (1 * a⁻¹) := by rw [mul_assoc] _ = (a⁻¹)⁻¹ * a⁻¹ := by rw [one_mul] _ = 1 := by rw [mul_left_inv] -- 2ª demostración example : a * a⁻¹ = 1 := calc a * a⁻¹ = 1 * (a * a⁻¹) := by simp _ = (1 * a) * a⁻¹ := by simp _ = (((a⁻¹)⁻¹ * a⁻¹) * a) * a⁻¹ := by simp _ = ((a⁻¹)⁻¹ * (a⁻¹ * a)) * a⁻¹ := by simp _ = ((a⁻¹)⁻¹ * 1) * a⁻¹ := by simp _ = (a⁻¹)⁻¹ * (1 * a⁻¹) := by simp _ = (a⁻¹)⁻¹ * a⁻¹ := by simp _ = 1 := by simp -- 3ª demostración example : a * a⁻¹ = 1 := by simp -- 4ª demostración example : a * a⁻¹ = 1 := by exact mul_inv_self a |
Demostraciones interactivas
Se puede interactuar con las demostraciones anteriores en Lean 4 Web.
Referencias
- J. Avigad y P. Massot. Mathematics in Lean, p. 12.