src/Provers/classical.ML
changeset 6967 a3c163ed1e04
parent 6955 9e2d97ef55d2
child 7004 c799d0859638
equal deleted inserted replaced
6966:cfa87aef9ccd 6967:a3c163ed1e04
   250     end;
   250     end;
   251 
   251 
   252 (*Duplication of hazardous rules, for complete provers*)
   252 (*Duplication of hazardous rules, for complete provers*)
   253 fun dup_intr th = zero_var_indexes (th RS classical);
   253 fun dup_intr th = zero_var_indexes (th RS classical);
   254 
   254 
   255 fun dup_elim th = 
   255 fun dup_elim th =
   256     th RSN (2, revcut_rl) |> assumption 2 |> Seq.hd |> 
   256   (case try
   257     rule_by_tactic (TRYALL (etac revcut_rl))
   257       (rule_by_tactic (TRYALL (etac revcut_rl)))
   258     handle _ => error ("Bad format for elimination rule\n" ^ string_of_thm th);
   258       (th RSN (2, revcut_rl) |> assumption 2 |> Seq.hd) of
       
   259     Some th' => th'
       
   260   | _ => error ("Bad format for elimination rule\n" ^ string_of_thm th));
   259 
   261 
   260 
   262 
   261 (**** Classical rule sets ****)
   263 (**** Classical rule sets ****)
   262 
   264 
   263 datatype claset =
   265 datatype claset =