src/HOL/Real/HahnBanach/Bounds.thy
author bauerg
Mon, 17 Jul 2000 18:17:54 +0200
changeset 9379 21cfeae6659d
parent 9374 153853af318b
child 9503 3324cbbecef8
permissions -rw-r--r--
tuded presentation;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7566
c5a3f980a7af accomodate refined facts handling;
wenzelm
parents: 7535
diff changeset
     1
(*  Title:      HOL/Real/HahnBanach/Bounds.thy
c5a3f980a7af accomodate refined facts handling;
wenzelm
parents: 7535
diff changeset
     2
    ID:         $Id$
c5a3f980a7af accomodate refined facts handling;
wenzelm
parents: 7535
diff changeset
     3
    Author:     Gertrud Bauer, TU Munich
c5a3f980a7af accomodate refined facts handling;
wenzelm
parents: 7535
diff changeset
     4
*)
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
     5
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
     6
header {* Bounds *}
7808
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
     7
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
     8
theory Bounds = Main + Real:
8659
5fdbe2dd54f9 tuned presentation;
wenzelm
parents: 8585
diff changeset
     9
(*<*)
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    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"
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
    14
  "is_LowerBound A B == \\<lambda>x. x \\<in> A \\<and> (\\<forall>y \\<in> 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"
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
    20
  "is_UpperBound A B == \\<lambda>x. x \\<in> A \\<and> (\\<forall>y \\<in> 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"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    23
  "UpperBounds A B == Collect (is_UpperBound A B)"
7535
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
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
    26
  "_UPPERS" :: "[pttrn, 'a set, 'a => bool] => 'a set"     
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
    27
    ("(3UPPER'_BOUNDS _:_./ _)" 10)
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
    28
  "_UPPERS_U" :: "[pttrn, 'a => bool] => 'a set"           
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
    29
    ("(3UPPER'_BOUNDS _./ _)" 10)
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
    30
  "_LOWERS" :: "[pttrn, 'a set, 'a => bool] => 'a set"     
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
    31
    ("(3LOWER'_BOUNDS _:_./ _)" 10)
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
    32
  "_LOWERS_U" :: "[pttrn, 'a => bool] => 'a set"           
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    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
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
    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"
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
    38
  "LOWER_BOUNDS x:A. P" == "LowerBounds A (Collect (\\<lambda>x. P))"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    39
  "LOWER_BOUNDS x. P" == "LOWER_BOUNDS x:UNIV. P"
7535
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
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    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" 
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    55
  "Greatest B == Eps (is_Greatest B)"
7535
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
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
    58
  "_LEAST"    :: "[pttrn, 'a => bool] => 'a"  
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
    59
    ("(3LLEAST _./ _)" 10)
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
    60
  "_GREATEST" :: "[pttrn, 'a => bool] => 'a"  
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    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}"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    65
  "GREATEST x. P" == "Greatest {x. P}"
7535
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
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    68
subsection {* Infimum and Supremum *}
8585
8a3ae21e4a5b tuned presentation;
wenzelm
parents: 7978
diff changeset
    69
(*>*)
7978
1b99ee57d131 final update by Gertrud Bauer;
wenzelm
parents: 7917
diff changeset
    70
text {*
1b99ee57d131 final update by Gertrud Bauer;
wenzelm
parents: 7917
diff changeset
    71
 A supremum\footnote{The definition of the supremum is based on one in
1b99ee57d131 final update by Gertrud Bauer;
wenzelm
parents: 7917
diff changeset
    72
 \url{http://isabelle.in.tum.de/library/HOL/HOL-Real/Lubs.html}}  of
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
    73
 an ordered set $B$ w.~r.~t. $A$ is defined as a least upper bound of
7978
1b99ee57d131 final update by Gertrud Bauer;
wenzelm
parents: 7917
diff changeset
    74
 $B$, which lies in $A$.
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    75
*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
    76
   
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
    77
text{* If a supremum exists, then $\idt{Sup}\ap A\ap B$
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    78
is equal to the supremum. *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
    79
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    80
constdefs
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    81
  is_Sup :: "('a::order) set => 'a set => 'a => bool"
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    82
  "is_Sup A B x == isLub A B x"
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
    83
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    84
  Sup :: "('a::order) set => 'a set => 'a"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    85
  "Sup A B == Eps (is_Sup A B)"
8659
5fdbe2dd54f9 tuned presentation;
wenzelm
parents: 8585
diff changeset
    86
(*<*)
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
    87
constdefs
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
    88
  is_Inf :: "('a::order) set => 'a set => 'a => bool"
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
    89
  "is_Inf A B x == x \\<in> A \\<and>  is_Greatest (LowerBounds A B) x"
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    90
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    91
  Inf :: "('a::order) set => 'a set => 'a"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
    92
  "Inf A B == Eps (is_Inf A B)"
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    93
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
    94
syntax
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
    95
  "_SUP" :: "[pttrn, 'a set, 'a => bool] => 'a set"
7808
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
    96
    ("(3SUP _:_./ _)" 10)
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
    97
  "_SUP_U" :: "[pttrn, 'a => bool] => 'a set"
7808
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
    98
    ("(3SUP _./ _)" 10)
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
    99
  "_INF" :: "[pttrn, 'a set, 'a => bool] => 'a set"
7808
fd019ac3485f update from Gertrud;
wenzelm
parents: 7656
diff changeset
   100
    ("(3INF _:_./ _)" 10)
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
   101
  "_INF_U" :: "[pttrn, 'a => bool] => 'a set"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   102
    ("(3INF _./ _)" 10)
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   103
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   104
translations
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
   105
  "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
   106
  "SUP x. P" == "SUP x:UNIV. P"
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
   107
  "INF x:A. P" == "Inf A (Collect (\\<lambda>x. P))"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   108
  "INF x. P" == "INF x:UNIV. P"
8585
8a3ae21e4a5b tuned presentation;
wenzelm
parents: 7978
diff changeset
   109
(*>*)
7978
1b99ee57d131 final update by Gertrud Bauer;
wenzelm
parents: 7917
diff changeset
   110
text{* The supremum of $B$ is less than any upper bound
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   111
of $B$.*}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
   112
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   113
lemma sup_le_ub: "isUb A B y ==> is_Sup A B s ==> s <= y"
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   114
  by (unfold is_Sup_def, rule isLub_le_isUb)
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   115
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   116
text {* The supremum $B$ is an upper bound for $B$. *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
   117
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
   118
lemma sup_ub: "y \\<in> B ==> is_Sup A B s ==> y <= s"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   119
  by (unfold is_Sup_def, rule isLubD2)
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   120
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
   121
text{* The supremum of a non-empty set $B$ is greater
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   122
than a lower bound of $B$. *}
7917
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
   123
5e5b9813cce7 HahnBanach update by Gertrud Bauer;
wenzelm
parents: 7808
diff changeset
   124
lemma sup_ub1: 
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
   125
  "[| \\<forall>y \\<in> B. a <= y; is_Sup A B s; x \\<in> B |] ==> a <= s"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   126
proof - 
9379
21cfeae6659d tuded presentation;
bauerg
parents: 9374
diff changeset
   127
  assume "\\<forall>y \\<in> B. a <= y" "is_Sup A B s" "x \\<in> B"
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   128
  have "a <= x" by (rule bspec)
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   129
  also have "x <= s" by (rule sup_ub)
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   130
  finally show "a <= s" .
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   131
qed
7535
599d3414b51d The Hahn-Banach theorem for real vectorspaces (Isabelle/Isar)
wenzelm
parents:
diff changeset
   132
  
9035
371f023d3dbd removed explicit terminator (";");
wenzelm
parents: 8659
diff changeset
   133
end