src/HOL/Tools/ATP/atp_translate.ML
changeset 43129 4301f1c123d6
parent 43128 a19826080596
child 43130 d73fc2e55308
equal deleted inserted replaced
43128:a19826080596 43129:4301f1c123d6
    64   val old_skolem_const_prefix : string
    64   val old_skolem_const_prefix : string
    65   val new_skolem_const_prefix : string
    65   val new_skolem_const_prefix : string
    66   val type_decl_prefix : string
    66   val type_decl_prefix : string
    67   val sym_decl_prefix : string
    67   val sym_decl_prefix : string
    68   val preds_sym_formula_prefix : string
    68   val preds_sym_formula_prefix : string
    69   val tags_sym_formula_prefix : string
    69   val lightweight_tags_sym_formula_prefix : string
    70   val fact_prefix : string
    70   val fact_prefix : string
    71   val conjecture_prefix : string
    71   val conjecture_prefix : string
    72   val helper_prefix : string
    72   val helper_prefix : string
    73   val class_rel_clause_prefix : string
    73   val class_rel_clause_prefix : string
    74   val arity_clause_prefix : string
    74   val arity_clause_prefix : string
   170 val new_skolem_const_prefix = skolem_const_prefix ^ "n"
   170 val new_skolem_const_prefix = skolem_const_prefix ^ "n"
   171 
   171 
   172 val type_decl_prefix = "ty_"
   172 val type_decl_prefix = "ty_"
   173 val sym_decl_prefix = "sy_"
   173 val sym_decl_prefix = "sy_"
   174 val preds_sym_formula_prefix = "psy_"
   174 val preds_sym_formula_prefix = "psy_"
   175 val tags_sym_formula_prefix = "tsy_"
   175 val lightweight_tags_sym_formula_prefix = "tsy_"
   176 val fact_prefix = "fact_"
   176 val fact_prefix = "fact_"
   177 val conjecture_prefix = "conj_"
   177 val conjecture_prefix = "conj_"
   178 val helper_prefix = "help_"
   178 val helper_prefix = "help_"
   179 val class_rel_clause_prefix = "crel_"
   179 val class_rel_clause_prefix = "crel_"
   180 val arity_clause_prefix = "arity_"
   180 val arity_clause_prefix = "arity_"
  1663              |> close_formula_universally
  1663              |> close_formula_universally
  1664              |> maybe_negate,
  1664              |> maybe_negate,
  1665              intro_info, NONE)
  1665              intro_info, NONE)
  1666   end
  1666   end
  1667 
  1667 
  1668 fun formula_lines_for_tags_sym_decl ctxt format conj_sym_kind nonmono_Ts
  1668 fun formula_lines_for_lightweight_tags_sym_decl ctxt format conj_sym_kind
  1669         type_sys n s (j, (s', T_args, T, pred_sym, ary, in_conj)) =
  1669         nonmono_Ts type_sys n s (j, (s', T_args, T, pred_sym, ary, in_conj)) =
  1670   let
  1670   let
  1671     val ident_base =
  1671     val ident_base =
  1672       tags_sym_formula_prefix ^ s ^
  1672       lightweight_tags_sym_formula_prefix ^ s ^
  1673       (if n > 1 then "_" ^ string_of_int j else "")
  1673       (if n > 1 then "_" ^ string_of_int j else "")
  1674     val (kind, maybe_negate) =
  1674     val (kind, maybe_negate) =
  1675       if in_conj then (conj_sym_kind, conj_sym_kind = Conjecture ? mk_anot)
  1675       if in_conj then (conj_sym_kind, conj_sym_kind = Conjecture ? mk_anot)
  1676       else (Axiom, I)
  1676       else (Axiom, I)
  1677     val (arg_Ts, res_T) = chop_fun ary T
  1677     val (arg_Ts, res_T) = chop_fun ary T
  1747     (case heaviness of
  1747     (case heaviness of
  1748        Heavyweight => []
  1748        Heavyweight => []
  1749      | Lightweight =>
  1749      | Lightweight =>
  1750        let val n = length decls in
  1750        let val n = length decls in
  1751          (0 upto n - 1 ~~ decls)
  1751          (0 upto n - 1 ~~ decls)
  1752          |> maps (formula_lines_for_tags_sym_decl ctxt format conj_sym_kind
  1752          |> maps (formula_lines_for_lightweight_tags_sym_decl ctxt format
  1753                                                   nonmono_Ts type_sys n s)
  1753                       conj_sym_kind nonmono_Ts type_sys n s)
  1754        end)
  1754        end)
  1755 
  1755 
  1756 fun problem_lines_for_sym_decl_table ctxt format conj_sym_kind nonmono_Ts
  1756 fun problem_lines_for_sym_decl_table ctxt format conj_sym_kind nonmono_Ts
  1757                                      type_sys sym_decl_tab =
  1757                                      type_sys sym_decl_tab =
  1758   sym_decl_tab
  1758   sym_decl_tab