--- Título: Si c ≠ 0, entonces la función (x ↦ cx) es inyectiva Autor: José A. Alonso --- Demostrar con Lean4 que si \\(c ≠ 0\\), entonces la función \\(x ↦ cx\\) es inyectiva. Para ello, completar la siguiente teoría de Lean4:
import Mathlib.Data.Real.Basic
open Function
variable {c : ℝ}
example
(h : c ≠ 0)
: Injective ((c * .)) :=
by sorry
Demostración en lenguaje natural
[mathjax]
Se usará el lema
\\[ (∀ a, b, c) [a ≠ 0 → (ab = ac ↔ b = c))] \\tag{L1} \\]
Hay que demostrar que
\\[ (∀ x₁, x₂) [f(x₁) = f(x₂) → x₁ = x₂] \\]
Sean \\(x₁, x₂\\) tales que \\(f(x₁) = f(x₂)\\). Entonces,
\\[ cx₁ = cx₂ \\]
y, por L1 y puesto que \\(c ≠ 0\\), se tiene que
\\[ x₁ = x₂ \\]
Demostraciones con Lean4
import Mathlib.Data.Real.Basic
open Function
variable {c : ℝ}
-- 1ª demostración
example
(h : c ≠ 0)
: Injective ((c * .)) :=
by
intro (x1 : ℝ) (x2 : ℝ) (h1 : c * x1 = c * x2)
show x1 = x2
exact (mul_right_inj' h).mp h1
-- 2ª demostración
example
(h : c ≠ 0)
: Injective ((c * .)) :=
fun _ _ h1 ↦ mul_left_cancel₀ h h1
-- Lemas usados
-- ============
-- variable (a b : ℝ)
-- #check (mul_right_inj' : a ≠ 0 → (a * b = a * c ↔ b = c))
-- #check (mul_left_cancel₀ : a ≠ 0 → a * b = a * c → b = c)
Demostraciones interactivas
Se puede interactuar con las demostraciones anteriores en Lean 4 Web.
Referencias