don't assume canonical rule format
authorblanchet
Thu, 29 Jul 2010 15:37:27 +0200
changeset 38332c802b76d542f
parent 38331 cc44e887246c
child 38333 dddb8ba3a1ce
don't assume canonical rule format
src/HOL/Tools/Sledgehammer/sledgehammer.ML
     1.1 --- a/src/HOL/Tools/Sledgehammer/sledgehammer.ML	Thu Jul 29 14:53:55 2010 +0200
     1.2 +++ b/src/HOL/Tools/Sledgehammer/sledgehammer.ML	Thu Jul 29 15:37:27 2010 +0200
     1.3 @@ -338,8 +338,7 @@
     1.4      |> map (snd o make_axiom ctxt)
     1.5    end
     1.6  
     1.7 -fun s_not (@{const Not} $ t) = t
     1.8 -  | s_not t = @{const Not} $ t
     1.9 +fun meta_not t = @{const "==>"} $ t $ @{prop False}
    1.10  
    1.11  fun prepare_formulas ctxt full_types hyp_ts concl_t axcls =
    1.12    let
    1.13 @@ -351,10 +350,7 @@
    1.14      val supers = tvar_classes_of_terms axtms
    1.15      val tycons = type_consts_of_terms thy (goal_t :: axtms)
    1.16      (* TFrees in the conjecture; TVars in the axioms *)
    1.17 -    val conjectures =
    1.18 -      map (s_not o HOLogic.dest_Trueprop) hyp_ts @
    1.19 -      [HOLogic.dest_Trueprop concl_t]
    1.20 -      |> make_conjectures ctxt
    1.21 +    val conjectures = map meta_not hyp_ts @ [concl_t] |> make_conjectures ctxt
    1.22      val (clnames, axioms) = ListPair.unzip (map (make_axiom ctxt) axcls)
    1.23      val helper_facts = get_helper_facts ctxt is_FO full_types conjectures axioms
    1.24      val (supers', arity_clauses) = make_arity_clauses thy tycons supers