% TIMEFORMAT='%3R'; { time (exec 2>&1; /home/martin/bin/satallax -E /home/martin/.isabelle/contrib/e-2.5-1/x86_64-linux/eprover -p tstp -t 5 /home/martin/judgement-day/tptp-thf/tptp/FFT/prob_257__3225310_1 ) ; }
% This file was generated by Isabelle (most likely Sledgehammer)
% 2020-12-16 14:10:05.217

% Could-be-implicit typings (7)
thf(ty_n_t__List__Olist_It__List__Olist_It__Complex__Ocomplex_J_J, type,
    list_list_complex : $tType).
thf(ty_n_t__List__Olist_It__List__Olist_It__Nat__Onat_J_J, type,
    list_list_nat : $tType).
thf(ty_n_t__List__Olist_It__Complex__Ocomplex_J, type,
    list_complex : $tType).
thf(ty_n_t__List__Olist_It__Nat__Onat_J, type,
    list_nat : $tType).
thf(ty_n_t__Complex__Ocomplex, type,
    complex : $tType).
thf(ty_n_t__Num__Onum, type,
    num : $tType).
thf(ty_n_t__Nat__Onat, type,
    nat : $tType).

% Explicit typings (28)
thf(sy_c_FFT__Mirabelle__ulikgskiun_ODFT, type,
    fFT_Mirabelle_DFT : nat > (nat > complex) > nat > complex).
thf(sy_c_Groups_Oone__class_Oone_001t__Nat__Onat, type,
    one_one_nat : nat).
thf(sy_c_Groups_Oplus__class_Oplus_001t__Nat__Onat, type,
    plus_plus_nat : nat > nat > nat).
thf(sy_c_Groups_Oplus__class_Oplus_001t__Num__Onum, type,
    plus_plus_num : num > num > num).
thf(sy_c_Groups_Ozero__class_Ozero_001t__Nat__Onat, type,
    zero_zero_nat : nat).
thf(sy_c_List_Olist_OCons_001t__Complex__Ocomplex, type,
    cons_complex : complex > list_complex > list_complex).
thf(sy_c_List_Olist_OCons_001t__List__Olist_It__Complex__Ocomplex_J, type,
    cons_list_complex : list_complex > list_list_complex > list_list_complex).
thf(sy_c_List_Olist_OCons_001t__List__Olist_It__Nat__Onat_J, type,
    cons_list_nat : list_nat > list_list_nat > list_list_nat).
thf(sy_c_List_Olist_OCons_001t__Nat__Onat, type,
    cons_nat : nat > list_nat > list_nat).
thf(sy_c_List_Olist_ONil_001t__Complex__Ocomplex, type,
    nil_complex : list_complex).
thf(sy_c_List_Olist_ONil_001t__List__Olist_It__Complex__Ocomplex_J, type,
    nil_list_complex : list_list_complex).
thf(sy_c_List_Olist_ONil_001t__List__Olist_It__Nat__Onat_J, type,
    nil_list_nat : list_list_nat).
thf(sy_c_List_Olist_ONil_001t__Nat__Onat, type,
    nil_nat : list_nat).
thf(sy_c_List_Olist_Omap_001t__Complex__Ocomplex_001t__Complex__Ocomplex, type,
    map_complex_complex : (complex > complex) > list_complex > list_complex).
thf(sy_c_List_Olist_Omap_001t__Complex__Ocomplex_001t__Nat__Onat, type,
    map_complex_nat : (complex > nat) > list_complex > list_nat).
thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001t__Complex__Ocomplex, type,
    map_nat_complex : (nat > complex) > list_nat > list_complex).
thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001t__Nat__Onat, type,
    map_nat_nat : (nat > nat) > list_nat > list_nat).
thf(sy_c_List_On__lists_001t__Complex__Ocomplex, type,
    n_lists_complex : nat > list_complex > list_list_complex).
thf(sy_c_List_On__lists_001t__Nat__Onat, type,
    n_lists_nat : nat > list_nat > list_list_nat).
thf(sy_c_List_Oproduct__lists_001t__Complex__Ocomplex, type,
    produc1648077055omplex : list_list_complex > list_list_complex).
thf(sy_c_List_Oproduct__lists_001t__Nat__Onat, type,
    product_lists_nat : list_list_nat > list_list_nat).
thf(sy_c_Num_OBitM, type,
    bitM : num > num).
thf(sy_c_Num_Onum_OBit0, type,
    bit0 : num > num).
thf(sy_c_Num_Onum_OBit1, type,
    bit1 : num > num).
thf(sy_c_Num_Onum_OOne, type,
    one : num).
thf(sy_c_Num_Onumeral__class_Onumeral_001t__Nat__Onat, type,
    numeral_numeral_nat : num > nat).
thf(sy_v_a, type,
    a : nat > complex).
thf(sy_v_x__0_058ATP, type,
    x_0_ATP : list_complex).

% Relevant facts (117)
thf(fact_0_numeral__eq__one__iff, axiom,
    ((![N : num]: (((numeral_numeral_nat @ N) = one_one_nat) = (N = one))))). % numeral_eq_one_iff
thf(fact_1_one__eq__numeral__iff, axiom,
    ((![N : num]: ((one_one_nat = (numeral_numeral_nat @ N)) = (one = N))))). % one_eq_numeral_iff
thf(fact_2_Nil__is__map__conv, axiom,
    ((![F : complex > nat, Xs : list_complex]: ((nil_nat = (map_complex_nat @ F @ Xs)) = (Xs = nil_complex))))). % Nil_is_map_conv
thf(fact_3_Nil__is__map__conv, axiom,
    ((![F : complex > complex, Xs : list_complex]: ((nil_complex = (map_complex_complex @ F @ Xs)) = (Xs = nil_complex))))). % Nil_is_map_conv
thf(fact_4_Nil__is__map__conv, axiom,
    ((![F : nat > nat, Xs : list_nat]: ((nil_nat = (map_nat_nat @ F @ Xs)) = (Xs = nil_nat))))). % Nil_is_map_conv
thf(fact_5_Nil__is__map__conv, axiom,
    ((![F : nat > complex, Xs : list_nat]: ((nil_complex = (map_nat_complex @ F @ Xs)) = (Xs = nil_nat))))). % Nil_is_map_conv
thf(fact_6_map__is__Nil__conv, axiom,
    ((![F : complex > nat, Xs : list_complex]: (((map_complex_nat @ F @ Xs) = nil_nat) = (Xs = nil_complex))))). % map_is_Nil_conv
thf(fact_7_map__is__Nil__conv, axiom,
    ((![F : complex > complex, Xs : list_complex]: (((map_complex_complex @ F @ Xs) = nil_complex) = (Xs = nil_complex))))). % map_is_Nil_conv
thf(fact_8_map__is__Nil__conv, axiom,
    ((![F : nat > nat, Xs : list_nat]: (((map_nat_nat @ F @ Xs) = nil_nat) = (Xs = nil_nat))))). % map_is_Nil_conv
thf(fact_9_map__is__Nil__conv, axiom,
    ((![F : nat > complex, Xs : list_nat]: (((map_nat_complex @ F @ Xs) = nil_complex) = (Xs = nil_nat))))). % map_is_Nil_conv
thf(fact_10_list_Omap__disc__iff, axiom,
    ((![F : complex > nat, A : list_complex]: (((map_complex_nat @ F @ A) = nil_nat) = (A = nil_complex))))). % list.map_disc_iff
thf(fact_11_list_Omap__disc__iff, axiom,
    ((![F : complex > complex, A : list_complex]: (((map_complex_complex @ F @ A) = nil_complex) = (A = nil_complex))))). % list.map_disc_iff
thf(fact_12_list_Omap__disc__iff, axiom,
    ((![F : nat > nat, A : list_nat]: (((map_nat_nat @ F @ A) = nil_nat) = (A = nil_nat))))). % list.map_disc_iff
thf(fact_13_list_Omap__disc__iff, axiom,
    ((![F : nat > complex, A : list_nat]: (((map_nat_complex @ F @ A) = nil_complex) = (A = nil_nat))))). % list.map_disc_iff
thf(fact_14_semiring__norm_I86_J, axiom,
    ((![M : num]: (~ (((bit1 @ M) = one)))))). % semiring_norm(86)
thf(fact_15_semiring__norm_I84_J, axiom,
    ((![N : num]: (~ ((one = (bit1 @ N))))))). % semiring_norm(84)
thf(fact_16_semiring__norm_I89_J, axiom,
    ((![M : num, N : num]: (~ (((bit1 @ M) = (bit0 @ N))))))). % semiring_norm(89)
thf(fact_17_semiring__norm_I88_J, axiom,
    ((![M : num, N : num]: (~ (((bit0 @ M) = (bit1 @ N))))))). % semiring_norm(88)
thf(fact_18_semiring__norm_I85_J, axiom,
    ((![M : num]: (~ (((bit0 @ M) = one)))))). % semiring_norm(85)
thf(fact_19_semiring__norm_I83_J, axiom,
    ((![N : num]: (~ ((one = (bit0 @ N))))))). % semiring_norm(83)
thf(fact_20_numerals_I1_J, axiom,
    (((numeral_numeral_nat @ one) = one_one_nat))). % numerals(1)
thf(fact_21_numeral__eq__iff, axiom,
    ((![M : num, N : num]: (((numeral_numeral_nat @ M) = (numeral_numeral_nat @ N)) = (M = N))))). % numeral_eq_iff
thf(fact_22_semiring__norm_I87_J, axiom,
    ((![M : num, N : num]: (((bit0 @ M) = (bit0 @ N)) = (M = N))))). % semiring_norm(87)
thf(fact_23_list_Oinject, axiom,
    ((![X21 : nat, X22 : list_nat, Y21 : nat, Y22 : list_nat]: (((cons_nat @ X21 @ X22) = (cons_nat @ Y21 @ Y22)) = (((X21 = Y21)) & ((X22 = Y22))))))). % list.inject
thf(fact_24_semiring__norm_I90_J, axiom,
    ((![M : num, N : num]: (((bit1 @ M) = (bit1 @ N)) = (M = N))))). % semiring_norm(90)
thf(fact_25_not__Cons__self2, axiom,
    ((![X : nat, Xs : list_nat]: (~ (((cons_nat @ X @ Xs) = Xs)))))). % not_Cons_self2
thf(fact_26_zero__neq__numeral, axiom,
    ((![N : num]: (~ ((zero_zero_nat = (numeral_numeral_nat @ N))))))). % zero_neq_numeral
thf(fact_27_strict__sorted_Oinduct, axiom,
    ((![P : list_nat > $o, A0 : list_nat]: ((P @ nil_nat) => ((![X2 : nat, Ys : list_nat]: ((P @ Ys) => (P @ (cons_nat @ X2 @ Ys)))) => (P @ A0)))))). % strict_sorted.induct
thf(fact_28_strict__sorted_Ocases, axiom,
    ((![X : list_nat]: ((~ ((X = nil_nat))) => (~ ((![X2 : nat, Ys : list_nat]: (~ ((X = (cons_nat @ X2 @ Ys))))))))))). % strict_sorted.cases
thf(fact_29_map__tailrec__rev_Oinduct, axiom,
    ((![P : (complex > nat) > list_complex > list_nat > $o, A0 : complex > nat, A1 : list_complex, A2 : list_nat]: ((![F2 : complex > nat, X_1 : list_nat]: (P @ F2 @ nil_complex @ X_1)) => ((![F2 : complex > nat, A3 : complex, As : list_complex, Bs : list_nat]: ((P @ F2 @ As @ (cons_nat @ (F2 @ A3) @ Bs)) => (P @ F2 @ (cons_complex @ A3 @ As) @ Bs))) => (P @ A0 @ A1 @ A2)))))). % map_tailrec_rev.induct
thf(fact_30_map__tailrec__rev_Oinduct, axiom,
    ((![P : (nat > nat) > list_nat > list_nat > $o, A0 : nat > nat, A1 : list_nat, A2 : list_nat]: ((![F2 : nat > nat, X_1 : list_nat]: (P @ F2 @ nil_nat @ X_1)) => ((![F2 : nat > nat, A3 : nat, As : list_nat, Bs : list_nat]: ((P @ F2 @ As @ (cons_nat @ (F2 @ A3) @ Bs)) => (P @ F2 @ (cons_nat @ A3 @ As) @ Bs))) => (P @ A0 @ A1 @ A2)))))). % map_tailrec_rev.induct
thf(fact_31_list__nonempty__induct, axiom,
    ((![Xs : list_complex, P : list_complex > $o]: ((~ ((Xs = nil_complex))) => ((![X2 : complex]: (P @ (cons_complex @ X2 @ nil_complex))) => ((![X2 : complex, Xs2 : list_complex]: ((~ ((Xs2 = nil_complex))) => ((P @ Xs2) => (P @ (cons_complex @ X2 @ Xs2))))) => (P @ Xs))))))). % list_nonempty_induct
thf(fact_32_list__nonempty__induct, axiom,
    ((![Xs : list_nat, P : list_nat > $o]: ((~ ((Xs = nil_nat))) => ((![X2 : nat]: (P @ (cons_nat @ X2 @ nil_nat))) => ((![X2 : nat, Xs2 : list_nat]: ((~ ((Xs2 = nil_nat))) => ((P @ Xs2) => (P @ (cons_nat @ X2 @ Xs2))))) => (P @ Xs))))))). % list_nonempty_induct
thf(fact_33_successively_Oinduct, axiom,
    ((![P : (complex > complex > $o) > list_complex > $o, A0 : complex > complex > $o, A1 : list_complex]: ((![P2 : complex > complex > $o]: (P @ P2 @ nil_complex)) => ((![P2 : complex > complex > $o, X2 : complex]: (P @ P2 @ (cons_complex @ X2 @ nil_complex))) => ((![P2 : complex > complex > $o, X2 : complex, Y : complex, Xs2 : list_complex]: ((P @ P2 @ (cons_complex @ Y @ Xs2)) => (P @ P2 @ (cons_complex @ X2 @ (cons_complex @ Y @ Xs2))))) => (P @ A0 @ A1))))))). % successively.induct
thf(fact_34_successively_Oinduct, axiom,
    ((![P : (nat > nat > $o) > list_nat > $o, A0 : nat > nat > $o, A1 : list_nat]: ((![P2 : nat > nat > $o]: (P @ P2 @ nil_nat)) => ((![P2 : nat > nat > $o, X2 : nat]: (P @ P2 @ (cons_nat @ X2 @ nil_nat))) => ((![P2 : nat > nat > $o, X2 : nat, Y : nat, Xs2 : list_nat]: ((P @ P2 @ (cons_nat @ Y @ Xs2)) => (P @ P2 @ (cons_nat @ X2 @ (cons_nat @ Y @ Xs2))))) => (P @ A0 @ A1))))))). % successively.induct
thf(fact_35_remdups__adj_Oinduct, axiom,
    ((![P : list_complex > $o, A0 : list_complex]: ((P @ nil_complex) => ((![X2 : complex]: (P @ (cons_complex @ X2 @ nil_complex))) => ((![X2 : complex, Y : complex, Xs2 : list_complex]: (((X2 = Y) => (P @ (cons_complex @ X2 @ Xs2))) => (((~ ((X2 = Y))) => (P @ (cons_complex @ Y @ Xs2))) => (P @ (cons_complex @ X2 @ (cons_complex @ Y @ Xs2)))))) => (P @ A0))))))). % remdups_adj.induct
thf(fact_36_remdups__adj_Oinduct, axiom,
    ((![P : list_nat > $o, A0 : list_nat]: ((P @ nil_nat) => ((![X2 : nat]: (P @ (cons_nat @ X2 @ nil_nat))) => ((![X2 : nat, Y : nat, Xs2 : list_nat]: (((X2 = Y) => (P @ (cons_nat @ X2 @ Xs2))) => (((~ ((X2 = Y))) => (P @ (cons_nat @ Y @ Xs2))) => (P @ (cons_nat @ X2 @ (cons_nat @ Y @ Xs2)))))) => (P @ A0))))))). % remdups_adj.induct
thf(fact_37_sorted__wrt_Oinduct, axiom,
    ((![P : (complex > complex > $o) > list_complex > $o, A0 : complex > complex > $o, A1 : list_complex]: ((![P2 : complex > complex > $o]: (P @ P2 @ nil_complex)) => ((![P2 : complex > complex > $o, X2 : complex, Ys : list_complex]: ((P @ P2 @ Ys) => (P @ P2 @ (cons_complex @ X2 @ Ys)))) => (P @ A0 @ A1)))))). % sorted_wrt.induct
thf(fact_38_sorted__wrt_Oinduct, axiom,
    ((![P : (nat > nat > $o) > list_nat > $o, A0 : nat > nat > $o, A1 : list_nat]: ((![P2 : nat > nat > $o]: (P @ P2 @ nil_nat)) => ((![P2 : nat > nat > $o, X2 : nat, Ys : list_nat]: ((P @ P2 @ Ys) => (P @ P2 @ (cons_nat @ X2 @ Ys)))) => (P @ A0 @ A1)))))). % sorted_wrt.induct
thf(fact_39_remdups__adj_Ocases, axiom,
    ((![X : list_complex]: ((~ ((X = nil_complex))) => ((![X2 : complex]: (~ ((X = (cons_complex @ X2 @ nil_complex))))) => (~ ((![X2 : complex, Y : complex, Xs2 : list_complex]: (~ ((X = (cons_complex @ X2 @ (cons_complex @ Y @ Xs2))))))))))))). % remdups_adj.cases
thf(fact_40_remdups__adj_Ocases, axiom,
    ((![X : list_nat]: ((~ ((X = nil_nat))) => ((![X2 : nat]: (~ ((X = (cons_nat @ X2 @ nil_nat))))) => (~ ((![X2 : nat, Y : nat, Xs2 : list_nat]: (~ ((X = (cons_nat @ X2 @ (cons_nat @ Y @ Xs2))))))))))))). % remdups_adj.cases
thf(fact_41_transpose_Ocases, axiom,
    ((![X : list_list_complex]: ((~ ((X = nil_list_complex))) => ((![Xss : list_list_complex]: (~ ((X = (cons_list_complex @ nil_complex @ Xss))))) => (~ ((![X2 : complex, Xs2 : list_complex, Xss : list_list_complex]: (~ ((X = (cons_list_complex @ (cons_complex @ X2 @ Xs2) @ Xss)))))))))))). % transpose.cases
thf(fact_42_transpose_Ocases, axiom,
    ((![X : list_list_nat]: ((~ ((X = nil_list_nat))) => ((![Xss : list_list_nat]: (~ ((X = (cons_list_nat @ nil_nat @ Xss))))) => (~ ((![X2 : nat, Xs2 : list_nat, Xss : list_list_nat]: (~ ((X = (cons_list_nat @ (cons_nat @ X2 @ Xs2) @ Xss)))))))))))). % transpose.cases
thf(fact_43_shuffles_Oinduct, axiom,
    ((![P : list_complex > list_complex > $o, A0 : list_complex, A1 : list_complex]: ((![X_1 : list_complex]: (P @ nil_complex @ X_1)) => ((![Xs2 : list_complex]: (P @ Xs2 @ nil_complex)) => ((![X2 : complex, Xs2 : list_complex, Y : complex, Ys : list_complex]: ((P @ Xs2 @ (cons_complex @ Y @ Ys)) => ((P @ (cons_complex @ X2 @ Xs2) @ Ys) => (P @ (cons_complex @ X2 @ Xs2) @ (cons_complex @ Y @ Ys))))) => (P @ A0 @ A1))))))). % shuffles.induct
thf(fact_44_shuffles_Oinduct, axiom,
    ((![P : list_nat > list_nat > $o, A0 : list_nat, A1 : list_nat]: ((![X_1 : list_nat]: (P @ nil_nat @ X_1)) => ((![Xs2 : list_nat]: (P @ Xs2 @ nil_nat)) => ((![X2 : nat, Xs2 : list_nat, Y : nat, Ys : list_nat]: ((P @ Xs2 @ (cons_nat @ Y @ Ys)) => ((P @ (cons_nat @ X2 @ Xs2) @ Ys) => (P @ (cons_nat @ X2 @ Xs2) @ (cons_nat @ Y @ Ys))))) => (P @ A0 @ A1))))))). % shuffles.induct
thf(fact_45_min__list_Oinduct, axiom,
    ((![P : list_nat > $o, A0 : list_nat]: ((![X2 : nat, Xs2 : list_nat]: ((![X212 : nat, X222 : list_nat]: ((Xs2 = (cons_nat @ X212 @ X222)) => (P @ Xs2))) => (P @ (cons_nat @ X2 @ Xs2)))) => ((P @ nil_nat) => (P @ A0)))))). % min_list.induct
thf(fact_46_min__list_Ocases, axiom,
    ((![X : list_nat]: ((![X2 : nat, Xs2 : list_nat]: (~ ((X = (cons_nat @ X2 @ Xs2))))) => (X = nil_nat))))). % min_list.cases
thf(fact_47_induct__list012, axiom,
    ((![P : list_complex > $o, Xs : list_complex]: ((P @ nil_complex) => ((![X2 : complex]: (P @ (cons_complex @ X2 @ nil_complex))) => ((![X2 : complex, Y : complex, Zs : list_complex]: ((P @ Zs) => ((P @ (cons_complex @ Y @ Zs)) => (P @ (cons_complex @ X2 @ (cons_complex @ Y @ Zs)))))) => (P @ Xs))))))). % induct_list012
thf(fact_48_induct__list012, axiom,
    ((![P : list_nat > $o, Xs : list_nat]: ((P @ nil_nat) => ((![X2 : nat]: (P @ (cons_nat @ X2 @ nil_nat))) => ((![X2 : nat, Y : nat, Zs : list_nat]: ((P @ Zs) => ((P @ (cons_nat @ Y @ Zs)) => (P @ (cons_nat @ X2 @ (cons_nat @ Y @ Zs)))))) => (P @ Xs))))))). % induct_list012
thf(fact_49_splice_Oinduct, axiom,
    ((![P : list_complex > list_complex > $o, A0 : list_complex, A1 : list_complex]: ((![X_1 : list_complex]: (P @ nil_complex @ X_1)) => ((![X2 : complex, Xs2 : list_complex, Ys : list_complex]: ((P @ Ys @ Xs2) => (P @ (cons_complex @ X2 @ Xs2) @ Ys))) => (P @ A0 @ A1)))))). % splice.induct
thf(fact_50_splice_Oinduct, axiom,
    ((![P : list_nat > list_nat > $o, A0 : list_nat, A1 : list_nat]: ((![X_1 : list_nat]: (P @ nil_nat @ X_1)) => ((![X2 : nat, Xs2 : list_nat, Ys : list_nat]: ((P @ Ys @ Xs2) => (P @ (cons_nat @ X2 @ Xs2) @ Ys))) => (P @ A0 @ A1)))))). % splice.induct
thf(fact_51_list__induct2_H, axiom,
    ((![P : list_complex > list_complex > $o, Xs : list_complex, Ys2 : list_complex]: ((P @ nil_complex @ nil_complex) => ((![X2 : complex, Xs2 : list_complex]: (P @ (cons_complex @ X2 @ Xs2) @ nil_complex)) => ((![Y : complex, Ys : list_complex]: (P @ nil_complex @ (cons_complex @ Y @ Ys))) => ((![X2 : complex, Xs2 : list_complex, Y : complex, Ys : list_complex]: ((P @ Xs2 @ Ys) => (P @ (cons_complex @ X2 @ Xs2) @ (cons_complex @ Y @ Ys)))) => (P @ Xs @ Ys2)))))))). % list_induct2'
thf(fact_52_list__induct2_H, axiom,
    ((![P : list_complex > list_nat > $o, Xs : list_complex, Ys2 : list_nat]: ((P @ nil_complex @ nil_nat) => ((![X2 : complex, Xs2 : list_complex]: (P @ (cons_complex @ X2 @ Xs2) @ nil_nat)) => ((![Y : nat, Ys : list_nat]: (P @ nil_complex @ (cons_nat @ Y @ Ys))) => ((![X2 : complex, Xs2 : list_complex, Y : nat, Ys : list_nat]: ((P @ Xs2 @ Ys) => (P @ (cons_complex @ X2 @ Xs2) @ (cons_nat @ Y @ Ys)))) => (P @ Xs @ Ys2)))))))). % list_induct2'
thf(fact_53_list__induct2_H, axiom,
    ((![P : list_nat > list_complex > $o, Xs : list_nat, Ys2 : list_complex]: ((P @ nil_nat @ nil_complex) => ((![X2 : nat, Xs2 : list_nat]: (P @ (cons_nat @ X2 @ Xs2) @ nil_complex)) => ((![Y : complex, Ys : list_complex]: (P @ nil_nat @ (cons_complex @ Y @ Ys))) => ((![X2 : nat, Xs2 : list_nat, Y : complex, Ys : list_complex]: ((P @ Xs2 @ Ys) => (P @ (cons_nat @ X2 @ Xs2) @ (cons_complex @ Y @ Ys)))) => (P @ Xs @ Ys2)))))))). % list_induct2'
thf(fact_54_list__induct2_H, axiom,
    ((![P : list_nat > list_nat > $o, Xs : list_nat, Ys2 : list_nat]: ((P @ nil_nat @ nil_nat) => ((![X2 : nat, Xs2 : list_nat]: (P @ (cons_nat @ X2 @ Xs2) @ nil_nat)) => ((![Y : nat, Ys : list_nat]: (P @ nil_nat @ (cons_nat @ Y @ Ys))) => ((![X2 : nat, Xs2 : list_nat, Y : nat, Ys : list_nat]: ((P @ Xs2 @ Ys) => (P @ (cons_nat @ X2 @ Xs2) @ (cons_nat @ Y @ Ys)))) => (P @ Xs @ Ys2)))))))). % list_induct2'
thf(fact_55_neq__Nil__conv, axiom,
    ((![Xs : list_complex]: ((~ ((Xs = nil_complex))) = (?[Y2 : complex]: (?[Ys3 : list_complex]: (Xs = (cons_complex @ Y2 @ Ys3)))))))). % neq_Nil_conv
thf(fact_56_neq__Nil__conv, axiom,
    ((![Xs : list_nat]: ((~ ((Xs = nil_nat))) = (?[Y2 : nat]: (?[Ys3 : list_nat]: (Xs = (cons_nat @ Y2 @ Ys3)))))))). % neq_Nil_conv
thf(fact_57_list_Oinducts, axiom,
    ((![P : list_complex > $o, List : list_complex]: ((P @ nil_complex) => ((![X1 : complex, X23 : list_complex]: ((P @ X23) => (P @ (cons_complex @ X1 @ X23)))) => (P @ List)))))). % list.inducts
thf(fact_58_list_Oinducts, axiom,
    ((![P : list_nat > $o, List : list_nat]: ((P @ nil_nat) => ((![X1 : nat, X23 : list_nat]: ((P @ X23) => (P @ (cons_nat @ X1 @ X23)))) => (P @ List)))))). % list.inducts
thf(fact_59_list_Oexhaust, axiom,
    ((![Y3 : list_complex]: ((~ ((Y3 = nil_complex))) => (~ ((![X213 : complex, X223 : list_complex]: (~ ((Y3 = (cons_complex @ X213 @ X223))))))))))). % list.exhaust
thf(fact_60_list_Oexhaust, axiom,
    ((![Y3 : list_nat]: ((~ ((Y3 = nil_nat))) => (~ ((![X213 : nat, X223 : list_nat]: (~ ((Y3 = (cons_nat @ X213 @ X223))))))))))). % list.exhaust
thf(fact_61_list_OdiscI, axiom,
    ((![List : list_complex, X21 : complex, X22 : list_complex]: ((List = (cons_complex @ X21 @ X22)) => (~ ((List = nil_complex))))))). % list.discI
thf(fact_62_list_OdiscI, axiom,
    ((![List : list_nat, X21 : nat, X22 : list_nat]: ((List = (cons_nat @ X21 @ X22)) => (~ ((List = nil_nat))))))). % list.discI
thf(fact_63_list_Odistinct_I1_J, axiom,
    ((![X21 : complex, X22 : list_complex]: (~ ((nil_complex = (cons_complex @ X21 @ X22))))))). % list.distinct(1)
thf(fact_64_list_Odistinct_I1_J, axiom,
    ((![X21 : nat, X22 : list_nat]: (~ ((nil_nat = (cons_nat @ X21 @ X22))))))). % list.distinct(1)
thf(fact_65_map__eq__Cons__conv, axiom,
    ((![F : nat > complex, Xs : list_nat, Y3 : complex, Ys2 : list_complex]: (((map_nat_complex @ F @ Xs) = (cons_complex @ Y3 @ Ys2)) = (?[Z : nat]: (?[Zs2 : list_nat]: (((Xs = (cons_nat @ Z @ Zs2))) & (((((F @ Z) = Y3)) & (((map_nat_complex @ F @ Zs2) = Ys2))))))))))). % map_eq_Cons_conv
thf(fact_66_map__eq__Cons__conv, axiom,
    ((![F : nat > nat, Xs : list_nat, Y3 : nat, Ys2 : list_nat]: (((map_nat_nat @ F @ Xs) = (cons_nat @ Y3 @ Ys2)) = (?[Z : nat]: (?[Zs2 : list_nat]: (((Xs = (cons_nat @ Z @ Zs2))) & (((((F @ Z) = Y3)) & (((map_nat_nat @ F @ Zs2) = Ys2))))))))))). % map_eq_Cons_conv
thf(fact_67_Cons__eq__map__conv, axiom,
    ((![X : complex, Xs : list_complex, F : nat > complex, Ys2 : list_nat]: (((cons_complex @ X @ Xs) = (map_nat_complex @ F @ Ys2)) = (?[Z : nat]: (?[Zs2 : list_nat]: (((Ys2 = (cons_nat @ Z @ Zs2))) & ((((X = (F @ Z))) & ((Xs = (map_nat_complex @ F @ Zs2)))))))))))). % Cons_eq_map_conv
thf(fact_68_Cons__eq__map__conv, axiom,
    ((![X : nat, Xs : list_nat, F : nat > nat, Ys2 : list_nat]: (((cons_nat @ X @ Xs) = (map_nat_nat @ F @ Ys2)) = (?[Z : nat]: (?[Zs2 : list_nat]: (((Ys2 = (cons_nat @ Z @ Zs2))) & ((((X = (F @ Z))) & ((Xs = (map_nat_nat @ F @ Zs2)))))))))))). % Cons_eq_map_conv
thf(fact_69_map__eq__Cons__D, axiom,
    ((![F : nat > complex, Xs : list_nat, Y3 : complex, Ys2 : list_complex]: (((map_nat_complex @ F @ Xs) = (cons_complex @ Y3 @ Ys2)) => (?[Z2 : nat, Zs : list_nat]: ((Xs = (cons_nat @ Z2 @ Zs)) & (((F @ Z2) = Y3) & ((map_nat_complex @ F @ Zs) = Ys2)))))))). % map_eq_Cons_D
thf(fact_70_map__eq__Cons__D, axiom,
    ((![F : nat > nat, Xs : list_nat, Y3 : nat, Ys2 : list_nat]: (((map_nat_nat @ F @ Xs) = (cons_nat @ Y3 @ Ys2)) => (?[Z2 : nat, Zs : list_nat]: ((Xs = (cons_nat @ Z2 @ Zs)) & (((F @ Z2) = Y3) & ((map_nat_nat @ F @ Zs) = Ys2)))))))). % map_eq_Cons_D
thf(fact_71_Cons__eq__map__D, axiom,
    ((![X : complex, Xs : list_complex, F : nat > complex, Ys2 : list_nat]: (((cons_complex @ X @ Xs) = (map_nat_complex @ F @ Ys2)) => (?[Z2 : nat, Zs : list_nat]: ((Ys2 = (cons_nat @ Z2 @ Zs)) & ((X = (F @ Z2)) & (Xs = (map_nat_complex @ F @ Zs))))))))). % Cons_eq_map_D
thf(fact_72_Cons__eq__map__D, axiom,
    ((![X : nat, Xs : list_nat, F : nat > nat, Ys2 : list_nat]: (((cons_nat @ X @ Xs) = (map_nat_nat @ F @ Ys2)) => (?[Z2 : nat, Zs : list_nat]: ((Ys2 = (cons_nat @ Z2 @ Zs)) & ((X = (F @ Z2)) & (Xs = (map_nat_nat @ F @ Zs))))))))). % Cons_eq_map_D
thf(fact_73_list_Osimps_I9_J, axiom,
    ((![F : nat > complex, X21 : nat, X22 : list_nat]: ((map_nat_complex @ F @ (cons_nat @ X21 @ X22)) = (cons_complex @ (F @ X21) @ (map_nat_complex @ F @ X22)))))). % list.simps(9)
thf(fact_74_list_Osimps_I9_J, axiom,
    ((![F : nat > nat, X21 : nat, X22 : list_nat]: ((map_nat_nat @ F @ (cons_nat @ X21 @ X22)) = (cons_nat @ (F @ X21) @ (map_nat_nat @ F @ X22)))))). % list.simps(9)
thf(fact_75_list_Osimps_I8_J, axiom,
    ((![F : complex > nat]: ((map_complex_nat @ F @ nil_complex) = nil_nat)))). % list.simps(8)
thf(fact_76_list_Osimps_I8_J, axiom,
    ((![F : complex > complex]: ((map_complex_complex @ F @ nil_complex) = nil_complex)))). % list.simps(8)
thf(fact_77_list_Osimps_I8_J, axiom,
    ((![F : nat > complex]: ((map_nat_complex @ F @ nil_nat) = nil_complex)))). % list.simps(8)
thf(fact_78_list_Osimps_I8_J, axiom,
    ((![F : nat > nat]: ((map_nat_nat @ F @ nil_nat) = nil_nat)))). % list.simps(8)
thf(fact_79_numeral__One, axiom,
    (((numeral_numeral_nat @ one) = one_one_nat))). % numeral_One
thf(fact_80_num_Oexhaust, axiom,
    ((![Y3 : num]: ((~ ((Y3 = one))) => ((![X23 : num]: (~ ((Y3 = (bit0 @ X23))))) => (~ ((![X3 : num]: (~ ((Y3 = (bit1 @ X3)))))))))))). % num.exhaust
thf(fact_81_num_Oinduct, axiom,
    ((![P : num > $o, Num : num]: ((P @ one) => ((![X2 : num]: ((P @ X2) => (P @ (bit0 @ X2)))) => ((![X2 : num]: ((P @ X2) => (P @ (bit1 @ X2)))) => (P @ Num))))))). % num.induct
thf(fact_82_verit__eq__simplify_I9_J, axiom,
    ((![X32 : num, Y32 : num]: (((bit1 @ X32) = (bit1 @ Y32)) = (X32 = Y32))))). % verit_eq_simplify(9)
thf(fact_83_verit__eq__simplify_I8_J, axiom,
    ((![X24 : num, Y23 : num]: (((bit0 @ X24) = (bit0 @ Y23)) = (X24 = Y23))))). % verit_eq_simplify(8)
thf(fact_84_verit__eq__simplify_I12_J, axiom,
    ((![X32 : num]: (~ ((one = (bit1 @ X32))))))). % verit_eq_simplify(12)
thf(fact_85_verit__eq__simplify_I14_J, axiom,
    ((![X24 : num, X32 : num]: (~ (((bit0 @ X24) = (bit1 @ X32))))))). % verit_eq_simplify(14)
thf(fact_86_verit__eq__simplify_I10_J, axiom,
    ((![X24 : num]: (~ ((one = (bit0 @ X24))))))). % verit_eq_simplify(10)
thf(fact_87_zero__neq__one, axiom,
    ((~ ((zero_zero_nat = one_one_nat))))). % zero_neq_one
thf(fact_88_zero__reorient, axiom,
    ((![X : nat]: ((zero_zero_nat = X) = (X = zero_zero_nat))))). % zero_reorient
thf(fact_89_one__reorient, axiom,
    ((![X : nat]: ((one_one_nat = X) = (X = one_one_nat))))). % one_reorient
thf(fact_90_n__lists__Nil, axiom,
    ((![N : nat]: (((N = zero_zero_nat) => ((n_lists_nat @ N @ nil_nat) = (cons_list_nat @ nil_nat @ nil_list_nat))) & ((~ ((N = zero_zero_nat))) => ((n_lists_nat @ N @ nil_nat) = nil_list_nat)))))). % n_lists_Nil
thf(fact_91_n__lists__Nil, axiom,
    ((![N : nat]: (((N = zero_zero_nat) => ((n_lists_complex @ N @ nil_complex) = (cons_list_complex @ nil_complex @ nil_list_complex))) & ((~ ((N = zero_zero_nat))) => ((n_lists_complex @ N @ nil_complex) = nil_list_complex)))))). % n_lists_Nil
thf(fact_92_n__lists_Osimps_I1_J, axiom,
    ((![Xs : list_nat]: ((n_lists_nat @ zero_zero_nat @ Xs) = (cons_list_nat @ nil_nat @ nil_list_nat))))). % n_lists.simps(1)
thf(fact_93_n__lists_Osimps_I1_J, axiom,
    ((![Xs : list_complex]: ((n_lists_complex @ zero_zero_nat @ Xs) = (cons_list_complex @ nil_complex @ nil_list_complex))))). % n_lists.simps(1)
thf(fact_94_product__lists_Osimps_I1_J, axiom,
    (((product_lists_nat @ nil_list_nat) = (cons_list_nat @ nil_nat @ nil_list_nat)))). % product_lists.simps(1)
thf(fact_95_product__lists_Osimps_I1_J, axiom,
    (((produc1648077055omplex @ nil_list_complex) = (cons_list_complex @ nil_complex @ nil_list_complex)))). % product_lists.simps(1)
thf(fact_96_semiring__norm_I26_J, axiom,
    (((bitM @ one) = one))). % semiring_norm(26)
thf(fact_97_semiring__norm_I27_J, axiom,
    ((![N : num]: ((bitM @ (bit0 @ N)) = (bit1 @ (bitM @ N)))))). % semiring_norm(27)
thf(fact_98_semiring__norm_I28_J, axiom,
    ((![N : num]: ((bitM @ (bit1 @ N)) = (bit1 @ (bit0 @ N)))))). % semiring_norm(28)
thf(fact_99_semiring__norm_I6_J, axiom,
    ((![M : num, N : num]: ((plus_plus_num @ (bit0 @ M) @ (bit0 @ N)) = (bit0 @ (plus_plus_num @ M @ N)))))). % semiring_norm(6)
thf(fact_100_zero__eq__add__iff__both__eq__0, axiom,
    ((![X : nat, Y3 : nat]: ((zero_zero_nat = (plus_plus_nat @ X @ Y3)) = (((X = zero_zero_nat)) & ((Y3 = zero_zero_nat))))))). % zero_eq_add_iff_both_eq_0
thf(fact_101_add__eq__0__iff__both__eq__0, axiom,
    ((![X : nat, Y3 : nat]: (((plus_plus_nat @ X @ Y3) = zero_zero_nat) = (((X = zero_zero_nat)) & ((Y3 = zero_zero_nat))))))). % add_eq_0_iff_both_eq_0
thf(fact_102_add__cancel__right__right, axiom,
    ((![A : nat, B : nat]: ((A = (plus_plus_nat @ A @ B)) = (B = zero_zero_nat))))). % add_cancel_right_right
thf(fact_103_add__cancel__right__left, axiom,
    ((![A : nat, B : nat]: ((A = (plus_plus_nat @ B @ A)) = (B = zero_zero_nat))))). % add_cancel_right_left
thf(fact_104_add__cancel__left__right, axiom,
    ((![A : nat, B : nat]: (((plus_plus_nat @ A @ B) = A) = (B = zero_zero_nat))))). % add_cancel_left_right
thf(fact_105_add__cancel__left__left, axiom,
    ((![B : nat, A : nat]: (((plus_plus_nat @ B @ A) = A) = (B = zero_zero_nat))))). % add_cancel_left_left
thf(fact_106_add_Oright__neutral, axiom,
    ((![A : nat]: ((plus_plus_nat @ A @ zero_zero_nat) = A)))). % add.right_neutral
thf(fact_107_add_Oleft__neutral, axiom,
    ((![A : nat]: ((plus_plus_nat @ zero_zero_nat @ A) = A)))). % add.left_neutral
thf(fact_108_add__numeral__left, axiom,
    ((![V : num, W : num, Z3 : nat]: ((plus_plus_nat @ (numeral_numeral_nat @ V) @ (plus_plus_nat @ (numeral_numeral_nat @ W) @ Z3)) = (plus_plus_nat @ (numeral_numeral_nat @ (plus_plus_num @ V @ W)) @ Z3))))). % add_numeral_left
thf(fact_109_numeral__plus__numeral, axiom,
    ((![M : num, N : num]: ((plus_plus_nat @ (numeral_numeral_nat @ M) @ (numeral_numeral_nat @ N)) = (numeral_numeral_nat @ (plus_plus_num @ M @ N)))))). % numeral_plus_numeral
thf(fact_110_semiring__norm_I2_J, axiom,
    (((plus_plus_num @ one @ one) = (bit0 @ one)))). % semiring_norm(2)
thf(fact_111_semiring__norm_I9_J, axiom,
    ((![M : num, N : num]: ((plus_plus_num @ (bit1 @ M) @ (bit0 @ N)) = (bit1 @ (plus_plus_num @ M @ N)))))). % semiring_norm(9)
thf(fact_112_semiring__norm_I7_J, axiom,
    ((![M : num, N : num]: ((plus_plus_num @ (bit0 @ M) @ (bit1 @ N)) = (bit1 @ (plus_plus_num @ M @ N)))))). % semiring_norm(7)
thf(fact_113_semiring__norm_I10_J, axiom,
    ((![M : num, N : num]: ((plus_plus_num @ (bit1 @ M) @ (bit1 @ N)) = (bit0 @ (plus_plus_num @ (plus_plus_num @ M @ N) @ one)))))). % semiring_norm(10)
thf(fact_114_semiring__norm_I8_J, axiom,
    ((![M : num]: ((plus_plus_num @ (bit1 @ M) @ one) = (bit0 @ (plus_plus_num @ M @ one)))))). % semiring_norm(8)
thf(fact_115_semiring__norm_I5_J, axiom,
    ((![M : num]: ((plus_plus_num @ (bit0 @ M) @ one) = (bit1 @ M))))). % semiring_norm(5)
thf(fact_116_semiring__norm_I4_J, axiom,
    ((![N : num]: ((plus_plus_num @ one @ (bit1 @ N)) = (bit0 @ (plus_plus_num @ N @ one)))))). % semiring_norm(4)

% Conjectures (1)
thf(conj_0, conjecture,
    (((map_nat_complex @ (fFT_Mirabelle_DFT @ (numeral_numeral_nat @ (bit0 @ (bit0 @ one))) @ a) @ (cons_nat @ zero_zero_nat @ (cons_nat @ one_one_nat @ (cons_nat @ (numeral_numeral_nat @ (bit0 @ one)) @ (cons_nat @ (numeral_numeral_nat @ (bit1 @ one)) @ nil_nat))))) = x_0_ATP))).
