diff -r bb18eed53ed6 -r a1119cf551e8 src/HOL/IMP/OO.thy --- a/src/HOL/IMP/OO.thy Tue Aug 13 14:20:22 2013 +0200 +++ b/src/HOL/IMP/OO.thy Tue Aug 13 16:25:47 2013 +0200 @@ -48,33 +48,33 @@ "me \ (e,c) \ (r,ve',sn') \ me \ (x ::= e,c) \ (r,ve'(x:=r),sn')" | Fassign: -"\ me \ (oe,c\<^isub>1) \ (Ref a,c\<^isub>2); me \ (e,c\<^isub>2) \ (r,ve\<^isub>3,s\<^isub>3,n\<^isub>3) \ \ - me \ (oe\f ::= e,c\<^isub>1) \ (r,ve\<^isub>3,s\<^isub>3(a,f := r),n\<^isub>3)" | +"\ me \ (oe,c\<^sub>1) \ (Ref a,c\<^sub>2); me \ (e,c\<^sub>2) \ (r,ve\<^sub>3,s\<^sub>3,n\<^sub>3) \ \ + me \ (oe\f ::= e,c\<^sub>1) \ (r,ve\<^sub>3,s\<^sub>3(a,f := r),n\<^sub>3)" | Mcall: -"\ me \ (oe,c\<^isub>1) \ (or,c\<^isub>2); me \ (pe,c\<^isub>2) \ (pr,ve\<^isub>3,sn\<^isub>3); +"\ me \ (oe,c\<^sub>1) \ (or,c\<^sub>2); me \ (pe,c\<^sub>2) \ (pr,ve\<^sub>3,sn\<^sub>3); ve = (\x. null)(''this'' := or, ''param'' := pr); - me \ (me m,ve,sn\<^isub>3) \ (r,ve',sn\<^isub>4) \ + me \ (me m,ve,sn\<^sub>3) \ (r,ve',sn\<^sub>4) \ \ - me \ (oe\m,c\<^isub>1) \ (r,ve\<^isub>3,sn\<^isub>4)" | + me \ (oe\m,c\<^sub>1) \ (r,ve\<^sub>3,sn\<^sub>4)" | Seq: -"\ me \ (e\<^isub>1,c\<^isub>1) \ (r,c\<^isub>2); me \ (e\<^isub>2,c\<^isub>2) \ c\<^isub>3 \ \ - me \ (e\<^isub>1; e\<^isub>2,c\<^isub>1) \ c\<^isub>3" | +"\ me \ (e\<^sub>1,c\<^sub>1) \ (r,c\<^sub>2); me \ (e\<^sub>2,c\<^sub>2) \ c\<^sub>3 \ \ + me \ (e\<^sub>1; e\<^sub>2,c\<^sub>1) \ c\<^sub>3" | IfTrue: -"\ me \ (b,c\<^isub>1) \ (True,c\<^isub>2); me \ (e\<^isub>1,c\<^isub>2) \ c\<^isub>3 \ \ - me \ (IF b THEN e\<^isub>1 ELSE e\<^isub>2,c\<^isub>1) \ c\<^isub>3" | +"\ me \ (b,c\<^sub>1) \ (True,c\<^sub>2); me \ (e\<^sub>1,c\<^sub>2) \ c\<^sub>3 \ \ + me \ (IF b THEN e\<^sub>1 ELSE e\<^sub>2,c\<^sub>1) \ c\<^sub>3" | IfFalse: -"\ me \ (b,c\<^isub>1) \ (False,c\<^isub>2); me \ (e\<^isub>2,c\<^isub>2) \ c\<^isub>3 \ \ - me \ (IF b THEN e\<^isub>1 ELSE e\<^isub>2,c\<^isub>1) \ c\<^isub>3" | +"\ me \ (b,c\<^sub>1) \ (False,c\<^sub>2); me \ (e\<^sub>2,c\<^sub>2) \ c\<^sub>3 \ \ + me \ (IF b THEN e\<^sub>1 ELSE e\<^sub>2,c\<^sub>1) \ c\<^sub>3" | "me \ (B bv,c) \ (bv,c)" | -"me \ (b,c\<^isub>1) \ (bv,c\<^isub>2) \ me \ (Not b,c\<^isub>1) \ (\bv,c\<^isub>2)" | +"me \ (b,c\<^sub>1) \ (bv,c\<^sub>2) \ me \ (Not b,c\<^sub>1) \ (\bv,c\<^sub>2)" | -"\ me \ (b\<^isub>1,c\<^isub>1) \ (bv\<^isub>1,c\<^isub>2); me \ (b\<^isub>2,c\<^isub>2) \ (bv\<^isub>2,c\<^isub>3) \ \ - me \ (And b\<^isub>1 b\<^isub>2,c\<^isub>1) \ (bv\<^isub>1\bv\<^isub>2,c\<^isub>3)" | +"\ me \ (b\<^sub>1,c\<^sub>1) \ (bv\<^sub>1,c\<^sub>2); me \ (b\<^sub>2,c\<^sub>2) \ (bv\<^sub>2,c\<^sub>3) \ \ + me \ (And b\<^sub>1 b\<^sub>2,c\<^sub>1) \ (bv\<^sub>1\bv\<^sub>2,c\<^sub>3)" | -"\ me \ (e\<^isub>1,c\<^isub>1) \ (r\<^isub>1,c\<^isub>2); me \ (e\<^isub>2,c\<^isub>2) \ (r\<^isub>2,c\<^isub>3) \ \ - me \ (Eq e\<^isub>1 e\<^isub>2,c\<^isub>1) \ (r\<^isub>1=r\<^isub>2,c\<^isub>3)" +"\ me \ (e\<^sub>1,c\<^sub>1) \ (r\<^sub>1,c\<^sub>2); me \ (e\<^sub>2,c\<^sub>2) \ (r\<^sub>2,c\<^sub>3) \ \ + me \ (Eq e\<^sub>1 e\<^sub>2,c\<^sub>1) \ (r\<^sub>1=r\<^sub>2,c\<^sub>3)" code_pred (modes: i => i => o => bool) big_step .