src/HOL/Real/HahnBanach/Bounds.thy
author wenzelm
Fri, 08 Mar 2002 16:24:06 +0100
changeset 13049 ce180e5b7fa0
parent 10687 c186279eecea
child 13515 a6a7025fd7e8
permissions -rw-r--r--
tuned;

(*  Title:      HOL/Real/HahnBanach/Bounds.thy
    ID:         $Id$
    Author:     Gertrud Bauer, TU Munich
*)

header {* Bounds *}

theory Bounds = Main + Real:

text {*
  A supremum\footnote{The definition of the supremum is based on one
  in \url{http://isabelle.in.tum.de/library/HOL/HOL-Real/Lubs.html}}
  of an ordered set @{text B} w.~r.~t. @{text A} is defined as a least
  upper bound of @{text B}, which lies in @{text A}.
*}
   
text {*
  If a supremum exists, then @{text "Sup A B"} is equal to the
  supremum. *}

constdefs
  is_Sup :: "('a::order) set \<Rightarrow> 'a set \<Rightarrow> 'a \<Rightarrow> bool"
  "is_Sup A B x \<equiv> isLub A B x"

  Sup :: "('a::order) set \<Rightarrow> 'a set \<Rightarrow> 'a"
  "Sup A B \<equiv> Eps (is_Sup A B)"

text {*
  The supremum of @{text B} is less than any upper bound of
  @{text B}. *}

lemma sup_le_ub: "isUb A B y \<Longrightarrow> is_Sup A B s \<Longrightarrow> s \<le> y"
  by (unfold is_Sup_def, rule isLub_le_isUb)

text {* The supremum @{text B} is an upper bound for @{text B}. *}

lemma sup_ub: "y \<in> B \<Longrightarrow> is_Sup A B s \<Longrightarrow> y \<le> s"
  by (unfold is_Sup_def, rule isLubD2)

text {*
  The supremum of a non-empty set @{text B} is greater than a lower
  bound of @{text B}. *}

lemma sup_ub1: 
  "\<forall>y \<in> B. a \<le> y \<Longrightarrow> is_Sup A B s \<Longrightarrow> x \<in> B \<Longrightarrow> a \<le> s"
proof - 
  assume "\<forall>y \<in> B. a \<le> y"  "is_Sup A B s"  "x \<in> B"
  have "a \<le> x" by (rule bspec)
  also have "x \<le> s" by (rule sup_ub)
  finally show "a \<le> s" .
qed
  
end