--- Título: Si ≤ es un preorden, entonces < es irreflexiva Autor: José A. Alonso --- [mathjax] Demostrar con Lean4 que si \\(≤\\) es un preorden, entonces \\(<\\) es irreflexiva. Para ello, completar la siguiente teoría de Lean4:
import Mathlib.Tactic
variable {α : Type _} [Preorder α]
variable (a : α)
example : ¬a < a :=
by sorry
Demostración en lenguaje natural
Se usará la siguiente propiedad de lo preórdenes
\\[ (∀ a, b)[a < b ↔ a ≤ b ∧ b ≰ a] \\]
Con dicha propiedad, lo que tenemos que demostrar se transforma en
\\[ ¬(a ≤ a ∧ a ≰ a) \\]
Para demostrarla, supongamos que
\\[ a ≤ a ∧ a ≰ a \\]
lo que es una contradicción.
Demostraciones con Lean4
import Mathlib.Tactic
variable {α : Type _} [Preorder α]
variable (a : α)
-- 1ª demostración
-- ===============
example : ¬a < a :=
by
rw [lt_iff_le_not_le]
-- ⊢ ¬(a ≤ a ∧ ¬a ≤ a)
rintro ⟨h1, h2⟩
-- h1 : a ≤ a
-- h2 : ¬a ≤ a
-- ⊢ False
exact h2 h1
-- 2ª demostración
-- ===============
example : ¬a < a :=
irrefl a
-- Lemas usados
-- ============
-- variable (b : α)
-- #check (lt_iff_le_not_le : a < b ↔ a ≤ b ∧ ¬b ≤ a)
-- #check (irrefl a : ¬a < a)
Demostraciones interactivas
Se puede interactuar con las demostraciones anteriores en Lean 4 Web.
Referencias