src/Provers/genelim.ML
changeset 0 a5a9c433f639
child 927 305e7cfda869
equal deleted inserted replaced
-1:000000000000 0:a5a9c433f639
       
     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 *)