En ℝ, si x ≤ y, entonces y ≰ x ↔ x ≠ y
Demostrar con Lean4 que si \(x\) e \(y\) son números reales tales que \(x ≤ y\), entonces \(y ≰ x ↔ x ≠ y\).
Para ello, completar la siguiente teoría de Lean4:
import Mathlib.Data.Real.Basic variable {x y : ℝ} example (h : x ≤ y) : ¬y ≤ x ↔ x ≠ y := by sorry
Demostración en lenguaje natural
Para demostrar la equivalencia, demostraremos cada una de las implicaciones.
Para demostrar la primera, supongamos que \(y ≰ x\) y que \(x = y\). Entonces, \(y ≤ x\) que es una contradicción.
Para demostrar la segunda, supongamos que \(x ≠ y\) y que \(y ≤ x\). Entonces, por la hipótesis y la antisimetría, se tiene que \(x = y\) lo que es una contradicción.
Demostraciones con Lean4
import Mathlib.Data.Real.Basic variable {x y : ℝ} -- 1ª demostración -- =============== example (h : x ≤ y) : ¬y ≤ x ↔ x ≠ y := by constructor . show ¬y ≤ x → x ≠ y { intro h1 -- h1 : ¬y ≤ x -- ⊢ x ≠ y intro h2 -- h2 : x = y -- ⊢ False have h3 : y ≤ x := by rw [h2] show False exact h1 h3 } . show x ≠ y → ¬y ≤ x { intro h1 -- h1 : x ≠ y -- ⊢ ¬y ≤ x intro h2 -- h2 : y ≤ x -- ⊢ False have h3 : x = y := le_antisymm h h2 show False exact h1 h3 } -- 2ª demostración -- =============== example (h : x ≤ y) : ¬y ≤ x ↔ x ≠ y := by constructor . show ¬y ≤ x → x ≠ y { intro h1 -- h1 : ¬y ≤ x -- ⊢ x ≠ y intro h2 -- h2 : x = y -- ⊢ False show False exact h1 (by rw [h2]) } . show x ≠ y → ¬y ≤ x { intro h1 -- h1 : x ≠ y -- ⊢ ¬y ≤ x intro h2 -- h2 : y ≤ x -- ⊢ False show False exact h1 (le_antisymm h h2) } -- 3ª demostración -- =============== example (h : x ≤ y) : ¬y ≤ x ↔ x ≠ y := by constructor . show ¬y ≤ x → x ≠ y { intro h1 h2 exact h1 (by rw [h2]) } . show x ≠ y → ¬y ≤ x { intro h1 h2 exact h1 (le_antisymm h h2) } -- 4ª demostración -- =============== example (h : x ≤ y) : ¬y ≤ x ↔ x ≠ y := by constructor . intro h1 h2 exact h1 (by rw [h2]) . intro h1 h2 exact h1 (le_antisymm h h2) -- 5ª demostración -- =============== example (h : x ≤ y) : ¬y ≤ x ↔ x ≠ y := by constructor . exact fun h1 h2 ↦ h1 (by rw [h2]) . exact fun h1 h2 ↦ h1 (le_antisymm h h2) -- 6ª demostración -- =============== example (h : x ≤ y) : ¬y ≤ x ↔ x ≠ y := ⟨fun h1 h2 ↦ h1 (by rw [h2]), fun h1 h2 ↦ h1 (le_antisymm h h2)⟩ -- 7ª demostración -- =============== example (h : x ≤ y) : ¬y ≤ x ↔ x ≠ y := by constructor . show ¬y ≤ x → x ≠ y { intro h1 -- h1 : ¬y ≤ x -- ⊢ x ≠ y contrapose! h1 -- h1 : x = y -- ⊢ y ≤ x calc y = x := h1.symm _ ≤ x := by rfl } . show x ≠ y → ¬y ≤ x { intro h2 -- h2 : x ≠ y -- ⊢ ¬y ≤ x contrapose! h2 -- h2 : y ≤ x -- ⊢ x = y show x = y exact le_antisymm h h2 } -- 8ª demostración -- =============== example (h : x ≤ y) : ¬y ≤ x ↔ x ≠ y := by constructor · -- ⊢ ¬y ≤ x → x ≠ y contrapose! -- ⊢ x = y → y ≤ x rintro rfl -- ⊢ x ≤ x rfl . -- ⊢ x ≠ y → ¬y ≤ x contrapose! -- ⊢ y ≤ x → x = y exact le_antisymm h
Demostraciones interactivas
Se puede interactuar con las demostraciones anteriores en Lean 4 Web.
Referencias
- J. Avigad y P. Massot. Mathematics in Lean, p. 36.