equal
deleted
inserted
replaced
941 in |
941 in |
942 Logic.list_implies (eqs |> filter_out (op =) |> distinct (op =) |
942 Logic.list_implies (eqs |> filter_out (op =) |> distinct (op =) |
943 |> map Logic.mk_equals, |
943 |> map Logic.mk_equals, |
944 Logic.mk_equals (list_comb (Const x1, bounds1 @ args1), |
944 Logic.mk_equals (list_comb (Const x1, bounds1 @ args1), |
945 list_comb (Const x2, bounds2 @ args2))) |
945 list_comb (Const x2, bounds2 @ args2))) |
946 |> Refute.close_form (* TODO: needed? *) |
946 |> close_form (* TODO: needed? *) |
947 end |
947 end |
948 |
948 |
949 (* hol_context -> styp list -> term list *) |
949 (* hol_context -> styp list -> term list *) |
950 fun special_congruence_axioms (hol_ctxt as {special_funs, ...}) xs = |
950 fun special_congruence_axioms (hol_ctxt as {special_funs, ...}) xs = |
951 let |
951 let |
1389 skolemize, uncurry, ...}) t = |
1389 skolemize, uncurry, ...}) t = |
1390 let |
1390 let |
1391 val skolem_depth = if skolemize then 4 else ~1 |
1391 val skolem_depth = if skolemize then 4 else ~1 |
1392 val (((def_ts, nondef_ts), (got_all_mono_user_axioms, no_poly_user_axioms)), |
1392 val (((def_ts, nondef_ts), (got_all_mono_user_axioms, no_poly_user_axioms)), |
1393 core_t) = t |> unfold_defs_in_term hol_ctxt |
1393 core_t) = t |> unfold_defs_in_term hol_ctxt |
1394 |> Refute.close_form |
1394 |> close_form |
1395 |> skolemize_term_and_more hol_ctxt skolem_depth |
1395 |> skolemize_term_and_more hol_ctxt skolem_depth |
1396 |> specialize_consts_in_term hol_ctxt 0 |
1396 |> specialize_consts_in_term hol_ctxt 0 |
1397 |> `(axioms_for_term hol_ctxt) |
1397 |> `(axioms_for_term hol_ctxt) |
1398 val binarize = |
1398 val binarize = |
1399 case binary_ints of |
1399 case binary_ints of |
1418 #> destroy_universal_equalities |
1418 #> destroy_universal_equalities |
1419 #> destroy_existential_equalities thy |
1419 #> destroy_existential_equalities thy |
1420 #> simplify_constrs_and_sels thy |
1420 #> simplify_constrs_and_sels thy |
1421 #> distribute_quantifiers |
1421 #> distribute_quantifiers |
1422 #> push_quantifiers_inward thy |
1422 #> push_quantifiers_inward thy |
1423 #> not core ? Refute.close_form |
1423 #> close_form |
1424 #> Term.map_abs_vars shortest_name |
1424 #> Term.map_abs_vars shortest_name |
1425 in |
1425 in |
1426 (((map (do_rest true false) def_ts, map (do_rest false false) nondef_ts), |
1426 (((map (do_rest true false) def_ts, map (do_rest false false) nondef_ts), |
1427 (got_all_mono_user_axioms, no_poly_user_axioms)), |
1427 (got_all_mono_user_axioms, no_poly_user_axioms)), |
1428 do_rest false true core_t) |
1428 do_rest false true core_t) |