src/HOL/UNITY/Lift.ML
changeset 5783 95ac0bf10518
parent 5758 27a2b36efd95
child 6024 cb87f103d114
equal deleted inserted replaced
5782:7559f116cb10 5783:95ac0bf10518
   245 by (REPEAT_FIRST (eresolve_tac mov_metrics));
   245 by (REPEAT_FIRST (eresolve_tac mov_metrics));
   246 by (REPEAT_FIRST distinct_tac);
   246 by (REPEAT_FIRST distinct_tac);
   247 (** LEVEL 6 **)
   247 (** LEVEL 6 **)
   248 by (ALLGOALS (asm_simp_tac (simpset() addsimps 
   248 by (ALLGOALS (asm_simp_tac (simpset() addsimps 
   249 			    [zle_def] @ metric_simps @ zcompare_rls)));
   249 			    [zle_def] @ metric_simps @ zcompare_rls)));
   250 by (ALLGOALS (asm_simp_tac (simpset() addsimps int_0::zadd_ac)));
   250 by (ALLGOALS (asm_simp_tac (simpset() addsimps zadd_ac)));
   251 qed "E_thm12b";
   251 qed "E_thm12b";
   252 
   252 
   253 (*lift_4*)
   253 (*lift_4*)
   254 Goal "#0<N ==> Lprg : LeadsTo (moving Int Req n Int {s. metric n s = N} Int \
   254 Goal "#0<N ==> Lprg : LeadsTo (moving Int Req n Int {s. metric n s = N} Int \
   255 \                           {s. floor s ~: req s})     \
   255 \                           {s. floor s ~: req s})     \
   286 by (cut_facts_tac [bounded] 1);
   286 by (cut_facts_tac [bounded] 1);
   287 by (ensures_tac "req_down" 1);
   287 by (ensures_tac "req_down" 1);
   288 by Auto_tac;
   288 by Auto_tac;
   289 by (REPEAT_FIRST (eresolve_tac mov_metrics));
   289 by (REPEAT_FIRST (eresolve_tac mov_metrics));
   290 by (ALLGOALS
   290 by (ALLGOALS
   291     (asm_simp_tac (simpset() addsimps [int_0, zle_def] @ 
   291     (asm_simp_tac (simpset() addsimps [zle_def] @ 
   292 		                      metric_simps @ zcompare_rls)));
   292 		                      metric_simps @ zcompare_rls)));
   293 (** LEVEL 5 **)
   293 (** LEVEL 5 **)
   294 by (dres_inst_tac [("z1","Max")] (zle_iff_zadd RS iffD1) 1);
   294 by (dres_inst_tac [("z1","Max")] (zle_iff_zadd RS iffD1) 1);
   295 by (etac exE 1);  
   295 by (etac exE 1);  
   296 by (etac ssubst 1);
   296 by (etac ssubst 1);