113 Logic.list_implies (assms |> map snd, concl) |
113 Logic.list_implies (assms |> map snd, concl) |
114 |> subst_free substitutions |
114 |> subst_free substitutions |
115 |> thm_of_term ctxt |
115 |> thm_of_term ctxt |
116 end |
116 end |
117 |
117 |
118 (* mapping of proof methods to tactics *) |
118 (* mapping from proof methods to tactics *) |
119 fun tac_of_method method type_enc lam_trans ctxt facts = |
119 fun tac_of_method method type_enc lam_trans ctxt facts = |
120 case method of |
120 case method of |
121 MetisM => Metis_Tactic.metis_tac [type_enc] lam_trans ctxt facts |
121 MetisM => Metis_Tactic.metis_tac [type_enc] lam_trans ctxt facts |
122 | _ => |
122 | _ => |
123 Method.insert_tac facts |
123 Method.insert_tac facts |
124 THEN' (case method of |
124 THEN' (case method of |
125 SimpM => Simplifier.asm_full_simp_tac |
125 SimpM => Simplifier.asm_full_simp_tac |
126 | AutoM => (fn ctxt => K (Clasimp.auto_tac ctxt)) |
126 | AutoM => Clasimp.auto_tac #> K |
127 | FastforceM => Clasimp.fast_force_tac |
127 | FastforceM => Clasimp.fast_force_tac |
128 | ForceM => Clasimp.force_tac |
128 | ForceM => Clasimp.force_tac |
129 | ArithM => Arith_Data.arith_tac |
129 | ArithM => Arith_Data.arith_tac |
130 | BlastM => blast_tac |
130 | BlastM => blast_tac |
131 | _ => raise Fail "Sledgehammer_Preplay: tac_of_method") ctxt |
131 | _ => raise Fail "Sledgehammer_Preplay: tac_of_method") ctxt |