src/HOL/Hyperreal/Zorn.thy
author nipkow
Mon, 29 Jan 2001 23:02:21 +0100
changeset 10996 74e970389def
parent 10751 a81ea5d3dd41
permissions -rw-r--r--
Moved some thms from Transitive_ClosureTr.ML to Transitive_Closure.thy

(*  Title       : Zorn.thy
    ID          : $Id$
    Author      : Jacques D. Fleuriot
    Copyright   : 1998  University of Cambridge
    Description : Zorn's Lemma -- See lcp's Zorn.thy in ZF
*) 

Zorn = Main +

constdefs
  chain     ::  'a::ord set => 'a set set
    "chain S  == {F. F <= S & (ALL x: F. ALL y: F. x <= y | y <= x)}" 

  super     ::  ['a::ord set,'a set] => 'a set set
    "super S c == {d. d: chain(S) & c < d}"

  maxchain  ::  'a::ord set => 'a set set
    "maxchain S == {c. c: chain S & super S c = {}}"

  succ      ::  ['a::ord set,'a set] => 'a set
    "succ S c == if (c ~: chain S| c: maxchain S) 
                 then c else (@c'. c': (super S c))" 

consts 
  "TFin" :: 'a::ord set => 'a set set

inductive "TFin(S)"
  intrs
    succI        "x : TFin S ==> succ S x : TFin S"
    Pow_UnionI   "Y : Pow(TFin S) ==> Union(Y) : TFin S"
           
  monos          Pow_mono
end