src/HOL/IOA/meta_theory/Solve.ML
changeset 2018 bcd69cc47cf0
parent 1949 1badf0b08040
child 2063 2395bc55b3e6
--- a/src/HOL/IOA/meta_theory/Solve.ML	Mon Sep 23 18:26:51 1996 +0200
+++ b/src/HOL/IOA/meta_theory/Solve.ML	Tue Sep 24 08:59:24 1996 +0200
@@ -75,25 +75,13 @@
  by (Simp_tac 1);
  by (Fast_tac 1);
 (* projected execution is indeed an execution *)
-by (asm_full_simp_tac (!simpset addsimps [executions_def,is_execution_fragment_def,
-    par_def, starts_of_def,trans_of_def]) 1);
-by (simp_tac (!simpset addsimps [filter_oseq_def]) 1);
- by (REPEAT(rtac allI 1));
- by (cut_inst_tac [("x","fst ex n")] opt_cases 1);
- by (etac disjE 1);
-(* case 1: action sequence of || had already a None *)
-by (Asm_full_simp_tac 1);
- by (REPEAT(etac exE 1));
- by (case_tac "y:actions(asig_of(C1))" 1);
-(* case 2: action sequence of || had Some(a) and 
-           filtered sequence also       *)
-by (Asm_full_simp_tac 1);
+by (asm_full_simp_tac
+      (!simpset addsimps [executions_def,is_execution_fragment_def,
+                          par_def,starts_of_def,trans_of_def,filter_oseq_def]
+                setloop (split_tac[expand_if,expand_option_case])) 1);
  by (strip_tac 1);
  by (REPEAT(hyp_subst_tac 1)); 
  by (Asm_full_simp_tac 1);
-(* case 3: action sequence pf || had Some(a) but
-           filtered sequence has None      *)
- by (Asm_full_simp_tac 1);
 qed"comp1_reachable";
 
 
@@ -110,20 +98,13 @@
  by (Simp_tac 1);
  by (Fast_tac 1);
 (* projected execution is indeed an execution *)
- by (asm_full_simp_tac (!simpset addsimps [executions_def,is_execution_fragment_def,
-    par_def, starts_of_def,trans_of_def]) 1);
- by (simp_tac (!simpset addsimps [filter_oseq_def]) 1);
- by (REPEAT(rtac allI 1));
- by (cut_inst_tac [("x","fst ex n")] opt_cases 1);
- by (etac disjE 1);
- by (Asm_full_simp_tac 1);
- by (REPEAT(etac exE 1));
- by (case_tac "y:actions(asig_of(C2))" 1);
- by (Asm_full_simp_tac 1);
+by (asm_full_simp_tac
+      (!simpset addsimps [executions_def,is_execution_fragment_def,
+                          par_def,starts_of_def,trans_of_def,filter_oseq_def]
+                setloop (split_tac[expand_if,expand_option_case])) 1);
  by (strip_tac 1);
  by (REPEAT(hyp_subst_tac 1)); 
  by (Asm_full_simp_tac 1);
- by (Asm_full_simp_tac 1);
 qed"comp2_reachable";
 
 
@@ -183,11 +164,11 @@
 \          | Some(x) => g x) ,snd ex)")]  bexI 1);
 by (Simp_tac 1);
 (* execution is indeed an execution of C *)
-by (asm_full_simp_tac (!simpset addsimps [executions_def,is_execution_fragment_def,
-    par_def, starts_of_def,trans_of_def,rename_def]) 1);
-by (REPEAT(rtac allI 1));
-by (cut_inst_tac [("x","fst ex n")] opt_cases 1);
-by (Auto_tac());
+by (asm_full_simp_tac
+      (!simpset addsimps [executions_def,is_execution_fragment_def,
+                          par_def,starts_of_def,trans_of_def,rename_def]
+                setloop (split_tac[expand_option_case])) 1);
+by(Auto_tac());
 qed"reachable_rename_ioa";