src/HOL/Tools/ATP/atp_translate.ML
changeset 43175 4ca344fe0aca
parent 43174 f497a1e97d37
child 43178 b5862142d378
equal deleted inserted replaced
43174:f497a1e97d37 43175:4ca344fe0aca
  1264   update_combformula (formula_map
  1264   update_combformula (formula_map
  1265       (repair_combterm ctxt format nonmono_Ts type_sys sym_tab))
  1265       (repair_combterm ctxt format nonmono_Ts type_sys sym_tab))
  1266 
  1266 
  1267 (** Helper facts **)
  1267 (** Helper facts **)
  1268 
  1268 
  1269 (* The Boolean indicates that a fairly sound type encoding is needed. *)
  1269 (* The Boolean indicates that a fairly sound type encoding is needed.
       
  1270    "false" must precede "true" to ensure consistent numbering and a correct
       
  1271    mapping in Metis. *)
  1270 val helper_table =
  1272 val helper_table =
  1271   [("COMBI", (false, @{thms Meson.COMBI_def})),
  1273   [("COMBI", (false, @{thms Meson.COMBI_def})),
  1272    ("COMBK", (false, @{thms Meson.COMBK_def})),
  1274    ("COMBK", (false, @{thms Meson.COMBK_def})),
  1273    ("COMBB", (false, @{thms Meson.COMBB_def})),
  1275    ("COMBB", (false, @{thms Meson.COMBB_def})),
  1274    ("COMBC", (false, @{thms Meson.COMBC_def})),
  1276    ("COMBC", (false, @{thms Meson.COMBC_def})),
  1277     (* This is a lie: Higher-order equality doesn't need a sound type encoding.
  1279     (* This is a lie: Higher-order equality doesn't need a sound type encoding.
  1278        However, this is done so for backward compatibility: Including the
  1280        However, this is done so for backward compatibility: Including the
  1279        equality helpers by default in Metis breaks a few existing proofs. *)
  1281        equality helpers by default in Metis breaks a few existing proofs. *)
  1280     (true, @{thms fequal_def [THEN Meson.iff_to_disjD, THEN conjunct1]
  1282     (true, @{thms fequal_def [THEN Meson.iff_to_disjD, THEN conjunct1]
  1281                   fequal_def [THEN Meson.iff_to_disjD, THEN conjunct2]})),
  1283                   fequal_def [THEN Meson.iff_to_disjD, THEN conjunct2]})),
       
  1284    ("fFalse", (false, [@{lemma "~ fFalse" by (unfold fFalse_def) fast}])),
  1282    ("fFalse", (true, @{thms True_or_False})),
  1285    ("fFalse", (true, @{thms True_or_False})),
  1283    ("fFalse", (false, [@{lemma "~ fFalse" by (unfold fFalse_def) fast}])),
  1286    ("fTrue", (false, [@{lemma "fTrue" by (unfold fTrue_def) fast}])),
  1284    ("fTrue", (true, @{thms True_or_False})),
  1287    ("fTrue", (true, @{thms True_or_False})),
  1285    ("fTrue", (false, [@{lemma "fTrue" by (unfold fTrue_def) fast}])),
       
  1286    ("fNot",
  1288    ("fNot",
  1287     (false, @{thms fNot_def [THEN Meson.iff_to_disjD, THEN conjunct1]
  1289     (false, @{thms fNot_def [THEN Meson.iff_to_disjD, THEN conjunct1]
  1288                    fNot_def [THEN Meson.iff_to_disjD, THEN conjunct2]})),
  1290                    fNot_def [THEN Meson.iff_to_disjD, THEN conjunct2]})),
  1289    ("fconj",
  1291    ("fconj",
  1290     (false,
  1292     (false,