Skip to main content

Si c ≠ 0, entonces la función (x ↦ cx) es inyectiva

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

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