src/HOL/Tools/ATP/atp_translate.ML
changeset 44175 6901ebafbb8d
parent 44168 e77baf329f48
child 44206 2b47822868e4
     1.1 --- a/src/HOL/Tools/ATP/atp_translate.ML	Thu Jun 09 00:16:28 2011 +0200
     1.2 +++ b/src/HOL/Tools/ATP/atp_translate.ML	Thu Jun 09 00:16:28 2011 +0200
     1.3 @@ -130,7 +130,8 @@
     1.4    val type_constrs_of_terms : theory -> term list -> string list
     1.5    val prepare_atp_problem :
     1.6      Proof.context -> format -> formula_kind -> formula_kind -> type_sys
     1.7 -    -> bool -> bool -> term list -> term -> ((string * locality) * term) list
     1.8 +    -> bool -> bool -> bool -> term list -> term
     1.9 +    -> ((string * locality) * term) list
    1.10      -> string problem * string Symtab.table * int * int
    1.11         * (string * locality) list vector * int list * int Symtab.table
    1.12    val atp_problem_weights : string problem -> (string * real) list
    1.13 @@ -1547,12 +1548,8 @@
    1.14     the remote provers might care. *)
    1.15  fun formula_line_for_fact ctxt format prefix encode freshen nonmono_Ts type_sys
    1.16                            (j, formula as {name, locality, kind, ...}) =
    1.17 -  Formula (prefix ^
    1.18 -           (if freshen andalso
    1.19 -               polymorphism_of_type_sys type_sys <> Polymorphic then
    1.20 -              string_of_int j ^ "_"
    1.21 -            else
    1.22 -              "") ^ encode name,
    1.23 +  Formula (prefix ^ (if freshen then string_of_int j ^ "_" else "") ^
    1.24 +           encode name,
    1.25             kind, formula_for_fact ctxt format nonmono_Ts type_sys formula, NONE,
    1.26             case locality of
    1.27               Intro => intro_info
    1.28 @@ -1838,7 +1835,7 @@
    1.29  val explicit_apply = NONE (* for experimental purposes *)
    1.30  
    1.31  fun prepare_atp_problem ctxt format conj_sym_kind prem_kind type_sys
    1.32 -                        readable_names preproc hyp_ts concl_t facts =
    1.33 +        freshen_facts readable_names preproc hyp_ts concl_t facts =
    1.34    let
    1.35      val (format, type_sys) = choose_format [format] type_sys
    1.36      val (fact_names, (conjs, facts, class_rel_clauses, arity_clauses)) =
    1.37 @@ -1877,8 +1874,8 @@
    1.38      val problem =
    1.39        [(explicit_declsN, sym_decl_lines),
    1.40         (factsN,
    1.41 -        map (formula_line_for_fact ctxt format fact_prefix ascii_of true
    1.42 -                                   nonmono_Ts type_sys)
    1.43 +        map (formula_line_for_fact ctxt format fact_prefix ascii_of
    1.44 +                                   freshen_facts nonmono_Ts type_sys)
    1.45              (0 upto length facts - 1 ~~ facts)),
    1.46         (class_relsN, map formula_line_for_class_rel_clause class_rel_clauses),
    1.47         (aritiesN, map formula_line_for_arity_clause arity_clauses),