-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCotas_superiores_de_conjuntos.lean
57 lines (47 loc) · 1.48 KB
/
Cotas_superiores_de_conjuntos.lean
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
-- Cotas_superiores_de_conjuntos.lean
-- Si a es una cota superior de s y a ≤ b, entonces b es una cota superior de s.
-- José A. Alonso Jiménez <https://jaalonso.github.io>
-- Sevilla, 23-octubre-2023
-- ---------------------------------------------------------------------
-- ---------------------------------------------------------------------
-- Demostrar que si a es una cota superior de s y a ≤ b, entonces b es
-- una cota superior de s.
-- ----------------------------------------------------------------------
import Mathlib.Tactic
variable {α : Type _} [PartialOrder α]
variable (s : Set α)
variable (a b : α)
-- (CotaSupConj s a) afirma que a es una cota superior del conjunto s.
def CotaSupConj (s : Set α) (a : α) :=
∀ {x}, x ∈ s → x ≤ a
-- Demostración en lenguaje natural
-- ================================
-- Tenemos que demostrar que
-- (∀ x) [x ∈ s → x ≤ b]
-- Sea x tal que x ∈ s. Entonces,
-- x ≤ a [porque a es una cota superior de s]
-- ≤ b
-- Por tanto, x ≤ b.
-- 1ª demostración
example
(h1 : CotaSupConj s a)
(h2 : a ≤ b)
: CotaSupConj s b :=
by
intro x (xs : x ∈ s)
have h3 : x ≤ a := h1 xs
show x ≤ b
exact le_trans h3 h2
-- 2ª demostración
example
(h1 : CotaSupConj s a)
(h2 : a ≤ b)
: CotaSupConj s b :=
by
intro x (xs : x ∈ s)
calc x ≤ a := h1 xs
_ ≤ b := h2
-- Lemas usados
-- ============
-- variable (c : α)
-- #check (le_trans : a ≤ b → b ≤ c → a ≤ c)