equal
deleted
inserted
replaced
323 qed "PSP_unless"; |
323 qed "PSP_unless"; |
324 |
324 |
325 |
325 |
326 (*** Proving the induction rules ***) |
326 (*** Proving the induction rules ***) |
327 |
327 |
|
328 (** The most general rule: r is any wf relation; f is any variant function **) |
|
329 |
328 Goal "[| wf r; \ |
330 Goal "[| wf r; \ |
329 \ ALL m. leadsTo acts (A Int f-``{m}) \ |
331 \ ALL m. leadsTo acts (A Int f-``{m}) \ |
330 \ ((A Int f-``(r^-1 ^^ {m})) Un B); \ |
332 \ ((A Int f-``(r^-1 ^^ {m})) Un B); \ |
331 \ id: acts |] \ |
333 \ id: acts |] \ |
332 \ ==> leadsTo acts (A Int f-``{m}) B"; |
334 \ ==> leadsTo acts (A Int f-``{m}) B"; |
353 qed "leadsTo_wf_induct"; |
355 qed "leadsTo_wf_induct"; |
354 |
356 |
355 |
357 |
356 Goal "[| wf r; \ |
358 Goal "[| wf r; \ |
357 \ ALL m:I. leadsTo acts (A Int f-``{m}) \ |
359 \ ALL m:I. leadsTo acts (A Int f-``{m}) \ |
358 \ ((A Int f-``(r^-1 ^^ {m})) Un B); \ |
360 \ ((A Int f-``(r^-1 ^^ {m})) Un B); \ |
359 \ id: acts |] \ |
361 \ id: acts |] \ |
360 \ ==> leadsTo acts A ((A - (f-``I)) Un B)"; |
362 \ ==> leadsTo acts A ((A - (f-``I)) Un B)"; |
361 by (etac leadsTo_wf_induct 1); |
363 by (etac leadsTo_wf_induct 1); |
362 by Safe_tac; |
364 by Safe_tac; |
363 by (case_tac "m:I" 1); |
365 by (case_tac "m:I" 1); |