src/HOL/UNITY/WFair.ML
changeset 8251 9be357df93d4
parent 8122 b43ad07660b9
child 8334 7896bcbd8641
equal deleted inserted replaced
8250:f4029c34adef 8251:9be357df93d4
   399 by (blast_tac (claset() addIs [subset_imp_leadsTo]) 1);
   399 by (blast_tac (claset() addIs [subset_imp_leadsTo]) 1);
   400 qed "bounded_induct";
   400 qed "bounded_induct";
   401 
   401 
   402 
   402 
   403 (*Alternative proof is via the lemma F : (A Int f-``(lessThan m)) leadsTo B*)
   403 (*Alternative proof is via the lemma F : (A Int f-``(lessThan m)) leadsTo B*)
   404 Goal "[| ALL m. F : (A Int f-``{m}) leadsTo                     \
   404 val prems = 
   405 \                   ((A Int f-``(lessThan m)) Un B) |] \
   405 Goal "[| !!m. F : (A Int f-``{m}) leadsTo ((A Int f-``(lessThan m)) Un B) |] \
   406 \     ==> F : A leadsTo B";
   406 \     ==> F : A leadsTo B";
   407 by (rtac (wf_less_than RS leadsTo_wf_induct) 1);
   407 by (rtac (wf_less_than RS leadsTo_wf_induct) 1);
   408 by (Asm_simp_tac 1);
   408 by (Asm_simp_tac 1);
       
   409 by (blast_tac (claset() addIs prems) 1);
   409 qed "lessThan_induct";
   410 qed "lessThan_induct";
   410 
   411 
   411 Goal "[| ALL m:(greaterThan l).    \
   412 Goal "[| ALL m:(greaterThan l).    \
   412 \           F : (A Int f-``{m}) leadsTo ((A Int f-``(lessThan m)) Un B) |] \
   413 \           F : (A Int f-``{m}) leadsTo ((A Int f-``(lessThan m)) Un B) |] \
   413 \     ==> F : A leadsTo ((A Int (f-``(atMost l))) Un B)";
   414 \     ==> F : A leadsTo ((A Int (f-``(atMost l))) Un B)";