--- a/src/HOL/Tools/Meson/meson.ML Fri Nov 18 11:47:12 2011 +0100
+++ b/src/HOL/Tools/Meson/meson.ML Fri Nov 18 11:47:12 2011 +0100
@@ -12,6 +12,7 @@
val unfold_set_consts : bool Config.T
val max_clauses : int Config.T
val term_pair_of: indexname * (typ * 'a) -> term * 'a
+ val first_order_resolve : thm -> thm -> thm
val size_of_subgoals: thm -> int
val has_too_many_clauses: Proof.context -> term -> bool
val make_cnf:
--- a/src/HOL/Tools/Metis/metis_tactic.ML Fri Nov 18 11:47:12 2011 +0100
+++ b/src/HOL/Tools/Metis/metis_tactic.ML Fri Nov 18 11:47:12 2011 +0100
@@ -79,7 +79,8 @@
else case term_of ct of
Abs _ =>
Conv.abs_conv (conv false o snd) ctxt ct
- |> wrap ? (fn th => th RS @{thm Metis.eq_lambdaI})
+ |> wrap
+ ? (fn th => Meson.first_order_resolve th @{thm Metis.eq_lambdaI})
| _ => Conv.comb_conv (conv true ctxt) ct
val eqth = conv true ctxt (cprop_of th)
in Thm.equal_elim eqth th end