diff -r f2094906e491 -r e44d86131648 src/ZF/Coind/Values.thy --- a/src/ZF/Coind/Values.thy Tue Sep 27 13:34:54 2022 +0200 +++ b/src/ZF/Coind/Values.thy Tue Sep 27 16:51:35 2022 +0100 @@ -34,24 +34,24 @@ definition ve_emp :: i where - "ve_emp == ve_mk(map_emp)" + "ve_emp \ ve_mk(map_emp)" (* Elimination rules *) lemma ValEnvE: - "[| ve \ ValEnv; !!m.[| ve=ve_mk(m); m \ PMap(ExVar,Val) |] ==> Q |] ==> Q" + "\ve \ ValEnv; \m.\ve=ve_mk(m); m \ PMap(ExVar,Val)\ \ Q\ \ Q" apply (unfold Part_def Val_def ValEnv_def, clarify) apply (erule Val_ValEnv.cases) apply (auto simp add: Val_def Part_def Val_ValEnv.con_defs) done lemma ValE: - "[| v \ Val; - !!c. [| v = v_const(c); c \ Const |] ==> Q; - !!e ve x. - [| v = v_clos(x,e,ve); x \ ExVar; e \ Exp; ve \ ValEnv |] ==> Q - |] ==> + "\v \ Val; + \c. \v = v_const(c); c \ Const\ \ Q; + \e ve x. + \v = v_clos(x,e,ve); x \ ExVar; e \ Exp; ve \ ValEnv\ \ Q +\ \ Q" apply (unfold Part_def Val_def ValEnv_def, clarify) apply (erule Val_ValEnv.cases) @@ -66,7 +66,7 @@ declare v_closNE [THEN notE, elim!] -lemma v_constNE [simp]: "c \ Const ==> v_const(c) \ 0" +lemma v_constNE [simp]: "c \ Const \ v_const(c) \ 0" apply (unfold QPair_def QInl_def QInr_def Val_ValEnv.con_defs) apply (drule constNEE, auto) done @@ -74,28 +74,28 @@ (* Proving that the empty set is not a value *) -lemma ValNEE: "v \ Val ==> v \ 0" +lemma ValNEE: "v \ Val \ v \ 0" by (erule ValE, auto) (* Equalities for value environments *) lemma ve_dom_owr [simp]: - "[| ve \ ValEnv; v \0 |] ==> ve_dom(ve_owr(ve,x,v)) = ve_dom(ve) \ {x}" + "\ve \ ValEnv; v \0\ \ ve_dom(ve_owr(ve,x,v)) = ve_dom(ve) \ {x}" apply (erule ValEnvE) apply (auto simp add: map_domain_owr) done lemma ve_app_owr [simp]: "ve \ ValEnv - ==> ve_app(ve_owr(ve,y,v),x) = (if x=y then v else ve_app(ve,x))" + \ ve_app(ve_owr(ve,y,v),x) = (if x=y then v else ve_app(ve,x))" by (erule ValEnvE, simp add: map_app_owr) (* Introduction rules for operators on value environments *) -lemma ve_appI: "[| ve \ ValEnv; x \ ve_dom(ve) |] ==> ve_app(ve,x):Val" +lemma ve_appI: "\ve \ ValEnv; x \ ve_dom(ve)\ \ ve_app(ve,x):Val" by (erule ValEnvE, simp add: pmap_appI) -lemma ve_domI: "[| ve \ ValEnv; x \ ve_dom(ve) |] ==> x \ ExVar" +lemma ve_domI: "\ve \ ValEnv; x \ ve_dom(ve)\ \ x \ ExVar" apply (erule ValEnvE, simp) apply (blast dest: pmap_domainD) done @@ -107,7 +107,7 @@ done lemma ve_owrI: - "[|ve \ ValEnv; x \ ExVar; v \ Val |] ==> ve_owr(ve,x,v):ValEnv" + "\ve \ ValEnv; x \ ExVar; v \ Val\ \ ve_owr(ve,x,v):ValEnv" apply (erule ValEnvE, simp) apply (blast intro: pmap_owrI Val_ValEnv.intros) done