# HG changeset patch # User blanchet # Date 1321613232 -3600 # Node ID 8e3891309a8eba6f3f4ff438bad02fa54c4b993f # Parent da05ce2de5a882288a8e4f12f023cafd0d2cd946 avoid that var names get changed by resolution in Metis lambda-lifting diff -r da05ce2de5a8 -r 8e3891309a8e src/HOL/Tools/Meson/meson.ML --- 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: diff -r da05ce2de5a8 -r 8e3891309a8e src/HOL/Tools/Metis/metis_tactic.ML --- 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