diff -r eec2582923f6 -r b95d12325b51 src/HOL/MicroJava/J/Eval.thy --- a/src/HOL/MicroJava/J/Eval.thy Mon Oct 21 17:23:23 2002 +0200 +++ b/src/HOL/MicroJava/J/Eval.thy Wed Oct 23 16:09:02 2002 +0200 @@ -8,6 +8,30 @@ theory Eval = State + WellType: + + -- "Auxiliary notions" + +constdefs + fits :: "java_mb prog \ state \ val \ ty \ bool" ("_,_\_ fits _"[61,61,61,61]60) + "G,s\a' fits T \ case T of PrimT T' \ False | RefT T' \ a'=Null \ G\obj_ty(lookup_obj s a')\T" + +constdefs + catch ::"java_mb prog \ xstate \ cname \ bool" ("_,_\catch _"[61,61,61]60) + "G,s\catch C\ case abrupt s of None \ False | Some a \ G,store s\ a fits Class C" + + + +constdefs + lupd :: "vname \ val \ state \ state" ("lupd'(_\_')"[10,10]1000) + "lupd vn v \ \ (hp,loc). (hp, (loc(vn\v)))" + +constdefs + new_xcpt_var :: "vname \ xstate \ xstate" + "new_xcpt_var vn \ \(x,s). Norm (lupd(vn\the x) s)" + + + -- "Evaluation relations" + consts eval :: "java_mb prog => (xstate \ expr \ val \ xstate) set" evals :: "java_mb prog => (xstate \ expr list \ val list \ xstate) set"