% 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/Fundamental_Theorem_Algebra/prob_1147__5378672_1 ) ; }
% This file was generated by Isabelle (most likely Sledgehammer)
% 2020-12-16 14:36:09.630

% Could-be-implicit typings (3)
thf(ty_n_t__Polynomial__Opoly_It__Polynomial__Opoly_Itf__a_J_J, type,
    poly_poly_a : $tType).
thf(ty_n_t__Polynomial__Opoly_Itf__a_J, type,
    poly_a : $tType).
thf(ty_n_tf__a, type,
    a : $tType).

% Explicit typings (24)
thf(sy_c_Groups_Ominus__class_Ominus_001t__Polynomial__Opoly_It__Polynomial__Opoly_Itf__a_J_J, type,
    minus_154650241poly_a : poly_poly_a > poly_poly_a > poly_poly_a).
thf(sy_c_Groups_Ominus__class_Ominus_001t__Polynomial__Opoly_Itf__a_J, type,
    minus_minus_poly_a : poly_a > poly_a > poly_a).
thf(sy_c_Groups_Ominus__class_Ominus_001tf__a, type,
    minus_minus_a : a > a > a).
thf(sy_c_Groups_Oone__class_Oone_001t__Polynomial__Opoly_It__Polynomial__Opoly_Itf__a_J_J, type,
    one_one_poly_poly_a : poly_poly_a).
thf(sy_c_Groups_Oone__class_Oone_001t__Polynomial__Opoly_Itf__a_J, type,
    one_one_poly_a : poly_a).
thf(sy_c_Groups_Oone__class_Oone_001tf__a, type,
    one_one_a : a).
thf(sy_c_Groups_Otimes__class_Otimes_001t__Polynomial__Opoly_Itf__a_J, type,
    times_times_poly_a : poly_a > poly_a > poly_a).
thf(sy_c_Groups_Otimes__class_Otimes_001tf__a, type,
    times_times_a : a > a > a).
thf(sy_c_Groups_Ozero__class_Ozero_001t__Polynomial__Opoly_It__Polynomial__Opoly_Itf__a_J_J, type,
    zero_z2096148049poly_a : poly_poly_a).
thf(sy_c_Groups_Ozero__class_Ozero_001t__Polynomial__Opoly_Itf__a_J, type,
    zero_zero_poly_a : poly_a).
thf(sy_c_Groups_Ozero__class_Ozero_001tf__a, type,
    zero_zero_a : a).
thf(sy_c_Polynomial_OpCons_001t__Polynomial__Opoly_Itf__a_J, type,
    pCons_poly_a : poly_a > poly_poly_a > poly_poly_a).
thf(sy_c_Polynomial_OpCons_001tf__a, type,
    pCons_a : a > poly_a > poly_a).
thf(sy_c_Polynomial_Osmult_001t__Polynomial__Opoly_Itf__a_J, type,
    smult_poly_a : poly_a > poly_poly_a > poly_poly_a).
thf(sy_c_Polynomial_Osmult_001tf__a, type,
    smult_a : a > poly_a > poly_a).
thf(sy_c_Rings_Odvd__class_Odvd_001t__Polynomial__Opoly_It__Polynomial__Opoly_Itf__a_J_J, type,
    dvd_dvd_poly_poly_a : poly_poly_a > poly_poly_a > $o).
thf(sy_c_Rings_Odvd__class_Odvd_001t__Polynomial__Opoly_Itf__a_J, type,
    dvd_dvd_poly_a : poly_a > poly_a > $o).
thf(sy_c_Rings_Odvd__class_Odvd_001tf__a, type,
    dvd_dvd_a : a > a > $o).
thf(sy_v_a, type,
    a2 : a).
thf(sy_v_p, type,
    p : poly_a).
thf(sy_v_p_H, type,
    p2 : poly_a).
thf(sy_v_q, type,
    q : poly_a).
thf(sy_v_r, type,
    r : poly_a).
thf(sy_v_t____, type,
    t : poly_a).

% Relevant facts (142)
thf(fact_0_that, axiom,
    ((dvd_dvd_poly_a @ p @ r))). % that
thf(fact_1_pp_H, axiom,
    ((dvd_dvd_poly_a @ p @ p2))). % pp'
thf(fact_2__092_060open_062p_Advd_Aq_A_092_060Longrightarrow_062_Ap_Advd_Ar_092_060close_062, axiom,
    (((dvd_dvd_poly_a @ p @ q) => (dvd_dvd_poly_a @ p @ r)))). % \<open>p dvd q \<Longrightarrow> p dvd r\<close>
thf(fact_3_t, axiom,
    ((p2 = (times_times_poly_a @ p @ t)))). % t
thf(fact_4_dvd__refl, axiom,
    ((![A : poly_a]: (dvd_dvd_poly_a @ A @ A)))). % dvd_refl
thf(fact_5_dvd__trans, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((dvd_dvd_poly_a @ A @ B) => ((dvd_dvd_poly_a @ B @ C) => (dvd_dvd_poly_a @ A @ C)))))). % dvd_trans
thf(fact_6__092_060open_062_092_060And_062thesis_O_A_I_092_060And_062t_O_Ap_H_A_061_Ap_A_K_At_A_092_060Longrightarrow_062_Athesis_J_A_092_060Longrightarrow_062_Athesis_092_060close_062, axiom,
    ((~ ((![T : poly_a]: (~ ((p2 = (times_times_poly_a @ p @ T))))))))). % \<open>\<And>thesis. (\<And>t. p' = p * t \<Longrightarrow> thesis) \<Longrightarrow> thesis\<close>
thf(fact_7_a0, axiom,
    ((~ ((a2 = zero_zero_a))))). % a0
thf(fact_8_qrp_H, axiom,
    (((minus_minus_poly_a @ (smult_a @ a2 @ q) @ p2) = r))). % qrp'
thf(fact_9_mult__zero__left, axiom,
    ((![A : a]: ((times_times_a @ zero_zero_a @ A) = zero_zero_a)))). % mult_zero_left
thf(fact_10_mult__zero__left, axiom,
    ((![A : poly_a]: ((times_times_poly_a @ zero_zero_poly_a @ A) = zero_zero_poly_a)))). % mult_zero_left
thf(fact_11_mult__zero__right, axiom,
    ((![A : a]: ((times_times_a @ A @ zero_zero_a) = zero_zero_a)))). % mult_zero_right
thf(fact_12_mult__zero__right, axiom,
    ((![A : poly_a]: ((times_times_poly_a @ A @ zero_zero_poly_a) = zero_zero_poly_a)))). % mult_zero_right
thf(fact_13_mult__eq__0__iff, axiom,
    ((![A : a, B : a]: (((times_times_a @ A @ B) = zero_zero_a) = (((A = zero_zero_a)) | ((B = zero_zero_a))))))). % mult_eq_0_iff
thf(fact_14_mult__eq__0__iff, axiom,
    ((![A : poly_a, B : poly_a]: (((times_times_poly_a @ A @ B) = zero_zero_poly_a) = (((A = zero_zero_poly_a)) | ((B = zero_zero_poly_a))))))). % mult_eq_0_iff
thf(fact_15_mult__cancel__left, axiom,
    ((![C : a, A : a, B : a]: (((times_times_a @ C @ A) = (times_times_a @ C @ B)) = (((C = zero_zero_a)) | ((A = B))))))). % mult_cancel_left
thf(fact_16_mult__cancel__left, axiom,
    ((![C : poly_a, A : poly_a, B : poly_a]: (((times_times_poly_a @ C @ A) = (times_times_poly_a @ C @ B)) = (((C = zero_zero_poly_a)) | ((A = B))))))). % mult_cancel_left
thf(fact_17_mult__cancel__right, axiom,
    ((![A : a, C : a, B : a]: (((times_times_a @ A @ C) = (times_times_a @ B @ C)) = (((C = zero_zero_a)) | ((A = B))))))). % mult_cancel_right
thf(fact_18_mult__cancel__right, axiom,
    ((![A : poly_a, C : poly_a, B : poly_a]: (((times_times_poly_a @ A @ C) = (times_times_poly_a @ B @ C)) = (((C = zero_zero_poly_a)) | ((A = B))))))). % mult_cancel_right
thf(fact_19_dvd__0__left__iff, axiom,
    ((![A : poly_a]: ((dvd_dvd_poly_a @ zero_zero_poly_a @ A) = (A = zero_zero_poly_a))))). % dvd_0_left_iff
thf(fact_20_dvd__0__left__iff, axiom,
    ((![A : a]: ((dvd_dvd_a @ zero_zero_a @ A) = (A = zero_zero_a))))). % dvd_0_left_iff
thf(fact_21_dvd__0__right, axiom,
    ((![A : poly_a]: (dvd_dvd_poly_a @ A @ zero_zero_poly_a)))). % dvd_0_right
thf(fact_22_dvd__0__right, axiom,
    ((![A : a]: (dvd_dvd_a @ A @ zero_zero_a)))). % dvd_0_right
thf(fact_23_smult__0__left, axiom,
    ((![P : poly_a]: ((smult_a @ zero_zero_a @ P) = zero_zero_poly_a)))). % smult_0_left
thf(fact_24_smult__eq__0__iff, axiom,
    ((![A : a, P : poly_a]: (((smult_a @ A @ P) = zero_zero_poly_a) = (((A = zero_zero_a)) | ((P = zero_zero_poly_a))))))). % smult_eq_0_iff
thf(fact_25_smult__smult, axiom,
    ((![A : a, B : a, P : poly_a]: ((smult_a @ A @ (smult_a @ B @ P)) = (smult_a @ (times_times_a @ A @ B) @ P))))). % smult_smult
thf(fact_26_smult__smult, axiom,
    ((![A : poly_a, B : poly_a, P : poly_poly_a]: ((smult_poly_a @ A @ (smult_poly_a @ B @ P)) = (smult_poly_a @ (times_times_poly_a @ A @ B) @ P))))). % smult_smult
thf(fact_27_mult__smult__left, axiom,
    ((![A : a, P : poly_a, Q : poly_a]: ((times_times_poly_a @ (smult_a @ A @ P) @ Q) = (smult_a @ A @ (times_times_poly_a @ P @ Q)))))). % mult_smult_left
thf(fact_28_mult__smult__right, axiom,
    ((![P : poly_a, A : a, Q : poly_a]: ((times_times_poly_a @ P @ (smult_a @ A @ Q)) = (smult_a @ A @ (times_times_poly_a @ P @ Q)))))). % mult_smult_right
thf(fact_29_dvd__mult__cancel__left, axiom,
    ((![C : a, A : a, B : a]: ((dvd_dvd_a @ (times_times_a @ C @ A) @ (times_times_a @ C @ B)) = (((C = zero_zero_a)) | ((dvd_dvd_a @ A @ B))))))). % dvd_mult_cancel_left
thf(fact_30_dvd__mult__cancel__left, axiom,
    ((![C : poly_a, A : poly_a, B : poly_a]: ((dvd_dvd_poly_a @ (times_times_poly_a @ C @ A) @ (times_times_poly_a @ C @ B)) = (((C = zero_zero_poly_a)) | ((dvd_dvd_poly_a @ A @ B))))))). % dvd_mult_cancel_left
thf(fact_31_dvd__mult__cancel__right, axiom,
    ((![A : a, C : a, B : a]: ((dvd_dvd_a @ (times_times_a @ A @ C) @ (times_times_a @ B @ C)) = (((C = zero_zero_a)) | ((dvd_dvd_a @ A @ B))))))). % dvd_mult_cancel_right
thf(fact_32_dvd__mult__cancel__right, axiom,
    ((![A : poly_a, C : poly_a, B : poly_a]: ((dvd_dvd_poly_a @ (times_times_poly_a @ A @ C) @ (times_times_poly_a @ B @ C)) = (((C = zero_zero_poly_a)) | ((dvd_dvd_poly_a @ A @ B))))))). % dvd_mult_cancel_right
thf(fact_33_dvd__times__left__cancel__iff, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((~ ((A = zero_zero_poly_a))) => ((dvd_dvd_poly_a @ (times_times_poly_a @ A @ B) @ (times_times_poly_a @ A @ C)) = (dvd_dvd_poly_a @ B @ C)))))). % dvd_times_left_cancel_iff
thf(fact_34_dvd__times__right__cancel__iff, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((~ ((A = zero_zero_poly_a))) => ((dvd_dvd_poly_a @ (times_times_poly_a @ B @ A) @ (times_times_poly_a @ C @ A)) = (dvd_dvd_poly_a @ B @ C)))))). % dvd_times_right_cancel_iff
thf(fact_35_smult__dvd, axiom,
    ((![P : poly_a, Q : poly_a, A : a]: ((dvd_dvd_poly_a @ P @ Q) => ((~ ((A = zero_zero_a))) => (dvd_dvd_poly_a @ (smult_a @ A @ P) @ Q)))))). % smult_dvd
thf(fact_36_dvd__smult__iff, axiom,
    ((![A : a, P : poly_a, Q : poly_a]: ((~ ((A = zero_zero_a))) => ((dvd_dvd_poly_a @ P @ (smult_a @ A @ Q)) = (dvd_dvd_poly_a @ P @ Q)))))). % dvd_smult_iff
thf(fact_37_smult__dvd__iff, axiom,
    ((![A : a, P : poly_a, Q : poly_a]: ((dvd_dvd_poly_a @ (smult_a @ A @ P) @ Q) = (((((A = zero_zero_a)) => ((Q = zero_zero_poly_a)))) & ((((~ ((A = zero_zero_a)))) => ((dvd_dvd_poly_a @ P @ Q))))))))). % smult_dvd_iff
thf(fact_38_smult__diff__left, axiom,
    ((![A : a, B : a, P : poly_a]: ((smult_a @ (minus_minus_a @ A @ B) @ P) = (minus_minus_poly_a @ (smult_a @ A @ P) @ (smult_a @ B @ P)))))). % smult_diff_left
thf(fact_39_smult__diff__left, axiom,
    ((![A : poly_a, B : poly_a, P : poly_poly_a]: ((smult_poly_a @ (minus_minus_poly_a @ A @ B) @ P) = (minus_154650241poly_a @ (smult_poly_a @ A @ P) @ (smult_poly_a @ B @ P)))))). % smult_diff_left
thf(fact_40_dvd__smult__cancel, axiom,
    ((![P : poly_a, A : a, Q : poly_a]: ((dvd_dvd_poly_a @ P @ (smult_a @ A @ Q)) => ((~ ((A = zero_zero_a))) => (dvd_dvd_poly_a @ P @ Q)))))). % dvd_smult_cancel
thf(fact_41_smult__diff__right, axiom,
    ((![A : a, P : poly_a, Q : poly_a]: ((smult_a @ A @ (minus_minus_poly_a @ P @ Q)) = (minus_minus_poly_a @ (smult_a @ A @ P) @ (smult_a @ A @ Q)))))). % smult_diff_right
thf(fact_42_left__diff__distrib, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((times_times_poly_a @ (minus_minus_poly_a @ A @ B) @ C) = (minus_minus_poly_a @ (times_times_poly_a @ A @ C) @ (times_times_poly_a @ B @ C)))))). % left_diff_distrib
thf(fact_43_mult__not__zero, axiom,
    ((![A : a, B : a]: ((~ (((times_times_a @ A @ B) = zero_zero_a))) => ((~ ((A = zero_zero_a))) & (~ ((B = zero_zero_a)))))))). % mult_not_zero
thf(fact_44_mult__not__zero, axiom,
    ((![A : poly_a, B : poly_a]: ((~ (((times_times_poly_a @ A @ B) = zero_zero_poly_a))) => ((~ ((A = zero_zero_poly_a))) & (~ ((B = zero_zero_poly_a)))))))). % mult_not_zero
thf(fact_45_right__diff__distrib, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((times_times_poly_a @ A @ (minus_minus_poly_a @ B @ C)) = (minus_minus_poly_a @ (times_times_poly_a @ A @ B) @ (times_times_poly_a @ A @ C)))))). % right_diff_distrib
thf(fact_46_divisors__zero, axiom,
    ((![A : a, B : a]: (((times_times_a @ A @ B) = zero_zero_a) => ((A = zero_zero_a) | (B = zero_zero_a)))))). % divisors_zero
thf(fact_47_divisors__zero, axiom,
    ((![A : poly_a, B : poly_a]: (((times_times_poly_a @ A @ B) = zero_zero_poly_a) => ((A = zero_zero_poly_a) | (B = zero_zero_poly_a)))))). % divisors_zero
thf(fact_48_left__diff__distrib_H, axiom,
    ((![B : poly_a, C : poly_a, A : poly_a]: ((times_times_poly_a @ (minus_minus_poly_a @ B @ C) @ A) = (minus_minus_poly_a @ (times_times_poly_a @ B @ A) @ (times_times_poly_a @ C @ A)))))). % left_diff_distrib'
thf(fact_49_right__diff__distrib_H, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((times_times_poly_a @ A @ (minus_minus_poly_a @ B @ C)) = (minus_minus_poly_a @ (times_times_poly_a @ A @ B) @ (times_times_poly_a @ A @ C)))))). % right_diff_distrib'
thf(fact_50_no__zero__divisors, axiom,
    ((![A : a, B : a]: ((~ ((A = zero_zero_a))) => ((~ ((B = zero_zero_a))) => (~ (((times_times_a @ A @ B) = zero_zero_a)))))))). % no_zero_divisors
thf(fact_51_no__zero__divisors, axiom,
    ((![A : poly_a, B : poly_a]: ((~ ((A = zero_zero_poly_a))) => ((~ ((B = zero_zero_poly_a))) => (~ (((times_times_poly_a @ A @ B) = zero_zero_poly_a)))))))). % no_zero_divisors
thf(fact_52_mult__left__cancel, axiom,
    ((![C : a, A : a, B : a]: ((~ ((C = zero_zero_a))) => (((times_times_a @ C @ A) = (times_times_a @ C @ B)) = (A = B)))))). % mult_left_cancel
thf(fact_53_mult__left__cancel, axiom,
    ((![C : poly_a, A : poly_a, B : poly_a]: ((~ ((C = zero_zero_poly_a))) => (((times_times_poly_a @ C @ A) = (times_times_poly_a @ C @ B)) = (A = B)))))). % mult_left_cancel
thf(fact_54_mult__right__cancel, axiom,
    ((![C : a, A : a, B : a]: ((~ ((C = zero_zero_a))) => (((times_times_a @ A @ C) = (times_times_a @ B @ C)) = (A = B)))))). % mult_right_cancel
thf(fact_55_mult__right__cancel, axiom,
    ((![C : poly_a, A : poly_a, B : poly_a]: ((~ ((C = zero_zero_poly_a))) => (((times_times_poly_a @ A @ C) = (times_times_poly_a @ B @ C)) = (A = B)))))). % mult_right_cancel
thf(fact_56_poly__cancel__eq__conv, axiom,
    ((![X : a, A : a, Y : a, B : a]: ((X = zero_zero_a) => ((~ ((A = zero_zero_a))) => ((Y = zero_zero_a) = ((minus_minus_a @ (times_times_a @ A @ Y) @ (times_times_a @ B @ X)) = zero_zero_a))))))). % poly_cancel_eq_conv
thf(fact_57_dvd__diff, axiom,
    ((![X : poly_a, Y : poly_a, Z : poly_a]: ((dvd_dvd_poly_a @ X @ Y) => ((dvd_dvd_poly_a @ X @ Z) => (dvd_dvd_poly_a @ X @ (minus_minus_poly_a @ Y @ Z))))))). % dvd_diff
thf(fact_58_dvd__triv__right, axiom,
    ((![A : poly_a, B : poly_a]: (dvd_dvd_poly_a @ A @ (times_times_poly_a @ B @ A))))). % dvd_triv_right
thf(fact_59_dvd__mult__right, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((dvd_dvd_poly_a @ (times_times_poly_a @ A @ B) @ C) => (dvd_dvd_poly_a @ B @ C))))). % dvd_mult_right
thf(fact_60_mult__dvd__mono, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a, D : poly_a]: ((dvd_dvd_poly_a @ A @ B) => ((dvd_dvd_poly_a @ C @ D) => (dvd_dvd_poly_a @ (times_times_poly_a @ A @ C) @ (times_times_poly_a @ B @ D))))))). % mult_dvd_mono
thf(fact_61_dvd__triv__left, axiom,
    ((![A : poly_a, B : poly_a]: (dvd_dvd_poly_a @ A @ (times_times_poly_a @ A @ B))))). % dvd_triv_left
thf(fact_62_dvd__mult__left, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((dvd_dvd_poly_a @ (times_times_poly_a @ A @ B) @ C) => (dvd_dvd_poly_a @ A @ C))))). % dvd_mult_left
thf(fact_63_dvd__mult2, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((dvd_dvd_poly_a @ A @ B) => (dvd_dvd_poly_a @ A @ (times_times_poly_a @ B @ C)))))). % dvd_mult2
thf(fact_64_dvd__mult, axiom,
    ((![A : poly_a, C : poly_a, B : poly_a]: ((dvd_dvd_poly_a @ A @ C) => (dvd_dvd_poly_a @ A @ (times_times_poly_a @ B @ C)))))). % dvd_mult
thf(fact_65_dvd__def, axiom,
    ((dvd_dvd_poly_a = (^[B2 : poly_a]: (^[A2 : poly_a]: (?[K : poly_a]: (A2 = (times_times_poly_a @ B2 @ K)))))))). % dvd_def
thf(fact_66_dvdI, axiom,
    ((![A : poly_a, B : poly_a, K2 : poly_a]: ((A = (times_times_poly_a @ B @ K2)) => (dvd_dvd_poly_a @ B @ A))))). % dvdI
thf(fact_67_dvdE, axiom,
    ((![B : poly_a, A : poly_a]: ((dvd_dvd_poly_a @ B @ A) => (~ ((![K3 : poly_a]: (~ ((A = (times_times_poly_a @ B @ K3))))))))))). % dvdE
thf(fact_68_dvd__0__left, axiom,
    ((![A : poly_a]: ((dvd_dvd_poly_a @ zero_zero_poly_a @ A) => (A = zero_zero_poly_a))))). % dvd_0_left
thf(fact_69_dvd__0__left, axiom,
    ((![A : a]: ((dvd_dvd_a @ zero_zero_a @ A) => (A = zero_zero_a))))). % dvd_0_left
thf(fact_70_smult__dvd__cancel, axiom,
    ((![A : a, P : poly_a, Q : poly_a]: ((dvd_dvd_poly_a @ (smult_a @ A @ P) @ Q) => (dvd_dvd_poly_a @ P @ Q))))). % smult_dvd_cancel
thf(fact_71_dvd__smult, axiom,
    ((![P : poly_a, Q : poly_a, A : a]: ((dvd_dvd_poly_a @ P @ Q) => (dvd_dvd_poly_a @ P @ (smult_a @ A @ Q)))))). % dvd_smult
thf(fact_72_diff__self, axiom,
    ((![A : a]: ((minus_minus_a @ A @ A) = zero_zero_a)))). % diff_self
thf(fact_73_diff__self, axiom,
    ((![A : poly_a]: ((minus_minus_poly_a @ A @ A) = zero_zero_poly_a)))). % diff_self
thf(fact_74_diff__0__right, axiom,
    ((![A : a]: ((minus_minus_a @ A @ zero_zero_a) = A)))). % diff_0_right
thf(fact_75_diff__0__right, axiom,
    ((![A : poly_a]: ((minus_minus_poly_a @ A @ zero_zero_poly_a) = A)))). % diff_0_right
thf(fact_76_diff__zero, axiom,
    ((![A : a]: ((minus_minus_a @ A @ zero_zero_a) = A)))). % diff_zero
thf(fact_77_diff__zero, axiom,
    ((![A : poly_a]: ((minus_minus_poly_a @ A @ zero_zero_poly_a) = A)))). % diff_zero
thf(fact_78_cancel__comm__monoid__add__class_Odiff__cancel, axiom,
    ((![A : a]: ((minus_minus_a @ A @ A) = zero_zero_a)))). % cancel_comm_monoid_add_class.diff_cancel
thf(fact_79_cancel__comm__monoid__add__class_Odiff__cancel, axiom,
    ((![A : poly_a]: ((minus_minus_poly_a @ A @ A) = zero_zero_poly_a)))). % cancel_comm_monoid_add_class.diff_cancel
thf(fact_80_smult__0__right, axiom,
    ((![A : a]: ((smult_a @ A @ zero_zero_poly_a) = zero_zero_poly_a)))). % smult_0_right
thf(fact_81_mult__poly__0__right, axiom,
    ((![P : poly_a]: ((times_times_poly_a @ P @ zero_zero_poly_a) = zero_zero_poly_a)))). % mult_poly_0_right
thf(fact_82_mult__poly__0__left, axiom,
    ((![Q : poly_a]: ((times_times_poly_a @ zero_zero_poly_a @ Q) = zero_zero_poly_a)))). % mult_poly_0_left
thf(fact_83_zero__reorient, axiom,
    ((![X : a]: ((zero_zero_a = X) = (X = zero_zero_a))))). % zero_reorient
thf(fact_84_mult_Oleft__commute, axiom,
    ((![B : poly_a, A : poly_a, C : poly_a]: ((times_times_poly_a @ B @ (times_times_poly_a @ A @ C)) = (times_times_poly_a @ A @ (times_times_poly_a @ B @ C)))))). % mult.left_commute
thf(fact_85_mult_Ocommute, axiom,
    ((times_times_poly_a = (^[A2 : poly_a]: (^[B2 : poly_a]: (times_times_poly_a @ B2 @ A2)))))). % mult.commute
thf(fact_86_mult_Oassoc, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((times_times_poly_a @ (times_times_poly_a @ A @ B) @ C) = (times_times_poly_a @ A @ (times_times_poly_a @ B @ C)))))). % mult.assoc
thf(fact_87_ab__semigroup__mult__class_Omult__ac_I1_J, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((times_times_poly_a @ (times_times_poly_a @ A @ B) @ C) = (times_times_poly_a @ A @ (times_times_poly_a @ B @ C)))))). % ab_semigroup_mult_class.mult_ac(1)
thf(fact_88_cancel__ab__semigroup__add__class_Odiff__right__commute, axiom,
    ((![A : poly_a, C : poly_a, B : poly_a]: ((minus_minus_poly_a @ (minus_minus_poly_a @ A @ C) @ B) = (minus_minus_poly_a @ (minus_minus_poly_a @ A @ B) @ C))))). % cancel_ab_semigroup_add_class.diff_right_commute
thf(fact_89_diff__eq__diff__eq, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a, D : poly_a]: (((minus_minus_poly_a @ A @ B) = (minus_minus_poly_a @ C @ D)) => ((A = B) = (C = D)))))). % diff_eq_diff_eq
thf(fact_90_eq__iff__diff__eq__0, axiom,
    (((^[Y2 : a]: (^[Z2 : a]: (Y2 = Z2))) = (^[A2 : a]: (^[B2 : a]: ((minus_minus_a @ A2 @ B2) = zero_zero_a)))))). % eq_iff_diff_eq_0
thf(fact_91_eq__iff__diff__eq__0, axiom,
    (((^[Y2 : poly_a]: (^[Z2 : poly_a]: (Y2 = Z2))) = (^[A2 : poly_a]: (^[B2 : poly_a]: ((minus_minus_poly_a @ A2 @ B2) = zero_zero_poly_a)))))). % eq_iff_diff_eq_0
thf(fact_92_dvd__field__iff, axiom,
    ((dvd_dvd_a = (^[A2 : a]: (^[B2 : a]: (((A2 = zero_zero_a)) => ((B2 = zero_zero_a)))))))). % dvd_field_iff
thf(fact_93_inf__period_I1_J, axiom,
    ((![P2 : poly_a > $o, D2 : poly_a, Q2 : poly_a > $o]: ((![X2 : poly_a, K3 : poly_a]: ((P2 @ X2) = (P2 @ (minus_minus_poly_a @ X2 @ (times_times_poly_a @ K3 @ D2))))) => ((![X2 : poly_a, K3 : poly_a]: ((Q2 @ X2) = (Q2 @ (minus_minus_poly_a @ X2 @ (times_times_poly_a @ K3 @ D2))))) => (![X3 : poly_a, K4 : poly_a]: ((((P2 @ X3)) & ((Q2 @ X3))) = (((P2 @ (minus_minus_poly_a @ X3 @ (times_times_poly_a @ K4 @ D2)))) & ((Q2 @ (minus_minus_poly_a @ X3 @ (times_times_poly_a @ K4 @ D2)))))))))))). % inf_period(1)
thf(fact_94_inf__period_I2_J, axiom,
    ((![P2 : poly_a > $o, D2 : poly_a, Q2 : poly_a > $o]: ((![X2 : poly_a, K3 : poly_a]: ((P2 @ X2) = (P2 @ (minus_minus_poly_a @ X2 @ (times_times_poly_a @ K3 @ D2))))) => ((![X2 : poly_a, K3 : poly_a]: ((Q2 @ X2) = (Q2 @ (minus_minus_poly_a @ X2 @ (times_times_poly_a @ K3 @ D2))))) => (![X3 : poly_a, K4 : poly_a]: ((((P2 @ X3)) | ((Q2 @ X3))) = (((P2 @ (minus_minus_poly_a @ X3 @ (times_times_poly_a @ K4 @ D2)))) | ((Q2 @ (minus_minus_poly_a @ X3 @ (times_times_poly_a @ K4 @ D2)))))))))))). % inf_period(2)
thf(fact_95_mult_Oleft__neutral, axiom,
    ((![A : poly_a]: ((times_times_poly_a @ one_one_poly_a @ A) = A)))). % mult.left_neutral
thf(fact_96_mult_Oright__neutral, axiom,
    ((![A : poly_a]: ((times_times_poly_a @ A @ one_one_poly_a) = A)))). % mult.right_neutral
thf(fact_97_smult__1__left, axiom,
    ((![P : poly_a]: ((smult_a @ one_one_a @ P) = P)))). % smult_1_left
thf(fact_98_mult__cancel__right2, axiom,
    ((![A : a, C : a]: (((times_times_a @ A @ C) = C) = (((C = zero_zero_a)) | ((A = one_one_a))))))). % mult_cancel_right2
thf(fact_99_mult__cancel__right2, axiom,
    ((![A : poly_a, C : poly_a]: (((times_times_poly_a @ A @ C) = C) = (((C = zero_zero_poly_a)) | ((A = one_one_poly_a))))))). % mult_cancel_right2
thf(fact_100_mult__cancel__right1, axiom,
    ((![C : a, B : a]: ((C = (times_times_a @ B @ C)) = (((C = zero_zero_a)) | ((B = one_one_a))))))). % mult_cancel_right1
thf(fact_101_mult__cancel__right1, axiom,
    ((![C : poly_a, B : poly_a]: ((C = (times_times_poly_a @ B @ C)) = (((C = zero_zero_poly_a)) | ((B = one_one_poly_a))))))). % mult_cancel_right1
thf(fact_102_mult__cancel__left2, axiom,
    ((![C : a, A : a]: (((times_times_a @ C @ A) = C) = (((C = zero_zero_a)) | ((A = one_one_a))))))). % mult_cancel_left2
thf(fact_103_mult__cancel__left2, axiom,
    ((![C : poly_a, A : poly_a]: (((times_times_poly_a @ C @ A) = C) = (((C = zero_zero_poly_a)) | ((A = one_one_poly_a))))))). % mult_cancel_left2
thf(fact_104_mult__cancel__left1, axiom,
    ((![C : a, B : a]: ((C = (times_times_a @ C @ B)) = (((C = zero_zero_a)) | ((B = one_one_a))))))). % mult_cancel_left1
thf(fact_105_mult__cancel__left1, axiom,
    ((![C : poly_a, B : poly_a]: ((C = (times_times_poly_a @ C @ B)) = (((C = zero_zero_poly_a)) | ((B = one_one_poly_a))))))). % mult_cancel_left1
thf(fact_106_unit__prod, axiom,
    ((![A : poly_a, B : poly_a]: ((dvd_dvd_poly_a @ A @ one_one_poly_a) => ((dvd_dvd_poly_a @ B @ one_one_poly_a) => (dvd_dvd_poly_a @ (times_times_poly_a @ A @ B) @ one_one_poly_a)))))). % unit_prod
thf(fact_107_pCons__eq__0__iff, axiom,
    ((![A : a, P : poly_a]: (((pCons_a @ A @ P) = zero_zero_poly_a) = (((A = zero_zero_a)) & ((P = zero_zero_poly_a))))))). % pCons_eq_0_iff
thf(fact_108_pCons__0__0, axiom,
    (((pCons_a @ zero_zero_a @ zero_zero_poly_a) = zero_zero_poly_a))). % pCons_0_0
thf(fact_109_smult__pCons, axiom,
    ((![A : a, B : a, P : poly_a]: ((smult_a @ A @ (pCons_a @ B @ P)) = (pCons_a @ (times_times_a @ A @ B) @ (smult_a @ A @ P)))))). % smult_pCons
thf(fact_110_smult__pCons, axiom,
    ((![A : poly_a, B : poly_a, P : poly_poly_a]: ((smult_poly_a @ A @ (pCons_poly_a @ B @ P)) = (pCons_poly_a @ (times_times_poly_a @ A @ B) @ (smult_poly_a @ A @ P)))))). % smult_pCons
thf(fact_111_smult__one, axiom,
    ((![C : a]: ((smult_a @ C @ one_one_poly_a) = (pCons_a @ C @ zero_zero_poly_a))))). % smult_one
thf(fact_112_diff__pCons, axiom,
    ((![A : poly_a, P : poly_poly_a, B : poly_a, Q : poly_poly_a]: ((minus_154650241poly_a @ (pCons_poly_a @ A @ P) @ (pCons_poly_a @ B @ Q)) = (pCons_poly_a @ (minus_minus_poly_a @ A @ B) @ (minus_154650241poly_a @ P @ Q)))))). % diff_pCons
thf(fact_113_diff__pCons, axiom,
    ((![A : a, P : poly_a, B : a, Q : poly_a]: ((minus_minus_poly_a @ (pCons_a @ A @ P) @ (pCons_a @ B @ Q)) = (pCons_a @ (minus_minus_a @ A @ B) @ (minus_minus_poly_a @ P @ Q)))))). % diff_pCons
thf(fact_114_const__poly__dvd__const__poly__iff, axiom,
    ((![A : poly_a, B : poly_a]: ((dvd_dvd_poly_poly_a @ (pCons_poly_a @ A @ zero_z2096148049poly_a) @ (pCons_poly_a @ B @ zero_z2096148049poly_a)) = (dvd_dvd_poly_a @ A @ B))))). % const_poly_dvd_const_poly_iff
thf(fact_115_const__poly__dvd__const__poly__iff, axiom,
    ((![A : a, B : a]: ((dvd_dvd_poly_a @ (pCons_a @ A @ zero_zero_poly_a) @ (pCons_a @ B @ zero_zero_poly_a)) = (dvd_dvd_a @ A @ B))))). % const_poly_dvd_const_poly_iff
thf(fact_116_is__unit__triv, axiom,
    ((![A : a]: ((~ ((A = zero_zero_a))) => (dvd_dvd_poly_a @ (pCons_a @ A @ zero_zero_poly_a) @ one_one_poly_a))))). % is_unit_triv
thf(fact_117_is__unit__pCons__iff, axiom,
    ((![A : a, P : poly_a]: ((dvd_dvd_poly_a @ (pCons_a @ A @ P) @ one_one_poly_a) = (((P = zero_zero_poly_a)) & ((~ ((A = zero_zero_a))))))))). % is_unit_pCons_iff
thf(fact_118_is__unit__smult__iff, axiom,
    ((![C : poly_a, P : poly_poly_a]: ((dvd_dvd_poly_poly_a @ (smult_poly_a @ C @ P) @ one_one_poly_poly_a) = (((dvd_dvd_poly_a @ C @ one_one_poly_a)) & ((dvd_dvd_poly_poly_a @ P @ one_one_poly_poly_a))))))). % is_unit_smult_iff
thf(fact_119_is__unit__smult__iff, axiom,
    ((![C : a, P : poly_a]: ((dvd_dvd_poly_a @ (smult_a @ C @ P) @ one_one_poly_a) = (((dvd_dvd_a @ C @ one_one_a)) & ((dvd_dvd_poly_a @ P @ one_one_poly_a))))))). % is_unit_smult_iff
thf(fact_120_dvd__unit__imp__unit, axiom,
    ((![A : poly_a, B : poly_a]: ((dvd_dvd_poly_a @ A @ B) => ((dvd_dvd_poly_a @ B @ one_one_poly_a) => (dvd_dvd_poly_a @ A @ one_one_poly_a)))))). % dvd_unit_imp_unit
thf(fact_121_unit__imp__dvd, axiom,
    ((![B : poly_a, A : poly_a]: ((dvd_dvd_poly_a @ B @ one_one_poly_a) => (dvd_dvd_poly_a @ B @ A))))). % unit_imp_dvd
thf(fact_122_one__dvd, axiom,
    ((![A : poly_a]: (dvd_dvd_poly_a @ one_one_poly_a @ A)))). % one_dvd
thf(fact_123_zero__neq__one, axiom,
    ((~ ((zero_zero_a = one_one_a))))). % zero_neq_one
thf(fact_124_comm__monoid__mult__class_Omult__1, axiom,
    ((![A : poly_a]: ((times_times_poly_a @ one_one_poly_a @ A) = A)))). % comm_monoid_mult_class.mult_1
thf(fact_125_mult_Ocomm__neutral, axiom,
    ((![A : poly_a]: ((times_times_poly_a @ A @ one_one_poly_a) = A)))). % mult.comm_neutral
thf(fact_126_is__unit__const__poly__iff, axiom,
    ((![C : poly_a]: ((dvd_dvd_poly_poly_a @ (pCons_poly_a @ C @ zero_z2096148049poly_a) @ one_one_poly_poly_a) = (dvd_dvd_poly_a @ C @ one_one_poly_a))))). % is_unit_const_poly_iff
thf(fact_127_is__unit__const__poly__iff, axiom,
    ((![C : a]: ((dvd_dvd_poly_a @ (pCons_a @ C @ zero_zero_poly_a) @ one_one_poly_a) = (dvd_dvd_a @ C @ one_one_a))))). % is_unit_const_poly_iff
thf(fact_128_is__unit__poly__iff, axiom,
    ((![P : poly_poly_a]: ((dvd_dvd_poly_poly_a @ P @ one_one_poly_poly_a) = (?[C2 : poly_a]: (((P = (pCons_poly_a @ C2 @ zero_z2096148049poly_a))) & ((dvd_dvd_poly_a @ C2 @ one_one_poly_a)))))))). % is_unit_poly_iff
thf(fact_129_is__unit__poly__iff, axiom,
    ((![P : poly_a]: ((dvd_dvd_poly_a @ P @ one_one_poly_a) = (?[C2 : a]: (((P = (pCons_a @ C2 @ zero_zero_poly_a))) & ((dvd_dvd_a @ C2 @ one_one_a)))))))). % is_unit_poly_iff
thf(fact_130_is__unit__polyE, axiom,
    ((![P : poly_poly_a]: ((dvd_dvd_poly_poly_a @ P @ one_one_poly_poly_a) => (~ ((![C3 : poly_a]: ((P = (pCons_poly_a @ C3 @ zero_z2096148049poly_a)) => (~ ((dvd_dvd_poly_a @ C3 @ one_one_poly_a))))))))))). % is_unit_polyE
thf(fact_131_is__unit__polyE, axiom,
    ((![P : poly_a]: ((dvd_dvd_poly_a @ P @ one_one_poly_a) => (~ ((![C3 : a]: ((P = (pCons_a @ C3 @ zero_zero_poly_a)) => (~ ((dvd_dvd_a @ C3 @ one_one_a))))))))))). % is_unit_polyE
thf(fact_132_pCons__induct, axiom,
    ((![P2 : poly_a > $o, P : poly_a]: ((P2 @ zero_zero_poly_a) => ((![A3 : a, P3 : poly_a]: (((~ ((A3 = zero_zero_a))) | (~ ((P3 = zero_zero_poly_a)))) => ((P2 @ P3) => (P2 @ (pCons_a @ A3 @ P3))))) => (P2 @ P)))))). % pCons_induct
thf(fact_133_poly__divides__pad__rule, axiom,
    ((![P : poly_a, Q : poly_a]: ((dvd_dvd_poly_a @ P @ Q) => (dvd_dvd_poly_a @ P @ (pCons_a @ zero_zero_a @ Q)))))). % poly_divides_pad_rule
thf(fact_134_synthetic__div__unique__lemma, axiom,
    ((![C : a, P : poly_a, A : a]: (((smult_a @ C @ P) = (pCons_a @ A @ P)) => (P = zero_zero_poly_a))))). % synthetic_div_unique_lemma
thf(fact_135_not__is__unit__0, axiom,
    ((~ ((dvd_dvd_poly_a @ zero_zero_poly_a @ one_one_poly_a))))). % not_is_unit_0
thf(fact_136_unit__mult__right__cancel, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((dvd_dvd_poly_a @ A @ one_one_poly_a) => (((times_times_poly_a @ B @ A) = (times_times_poly_a @ C @ A)) = (B = C)))))). % unit_mult_right_cancel
thf(fact_137_unit__mult__left__cancel, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((dvd_dvd_poly_a @ A @ one_one_poly_a) => (((times_times_poly_a @ A @ B) = (times_times_poly_a @ A @ C)) = (B = C)))))). % unit_mult_left_cancel
thf(fact_138_mult__unit__dvd__iff_H, axiom,
    ((![A : poly_a, B : poly_a, C : poly_a]: ((dvd_dvd_poly_a @ A @ one_one_poly_a) => ((dvd_dvd_poly_a @ (times_times_poly_a @ A @ B) @ C) = (dvd_dvd_poly_a @ B @ C)))))). % mult_unit_dvd_iff'
thf(fact_139_dvd__mult__unit__iff_H, axiom,
    ((![B : poly_a, A : poly_a, C : poly_a]: ((dvd_dvd_poly_a @ B @ one_one_poly_a) => ((dvd_dvd_poly_a @ A @ (times_times_poly_a @ B @ C)) = (dvd_dvd_poly_a @ A @ C)))))). % dvd_mult_unit_iff'
thf(fact_140_mult__unit__dvd__iff, axiom,
    ((![B : poly_a, A : poly_a, C : poly_a]: ((dvd_dvd_poly_a @ B @ one_one_poly_a) => ((dvd_dvd_poly_a @ (times_times_poly_a @ A @ B) @ C) = (dvd_dvd_poly_a @ A @ C)))))). % mult_unit_dvd_iff
thf(fact_141_dvd__mult__unit__iff, axiom,
    ((![B : poly_a, A : poly_a, C : poly_a]: ((dvd_dvd_poly_a @ B @ one_one_poly_a) => ((dvd_dvd_poly_a @ A @ (times_times_poly_a @ C @ B)) = (dvd_dvd_poly_a @ A @ C)))))). % dvd_mult_unit_iff

% Conjectures (1)
thf(conj_0, conjecture,
    ((dvd_dvd_poly_a @ p @ q))).
