src/HOL/UNITY/Comp.ML
changeset 6018 8131f37f4ba3
parent 6012 1894bfc4aee9
child 6295 351b3c2b0d83
equal deleted inserted replaced
6017:dbb33359a7ab 6018:8131f37f4ba3
   230      "[| strict_ex_prop X;  States F = States G |] \
   230      "[| strict_ex_prop X;  States F = States G |] \
   231 \     ==> (ALL H. States F = States H & F Join H : X --> G Join H : X) = \
   231 \     ==> (ALL H. States F = States H & F Join H : X --> G Join H : X) = \
   232 \         (F:X --> G:X)";
   232 \         (F:X --> G:X)";
   233 by Safe_tac;
   233 by Safe_tac;
   234 by (Blast_tac 1);
   234 by (Blast_tac 1);
   235 auto();
   235 by Auto_tac;
   236 qed "strict_ex_refine_lemma";
   236 qed "strict_ex_refine_lemma";
   237 
   237 
   238 Goalw [strict_ex_prop_def]
   238 Goalw [strict_ex_prop_def]
   239      "[| strict_ex_prop X;  States F = States G |] \
   239      "[| strict_ex_prop X;  States F = States G |] \
   240 \     ==> (ALL H. States F = States H & F Join H : welldef & F Join H : X \
   240 \     ==> (ALL H. States F = States H & F Join H : welldef & F Join H : X \
   247 
   247 
   248 Goal "[| strict_ex_prop X;  States F = States G;  \
   248 Goal "[| strict_ex_prop X;  States F = States G;  \
   249 \        ALL H. States F = States H & F Join H : welldef Int X \
   249 \        ALL H. States F = States H & F Join H : welldef Int X \
   250 \          --> G Join H : welldef |] \
   250 \          --> G Join H : welldef |] \
   251 \     ==> (G refines F wrt X) = (G iso_refines F wrt X)";
   251 \     ==> (G refines F wrt X) = (G iso_refines F wrt X)";
   252 bd sym 1;
   252 by (dtac sym 1);
   253 by (res_inst_tac [("x","SKIP (States G)")] allE 1
   253 by (res_inst_tac [("x","SKIP (States G)")] allE 1
   254     THEN assume_tac 1);
   254     THEN assume_tac 1);
   255 by (asm_full_simp_tac (simpset() addsimps [refines_def, iso_refines_def,
   255 by (asm_full_simp_tac (simpset() addsimps [refines_def, iso_refines_def,
   256 					   strict_ex_refine_lemma_v]) 1);
   256 					   strict_ex_refine_lemma_v]) 1);
   257 qed "ex_refinement_thm";
   257 qed "ex_refinement_thm";