src/HOL/MicroJava/BV/Convert.thy
author nipkow
Thu, 11 Nov 1999 12:23:45 +0100
changeset 8011 d14c4e9e9c8e
child 8023 3e5ddca613dd
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8011
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     1
(*  Title:      HOL/MicroJava/BV/Convert.thy
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     2
    ID:         $Id$
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     3
    Author:     Cornelia Pusch
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     4
    Copyright   1999 Technische Universitaet Muenchen
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     5
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     6
The supertype relation lifted to type options, type lists and state types.
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     7
*)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     8
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
     9
Convert = JVMExec + 
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    10
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    11
types
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    12
 locvars_type = ty option list
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    13
 opstack_type = ty list
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    14
 state_type   = "opstack_type \\<times> locvars_type"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    15
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    16
constdefs
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    17
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    18
 sup_ty_opt :: "['code prog,ty option,ty option] \\<Rightarrow> bool" ("_ \\<turnstile>_ >= _")
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    19
 "G \\<turnstile> a >= a' \\<equiv>
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    20
    case a of
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    21
      None \\<Rightarrow> True
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    22
    | Some t  \\<Rightarrow>  case a' of 
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    23
		     None \\<Rightarrow> False
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    24
		   | Some t' \\<Rightarrow> G \\<turnstile> t' \\<preceq> t" 
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    25
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    26
 sup_loc :: "['code prog,locvars_type,locvars_type] \\<Rightarrow> bool"	  ("_ \\<turnstile> _ >>= _"  [71,71] 70)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    27
 "G \\<turnstile> LT >>= LT' \\<equiv> (length LT=length LT') \\<and> (\\<forall>(t,t')\\<in>set (zip LT LT'). G \\<turnstile> t >= t')"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    28
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    29
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    30
 sup_state :: "['code prog,state_type,state_type] \\<Rightarrow> bool"	  ("_ \\<turnstile> _ >>>= _"  [71,71] 70)
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    31
 "G \\<turnstile> s >>>= s' \\<equiv> G \\<turnstile> map Some (fst s) >>= map Some (fst s') \\<and> G \\<turnstile> snd s >>= snd s'"
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    32
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    33
end