src/HOL/BCV/Orders0.thy
author nipkow
Thu, 11 Nov 1999 11:43:14 +0100
changeset 8009 29a7a79ee7f4
parent 7626 5997f35954d7
permissions -rw-r--r--
Imported Conny's lemmas from MicroJava
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7626
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     1
(*  Title:      HOL/BCV/Orders0.thy
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     2
    ID:         $Id$
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     3
    Author:     Tobias Nipkow
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     4
    Copyright   1999 TUM
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     5
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     6
Orderings on various types.
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     7
*)
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     8
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
     9
Orders0 = Main +
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    10
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    11
instance option :: (ord)ord
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    12
instance list   :: (ord)ord
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    13
instance "*" :: (ord,ord)ord
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    14
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    15
defs
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    16
le_option "o1 <= o2 == case o2 of None => o1=None |
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    17
                         Some y => (case o1 of None => True | Some x => x<=y)"
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    18
less_option "(o1::('a::ord)option) < o2 == o1 <= o2 & o1 ~= o2"
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    19
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    20
le_list "xs <= ys == size xs = size ys & (!i. i<size xs --> xs!i <= ys!i)"
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    21
less_list "(xs::('a::ord)list) < ys == xs <= ys & xs ~= ys"
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    22
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    23
le_prod "p1 <= p2 == fst p1 <= fst p2 & snd p1 <= snd p2"
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    24
less_prod "(p1::('a::ord * 'b::ord)) < p2 == p1 <= p2 & p1 ~= p2"
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    25
5997f35954d7 A new theory: a model of bytecode verification.
nipkow
parents:
diff changeset
    26
end