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, |