equal
deleted
inserted
replaced
183 in |
183 in |
184 if null parameters then no_tac st |
184 if null parameters then no_tac st |
185 else |
185 else |
186 let |
186 let |
187 fun instantiate param = |
187 fun instantiate param = |
188 (map (eres_inst_tac ctxt [((("x", 0), Position.none), param)]) thms |
188 (map (Rule_Insts.eres_inst_tac ctxt [((("x", 0), Position.none), param)]) thms |
189 |> FIRST') |
189 |> FIRST') |
190 val attempts = map instantiate parameters |
190 val attempts = map instantiate parameters |
191 in |
191 in |
192 (fold (curry (op APPEND')) attempts (K no_tac)) i st |
192 (fold (curry (op APPEND')) attempts (K no_tac)) i st |
193 end |
193 end |
219 in |
219 in |
220 if null parameters then no_tac st |
220 if null parameters then no_tac st |
221 else |
221 else |
222 let |
222 let |
223 fun instantiates param = |
223 fun instantiates param = |
224 eres_inst_tac ctxt [((("x", 0), Position.none), param)] thm |
224 Rule_Insts.eres_inst_tac ctxt [((("x", 0), Position.none), param)] thm |
225 |
225 |
226 val quantified_var = head_quantified_variable ctxt i st |
226 val quantified_var = head_quantified_variable ctxt i st |
227 in |
227 in |
228 if is_none quantified_var then no_tac st |
228 if is_none quantified_var then no_tac st |
229 else |
229 else |
671 in |
671 in |
672 if null gls orelse null candidate_consts then no_tac st |
672 if null gls orelse null candidate_consts then no_tac st |
673 else |
673 else |
674 let |
674 let |
675 fun instantiate const_name = |
675 fun instantiate const_name = |
676 dres_inst_tac ctxt [((("sk", 0), Position.none), const_name ^ parameters)] |
676 Rule_Insts.dres_inst_tac ctxt [((("sk", 0), Position.none), const_name ^ parameters)] |
677 @{thm leo2_skolemise} |
677 @{thm leo2_skolemise} |
678 val attempts = map instantiate candidate_consts |
678 val attempts = map instantiate candidate_consts |
679 in |
679 in |
680 (fold (curry (op APPEND')) attempts (K no_tac)) i st |
680 (fold (curry (op APPEND')) attempts (K no_tac)) i st |
681 end |
681 end |
1553 |
1553 |
1554 val bool_to_bool = |
1554 val bool_to_bool = |
1555 ["% _ . True", "% _ . False", "% x . x", "Not"] |
1555 ["% _ . True", "% _ . False", "% x . x", "Not"] |
1556 |
1556 |
1557 val tecs = |
1557 val tecs = |
1558 map (fn t_s => |
1558 map (fn t_s => (* FIXME proper context!? *) |
1559 eres_inst_tac @{context} [((("x", 0), Position.none), t_s)] @{thm allE} |
1559 Rule_Insts.eres_inst_tac @{context} [((("x", 0), Position.none), t_s)] @{thm allE} |
1560 THEN' atac) |
1560 THEN' atac) |
1561 in |
1561 in |
1562 (TRY o etac @{thm forall_pos_lift}) |
1562 (TRY o etac @{thm forall_pos_lift}) |
1563 THEN' (atac |
1563 THEN' (atac |
1564 ORELSE' FIRST' |
1564 ORELSE' FIRST' |
1733 if null hyp_prefix orelse |
1733 if null hyp_prefix orelse |
1734 member (op =) conc_prefix (hd hyp_prefix) orelse |
1734 member (op =) conc_prefix (hd hyp_prefix) orelse |
1735 member (op =) (Term.add_frees hyp_body []) (hd hyp_prefix) then |
1735 member (op =) (Term.add_frees hyp_body []) (hd hyp_prefix) then |
1736 no_tac st |
1736 no_tac st |
1737 else |
1737 else |
1738 eres_inst_tac ctxt [((("x", 0), Position.none), "(@X. False)")] |
1738 Rule_Insts.eres_inst_tac ctxt [((("x", 0), Position.none), "(@X. False)")] |
1739 @{thm allE} i st |
1739 @{thm allE} i st |
1740 end |
1740 end |
1741 end |
1741 end |
1742 end |
1742 end |
1743 *} |
1743 *} |