equal
deleted
inserted
replaced
196 val swapped = Thm.rule_attribute (fn _ => fn th => th RSN (2, Data.swap)); |
196 val swapped = Thm.rule_attribute (fn _ => fn th => th RSN (2, Data.swap)); |
197 |
197 |
198 (*Uses introduction rules in the normal way, or on negated assumptions, |
198 (*Uses introduction rules in the normal way, or on negated assumptions, |
199 trying rules in order. *) |
199 trying rules in order. *) |
200 fun swap_res_tac rls = |
200 fun swap_res_tac rls = |
201 let fun addrl (rl,brls) = (false, rl) :: (true, rl RSN (2, Data.swap)) :: brls |
201 let fun addrl rl brls = (false, rl) :: (true, rl RSN (2, Data.swap)) :: brls |
202 in assume_tac ORELSE' |
202 in assume_tac ORELSE' |
203 contr_tac ORELSE' |
203 contr_tac ORELSE' |
204 biresolve_tac (List.foldr addrl [] rls) |
204 biresolve_tac (fold_rev addrl rls []) |
205 end; |
205 end; |
206 |
206 |
207 (*Duplication of hazardous rules, for complete provers*) |
207 (*Duplication of hazardous rules, for complete provers*) |
208 fun dup_intr th = zero_var_indexes (th RS classical); |
208 fun dup_intr th = zero_var_indexes (th RS classical); |
209 |
209 |