avoid that var names get changed by resolution in Metis lambda-lifting
authorblanchet
Fri Nov 18 11:47:12 2011 +0100 (2011-11-18)
changeset 455678e3891309a8e
parent 45566 da05ce2de5a8
child 45568 211a6e6cbc04
avoid that var names get changed by resolution in Metis lambda-lifting
src/HOL/Tools/Meson/meson.ML
src/HOL/Tools/Metis/metis_tactic.ML
     1.1 --- a/src/HOL/Tools/Meson/meson.ML	Fri Nov 18 11:47:12 2011 +0100
     1.2 +++ b/src/HOL/Tools/Meson/meson.ML	Fri Nov 18 11:47:12 2011 +0100
     1.3 @@ -12,6 +12,7 @@
     1.4    val unfold_set_consts : bool Config.T
     1.5    val max_clauses : int Config.T
     1.6    val term_pair_of: indexname * (typ * 'a) -> term * 'a
     1.7 +  val first_order_resolve : thm -> thm -> thm
     1.8    val size_of_subgoals: thm -> int
     1.9    val has_too_many_clauses: Proof.context -> term -> bool
    1.10    val make_cnf:
     2.1 --- a/src/HOL/Tools/Metis/metis_tactic.ML	Fri Nov 18 11:47:12 2011 +0100
     2.2 +++ b/src/HOL/Tools/Metis/metis_tactic.ML	Fri Nov 18 11:47:12 2011 +0100
     2.3 @@ -79,7 +79,8 @@
     2.4          else case term_of ct of
     2.5            Abs _ =>
     2.6            Conv.abs_conv (conv false o snd) ctxt ct
     2.7 -          |> wrap ? (fn th => th RS @{thm Metis.eq_lambdaI})
     2.8 +          |> wrap
     2.9 +             ? (fn th => Meson.first_order_resolve th @{thm Metis.eq_lambdaI})
    2.10          | _ => Conv.comb_conv (conv true ctxt) ct
    2.11        val eqth = conv true ctxt (cprop_of th)
    2.12      in Thm.equal_elim eqth th end