src/HOL/Real/PReal.thy
author paulson
Thu, 25 Jun 1998 13:57:34 +0200
changeset 5078 7b5ea59c0275
child 7077 60b098bb8b8a
permissions -rw-r--r--
Installation of target HOL-Real
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5078
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
     1
(*   Title       : PReal.thy
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
     2
    Author      : Jacques D. Fleuriot
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
     3
    Copyright   : 1998  University of Cambridge
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
     4
    Description : The positive reals as Dedekind sections of positive
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
     5
                  rationals. Fundamentals of Abstract Analysis [Gleason- p. 121] 
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
     6
                  provides some of the definitions.
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
     7
*)
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
     8
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
     9
PReal = PRat +
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    10
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    11
typedef preal = "{A::prat set. {} < A & A < {q::prat. True} &
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    12
                               (!y: A. ((!z. z < y --> z: A) &
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    13
                                        (? u: A. y < u)))}"      (preal_1)
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    14
instance
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    15
   preal :: {ord, plus, times}
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    16
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    17
constdefs
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    18
  preal_prat :: prat => preal              ("@#_" [80] 80)
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    19
   "@# q     == Abs_preal({x::prat. x < q})"
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    20
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    21
  pinv       :: preal => preal
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    22
  "pinv(R)   == Abs_preal({w. ? y. w < y & qinv y ~: Rep_preal(R)})" 
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    23
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    24
  psup       :: preal set => preal
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    25
  "psup(P)   == Abs_preal({w. ? X: P. w: Rep_preal(X)})"
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    26
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    27
defs
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    28
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    29
  preal_add_def
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    30
        "R + S == Abs_preal({w. ? x: Rep_preal(R). ? y: Rep_preal(S). w = x + y})"
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    31
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    32
  preal_mult_def
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    33
        "R * S == Abs_preal({w. ? x: Rep_preal(R). ? y: Rep_preal(S). w = x * y})"
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    34
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    35
  preal_less_def
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    36
        "R < (S::preal) == Rep_preal(R) < Rep_preal(S)"
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    37
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    38
  preal_le_def
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    39
        "R <= (S::preal) == Rep_preal(R) <= Rep_preal(S)"
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    40
 
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    41
end
7b5ea59c0275 Installation of target HOL-Real
paulson
parents:
diff changeset
    42