found missing beta-eta-contraction
authorblanchet
Tue, 15 Jun 2010 16:42:09 +0200
changeset 374112d76997730a6
parent 37410 ed79fa620012
child 37418 68112e3d29e5
found missing beta-eta-contraction
src/HOL/Tools/Sledgehammer/sledgehammer_fact_preprocessor.ML
src/HOL/Tools/Sledgehammer/sledgehammer_hol_clause.ML
     1.1 --- a/src/HOL/Tools/Sledgehammer/sledgehammer_fact_preprocessor.ML	Tue Jun 15 16:20:23 2010 +0200
     1.2 +++ b/src/HOL/Tools/Sledgehammer/sledgehammer_fact_preprocessor.ML	Tue Jun 15 16:42:09 2010 +0200
     1.3 @@ -136,7 +136,9 @@
     1.4    in dec_sko (prop_of th) ([], thy) end
     1.5  
     1.6  fun mk_skolem_id t =
     1.7 -  let val T = fastype_of t in Const (@{const_name skolem_id}, T --> T) $ t end
     1.8 +  let val T = fastype_of t in
     1.9 +    Const (@{const_name skolem_id}, T --> T) $ Envir.beta_eta_contract t
    1.10 +  end
    1.11  
    1.12  (*Traverse a theorem, accumulating Skolem function definitions.*)
    1.13  fun assume_skolem_funs inline s th =
    1.14 @@ -407,7 +409,6 @@
    1.15        val ctxt0 = Variable.global_thm_context th
    1.16        val (nnfth, ctxt) = to_nnf th ctxt0
    1.17        val inline = exists_type (exists_subtype (can dest_TFree)) (prop_of nnfth)
    1.18 -      val inline = false (* FIXME: temporary *)
    1.19        val defs = skolem_theorems_of_assume inline s nnfth
    1.20        val (cnfs, ctxt) = Meson.make_cnf defs nnfth ctxt
    1.21      in
     2.1 --- a/src/HOL/Tools/Sledgehammer/sledgehammer_hol_clause.ML	Tue Jun 15 16:20:23 2010 +0200
     2.2 +++ b/src/HOL/Tools/Sledgehammer/sledgehammer_hol_clause.ML	Tue Jun 15 16:42:09 2010 +0200
     2.3 @@ -173,7 +173,7 @@
     2.4                  (skolem_somes, @{const_name undefined})
     2.5                else case AList.find (op aconv) skolem_somes t of
     2.6                  s :: _ => (skolem_somes, s)
     2.7 -              | _ =>
     2.8 +              | [] =>
     2.9                  let
    2.10                    val s = skolem_theory_name ^ "." ^
    2.11                            skolem_name i (length skolem_somes)