src/HOL/Bali/Conform.thy
changeset 24783 5a3e336a2e37
parent 16417 9bc16273c2d4
child 30235 58d147683393
equal deleted inserted replaced
24782:38e5c05ef741 24783:5a3e336a2e37
    15       objects on the heap are indeed existing classes. Yet this can be 
    15       objects on the heap are indeed existing classes. Yet this can be 
    16       inferred for all referenced objs.
    16       inferred for all referenced objs.
    17 \end{itemize}
    17 \end{itemize}
    18 *}
    18 *}
    19 
    19 
    20 types	env_ = "prog \<times> (lname, ty) table" (* same as env of WellType.thy *)
    20 types	env' = "prog \<times> (lname, ty) table" (* same as env of WellType.thy *)
    21 
    21 
    22 
    22 
    23 section "extension of global store"
    23 section "extension of global store"
    24 
    24 
    25 
    25 
   386 
   386 
   387 section "state conformance"
   387 section "state conformance"
   388 
   388 
   389 constdefs
   389 constdefs
   390 
   390 
   391   conforms :: "state \<Rightarrow> env_ \<Rightarrow> bool"          (     "_\<Colon>\<preceq>_"   [71,71]      70)
   391   conforms :: "state \<Rightarrow> env' \<Rightarrow> bool"          (     "_\<Colon>\<preceq>_"   [71,71]      70)
   392    "xs\<Colon>\<preceq>E \<equiv> let (G, L) = E; s = snd xs; l = locals s in
   392    "xs\<Colon>\<preceq>E \<equiv> let (G, L) = E; s = snd xs; l = locals s in
   393     (\<forall>r. \<forall>obj\<in>globs s r:           G,s\<turnstile>obj   \<Colon>\<preceq>\<surd>r) \<and>
   393     (\<forall>r. \<forall>obj\<in>globs s r:           G,s\<turnstile>obj   \<Colon>\<preceq>\<surd>r) \<and>
   394                 \<spacespace>                   G,s\<turnstile>l    [\<sim>\<Colon>\<preceq>]L\<spacespace> \<and>
   394                 \<spacespace>                   G,s\<turnstile>l    [\<sim>\<Colon>\<preceq>]L\<spacespace> \<and>
   395     (\<forall>a. fst xs=Some(Xcpt (Loc a)) \<longrightarrow> G,s\<turnstile>Addr a\<Colon>\<preceq> Class (SXcpt Throwable)) \<and>
   395     (\<forall>a. fst xs=Some(Xcpt (Loc a)) \<longrightarrow> G,s\<turnstile>Addr a\<Colon>\<preceq> Class (SXcpt Throwable)) \<and>
   396          (fst xs=Some(Jump Ret) \<longrightarrow> l Result \<noteq> None)"
   396          (fst xs=Some(Jump Ret) \<longrightarrow> l Result \<noteq> None)"