equal
deleted
inserted
replaced
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)"; |