src/HOL/MicroJava/BV/Convert.thy
author oheimb
Fri, 19 Nov 1999 16:30:52 +0100
changeset 8023 3e5ddca613dd
parent 8011 d14c4e9e9c8e
child 8119 60b606eddec8
permissions -rw-r--r--
re-shaped and re-ordered conversion relations
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
8023
3e5ddca613dd re-shaped and re-ordered conversion relations
oheimb
parents: 8011
diff changeset
    18
 sup_ty_opt :: "['code prog,ty option,ty option] \\<Rightarrow> bool" ("_ \\<turnstile>_ <=o _")
3e5ddca613dd re-shaped and re-ordered conversion relations
oheimb
parents: 8011
diff changeset
    19
 "G \\<turnstile> a' <=o a \\<equiv>
8011
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
8023
3e5ddca613dd re-shaped and re-ordered conversion relations
oheimb
parents: 8011
diff changeset
    26
 sup_loc :: "['code prog,locvars_type,locvars_type] \\<Rightarrow> bool"	  ("_ \\<turnstile> _ <=l _"  [71,71] 70)
3e5ddca613dd re-shaped and re-ordered conversion relations
oheimb
parents: 8011
diff changeset
    27
 "G \\<turnstile> LT <=l LT' \\<equiv> (length LT=length LT') \\<and> (\\<forall>(t,t')\\<in>set (zip LT LT'). G \\<turnstile> t <=o t')"
8011
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    28
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    29
8023
3e5ddca613dd re-shaped and re-ordered conversion relations
oheimb
parents: 8011
diff changeset
    30
 sup_state :: "['code prog,state_type,state_type] \\<Rightarrow> bool"	  ("_ \\<turnstile> _ <=s _"  [71,71] 70)
3e5ddca613dd re-shaped and re-ordered conversion relations
oheimb
parents: 8011
diff changeset
    31
 "G \\<turnstile> s <=s s' \\<equiv> G \\<turnstile> map Some (fst s) <=l map Some (fst s') \\<and> G \\<turnstile> snd s <=l snd s'"
8011
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    32
d14c4e9e9c8e *** empty log message ***
nipkow
parents:
diff changeset
    33
end