equal
deleted
inserted
replaced
|
1 (** Generalized elimination rules **) |
|
2 |
|
3 (*Generalized elimination for two conclusions*) |
|
4 val prems = goal pure_thy |
|
5 "[| PROP U ==> PROP VA; \ |
|
6 \ PROP U ==> PROP VB; \ |
|
7 \ PROP U; \ |
|
8 \ [| PROP VA; PROP VB |] ==> PROP W \ |
|
9 \ |] ==> PROP W"; |
|
10 by (REPEAT (resolve_tac prems 1)); |
|
11 val general_elim2_rl = result(); |
|
12 |
|
13 fun make_elim2 (rl1,rl2) = standard (rl2 COMP rl1 COMP general_elim2_rl); |
|
14 fun elim2_tac (rl1,rl2) = eresolve_tac [rl2 COMP rl1 COMP general_elim2_rl]; |
|
15 |
|
16 |
|
17 (*For example, make_elim2(conjunct1,conjunct2) |
|
18 yields conjunction elimination *) |