src/HOL/UNITY/SubstAx.ML
changeset 6909 21601bc4f3c2
parent 6811 4700ca722bbd
child 7522 d93b52bda2dd
equal deleted inserted replaced
6908:1bf0590f4790 6909:21601bc4f3c2
   338 by (Asm_simp_tac 1);
   338 by (Asm_simp_tac 1);
   339 qed "LessThan_induct";
   339 qed "LessThan_induct";
   340 
   340 
   341 (*Integer version.  Could generalize from #0 to any lower bound*)
   341 (*Integer version.  Could generalize from #0 to any lower bound*)
   342 val [reach, prem] =
   342 val [reach, prem] =
   343 Goal "[| F : Always {s. #0 <= f s};  \
   343 Goal "[| F : Always {s. (#0::int) <= f s};  \
   344 \        !! z. F : (A Int {s. f s = z}) LeadsTo                     \
   344 \        !! z. F : (A Int {s. f s = z}) LeadsTo                     \
   345 \                           ((A Int {s. f s < z}) Un B) |] \
   345 \                           ((A Int {s. f s < z}) Un B) |] \
   346 \     ==> F : A LeadsTo B";
   346 \     ==> F : A LeadsTo B";
   347 by (res_inst_tac [("f", "nat o f")] (allI RS LessThan_induct) 1);
   347 by (res_inst_tac [("f", "nat o f")] (allI RS LessThan_induct) 1);
   348 by (simp_tac (simpset() addsimps [vimage_def]) 1);
   348 by (simp_tac (simpset() addsimps [vimage_def]) 1);