src/HOL/Real/Lubs.thy
author wenzelm
Fri, 10 Nov 2000 19:00:51 +0100
changeset 10430 d3f780c3af0c
parent 9279 fb4186e20148
child 14368 2763da611ad9
permissions -rw-r--r--
added atomize_eq;

(*  Title       : Lubs.thy
    ID          : $Id$
    Author      : Jacques D. Fleuriot
    Copyright   : 1998  University of Cambridge
    Description : Upper bounds, lubs definitions
                  suggested by James Margetson
*) 


Lubs = Main +

consts
    
    "*<=" :: ['a set, 'a::ord] => bool     (infixl 70)
    "<=*" :: ['a::ord, 'a set] => bool     (infixl 70)

constdefs
    leastP      :: ['a =>bool,'a::ord] => bool
    "leastP P x == (P x & x <=* Collect P)"

    isLub       :: ['a set, 'a set, 'a::ord] => bool    
    "isLub R S x  == leastP (isUb R S) x"

    isUb        :: ['a set, 'a set, 'a::ord] => bool     
    "isUb R S x   == S *<= x & x: R"

    ubs         :: ['a set, 'a::ord set] => 'a set
    "ubs R S      == Collect (isUb R S)"

defs
    setle_def
    "S *<= x    == (ALL y: S. y <= x)"

    setge_def
    "x <=* S    == (ALL y: S. x <= y)"

end