src/HOL/Tools/Sledgehammer/sledgehammer_provers.ML
changeset 43961 91294d386539
parent 43939 081718c0b0a8
child 43962 e1d29c3ca933
equal deleted inserted replaced
43960:c2554cc82d34 43961:91294d386539
   523   (case type_enc_opt of
   523   (case type_enc_opt of
   524      SOME ts => ts
   524      SOME ts => ts
   525    | NONE => type_enc_from_string best_type_enc)
   525    | NONE => type_enc_from_string best_type_enc)
   526   |> choose_format formats
   526   |> choose_format formats
   527 
   527 
   528 fun lift_lambdas ctxt =
   528 fun lift_lambdas ctxt type_enc =
   529   map (close_form o Envir.eta_contract) #> rpair ctxt
   529   map (close_form o Envir.eta_contract) #> rpair ctxt
   530   #-> Lambda_Lifting.lift_lambdas (SOME polymorphic_free_prefix)
   530   #-> Lambda_Lifting.lift_lambdas
   531                                   Lambda_Lifting.is_quantifier
   531           (if polymorphism_of_type_enc type_enc = Polymorphic then
       
   532              SOME polymorphic_free_prefix
       
   533            else
       
   534              NONE)
       
   535           Lambda_Lifting.is_quantifier
   532   #> fst
   536   #> fst
   533 
   537 
   534 fun translate_atp_lambdas ctxt type_enc =
   538 fun translate_atp_lambdas ctxt type_enc =
   535   Config.get ctxt atp_lambda_translation
   539   Config.get ctxt atp_lambda_translation
   536   |> (fn trans =>
   540   |> (fn trans =>
   542                   \encoding.")
   546                   \encoding.")
   543          else
   547          else
   544            trans)
   548            trans)
   545   |> (fn trans =>
   549   |> (fn trans =>
   546          if trans = concealedN then
   550          if trans = concealedN then
   547            lift_lambdas ctxt ##> K []
   551            lift_lambdas ctxt type_enc ##> K []
   548          else if trans = liftingN then
   552          else if trans = liftingN then
   549            lift_lambdas ctxt
   553            lift_lambdas ctxt type_enc
   550          else if trans = combinatorsN then
   554          else if trans = combinatorsN then
   551            map (introduce_combinators ctxt) #> rpair []
   555            map (introduce_combinators ctxt) #> rpair []
   552          else if trans = lambdasN then
   556          else if trans = lambdasN then
   553            map (Envir.eta_contract) #> rpair []
   557            map (Envir.eta_contract) #> rpair []
   554          else
   558          else