author | wenzelm |
Sun, 26 Mar 2000 20:17:52 +0200 | |
changeset 8585 | 8a3ae21e4a5b |
parent 7978 | 1b99ee57d131 |
child 8659 | 5fdbe2dd54f9 |
permissions | -rw-r--r-- |
7566 | 1 |
(* Title: HOL/Real/HahnBanach/Bounds.thy |
2 |
ID: $Id$ |
|
3 |
Author: Gertrud Bauer, TU Munich |
|
4 |
*) |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
5 |
|
7808 | 6 |
header {* Bounds *}; |
7 |
||
8585 | 8 |
theory Bounds = Main + Real:; (*<*) |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
9 |
|
7808 | 10 |
subsection {* The sets of lower and upper bounds *}; |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
11 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
12 |
constdefs |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
13 |
is_LowerBound :: "('a::order) set => 'a set => 'a => bool" |
7917 | 14 |
"is_LowerBound A B == \<lambda>x. x:A & (ALL y:B. x <= y)" |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
15 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
16 |
LowerBounds :: "('a::order) set => 'a set => 'a set" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
17 |
"LowerBounds A B == Collect (is_LowerBound A B)" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
18 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
19 |
is_UpperBound :: "('a::order) set => 'a set => 'a => bool" |
7917 | 20 |
"is_UpperBound A B == \<lambda>x. x:A & (ALL y:B. y <= x)" |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
21 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
22 |
UpperBounds :: "('a::order) set => 'a set => 'a set" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
23 |
"UpperBounds A B == Collect (is_UpperBound A B)"; |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
24 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
25 |
syntax |
7808 | 26 |
"_UPPERS" :: "[pttrn, 'a set, 'a => bool] => 'a set" |
27 |
("(3UPPER'_BOUNDS _:_./ _)" 10) |
|
28 |
"_UPPERS_U" :: "[pttrn, 'a => bool] => 'a set" |
|
29 |
("(3UPPER'_BOUNDS _./ _)" 10) |
|
30 |
"_LOWERS" :: "[pttrn, 'a set, 'a => bool] => 'a set" |
|
31 |
("(3LOWER'_BOUNDS _:_./ _)" 10) |
|
32 |
"_LOWERS_U" :: "[pttrn, 'a => bool] => 'a set" |
|
33 |
("(3LOWER'_BOUNDS _./ _)" 10); |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
34 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
35 |
translations |
7917 | 36 |
"UPPER_BOUNDS x:A. P" == "UpperBounds A (Collect (\<lambda>x. P))" |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
37 |
"UPPER_BOUNDS x. P" == "UPPER_BOUNDS x:UNIV. P" |
7917 | 38 |
"LOWER_BOUNDS x:A. P" == "LowerBounds A (Collect (\<lambda>x. P))" |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
39 |
"LOWER_BOUNDS x. P" == "LOWER_BOUNDS x:UNIV. P"; |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
40 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
41 |
|
7808 | 42 |
subsection {* Least and greatest elements *}; |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
43 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
44 |
constdefs |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
45 |
is_Least :: "('a::order) set => 'a => bool" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
46 |
"is_Least B == is_LowerBound B B" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
47 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
48 |
Least :: "('a::order) set => 'a" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
49 |
"Least B == Eps (is_Least B)" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
50 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
51 |
is_Greatest :: "('a::order) set => 'a => bool" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
52 |
"is_Greatest B == is_UpperBound B B" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
53 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
54 |
Greatest :: "('a::order) set => 'a" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
55 |
"Greatest B == Eps (is_Greatest B)"; |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
56 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
57 |
syntax |
7808 | 58 |
"_LEAST" :: "[pttrn, 'a => bool] => 'a" |
59 |
("(3LLEAST _./ _)" 10) |
|
60 |
"_GREATEST" :: "[pttrn, 'a => bool] => 'a" |
|
61 |
("(3GREATEST _./ _)" 10); |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
62 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
63 |
translations |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
64 |
"LLEAST x. P" == "Least {x. P}" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
65 |
"GREATEST x. P" == "Greatest {x. P}"; |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
66 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
67 |
|
7808 | 68 |
subsection {* Infimum and Supremum *}; |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
69 |
|
8585 | 70 |
(*>*) |
7978 | 71 |
text {* |
72 |
A supremum\footnote{The definition of the supremum is based on one in |
|
73 |
\url{http://isabelle.in.tum.de/library/HOL/HOL-Real/Lubs.html}} of |
|
74 |
an ordered set $B$ w.~r.~t.~$A$ is defined as a least upper bound of |
|
75 |
$B$, which lies in $A$. |
|
76 |
*}; |
|
7917 | 77 |
|
78 |
text{* If a supremum exists, then $\idt{Sup}\ap A\ap B$ |
|
79 |
is equal to the supremum. *}; |
|
80 |
||
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
81 |
constdefs |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
82 |
is_Sup :: "('a::order) set => 'a set => 'a => bool" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
83 |
"is_Sup A B x == isLub A B x" |
7917 | 84 |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
85 |
Sup :: "('a::order) set => 'a set => 'a" |
8585 | 86 |
"Sup A B == Eps (is_Sup A B)"; (*<*) |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
87 |
|
7917 | 88 |
constdefs |
89 |
is_Inf :: "('a::order) set => 'a set => 'a => bool" |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
90 |
"is_Inf A B x == x:A & is_Greatest (LowerBounds A B) x" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
91 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
92 |
Inf :: "('a::order) set => 'a set => 'a" |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
93 |
"Inf A B == Eps (is_Inf A B)"; |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
94 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
95 |
syntax |
7917 | 96 |
"_SUP" :: "[pttrn, 'a set, 'a => bool] => 'a set" |
7808 | 97 |
("(3SUP _:_./ _)" 10) |
7917 | 98 |
"_SUP_U" :: "[pttrn, 'a => bool] => 'a set" |
7808 | 99 |
("(3SUP _./ _)" 10) |
7917 | 100 |
"_INF" :: "[pttrn, 'a set, 'a => bool] => 'a set" |
7808 | 101 |
("(3INF _:_./ _)" 10) |
7917 | 102 |
"_INF_U" :: "[pttrn, 'a => bool] => 'a set" |
7808 | 103 |
("(3INF _./ _)" 10); |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
104 |
|
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
105 |
translations |
7917 | 106 |
"SUP x:A. P" == "Sup A (Collect (\<lambda>x. P))" |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
107 |
"SUP x. P" == "SUP x:UNIV. P" |
7917 | 108 |
"INF x:A. P" == "Inf A (Collect (\<lambda>x. P))" |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
109 |
"INF x. P" == "INF x:UNIV. P"; |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
110 |
|
8585 | 111 |
(*>*) |
7978 | 112 |
text{* The supremum of $B$ is less than any upper bound |
7917 | 113 |
of $B$.*}; |
114 |
||
7656 | 115 |
lemma sup_le_ub: "isUb A B y ==> is_Sup A B s ==> s <= y"; |
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
116 |
by (unfold is_Sup_def, rule isLub_le_isUb); |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
117 |
|
7978 | 118 |
text {* The supremum $B$ is an upper bound for $B$. *}; |
7917 | 119 |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
120 |
lemma sup_ub: "y:B ==> is_Sup A B s ==> y <= s"; |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
121 |
by (unfold is_Sup_def, rule isLubD2); |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
122 |
|
7917 | 123 |
text{* The supremum of a non-empty set $B$ is greater |
124 |
than a lower bound of $B$. *}; |
|
125 |
||
126 |
lemma sup_ub1: |
|
127 |
"[| ALL y:B. a <= y; is_Sup A B s; x:B |] ==> a <= s"; |
|
7535
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
128 |
proof -; |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
129 |
assume "ALL y:B. a <= y" "is_Sup A B s" "x:B"; |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
130 |
have "a <= x"; by (rule bspec); |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
131 |
also; have "x <= s"; by (rule sup_ub); |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
132 |
finally; show "a <= s"; .; |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
133 |
qed; |
599d3414b51d
The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff
changeset
|
134 |
|
7808 | 135 |
end; |