PX003D

prime_field_polynomial_quotient_proper_product

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

For a nonempty quotient the actual ambient product is the actual proper polynomial convolution, not a Horner or synthetic surrogate.

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.

Exact expanded first-order arithmetic statement

forall p k ab ac bb bc d qb qc q pb pc L. (((((q)=0) /\ ((exists pfc_gap_division_product_chosen_lengthshort. pfc_gap_division_product_chosen_lengthshort+(L)=(d))))) \/ (((~((q)=0)) /\ (((q)+(d)=(L)))))) -> ~(q=0) -> (forall fom_index_pfp_division_product_divisor. (exists fom_gap_pfp_division_product_divisor_index_bound. fom_gap_pfp_division_product_divisor_index_bound + S (fom_index_pfp_division_product_divisor) = S d) -> exists fom_value_pfp_division_product_divisor. ((((exists fom_beta_height_pfp_division_product_divisor_entry. fom_beta_height_pfp_division_product_divisor_entry + S (fom_value_pfp_division_product_divisor) = S ((S (fom_index_pfp_division_product_divisor)) * bc)) /\ exists fom_beta_quotient_pfp_division_product_divisor_entry. bb = fom_beta_quotient_pfp_division_product_divisor_entry * S ((S (fom_index_pfp_division_product_divisor)) * bc) + (fom_value_pfp_division_product_divisor))) /\ (exists fom_gap_pfp_division_product_divisor_value_bound. fom_gap_pfp_division_product_divisor_value_bound + S (fom_value_pfp_division_product_divisor) = p))) -> (forall pfd_index_division_product_quotient. (exists pfa_gap_division_product_quotientbound. pfa_gap_division_product_quotientbound + S (pfd_index_division_product_quotient) = (q)) -> exists pfd_value_division_product_quotient. ((((exists ff_h_pfp_division_product_quotiententry. ff_h_pfp_division_product_quotiententry + S (pfd_value_division_product_quotient) = S ((S (pfd_index_division_product_quotient)) * qc)) /\ exists ff_q_pfp_division_product_quotiententry. qb = ff_q_pfp_division_product_quotiententry * S ((S (pfd_index_division_product_quotient)) * qc) + (pfd_value_division_product_quotient))) /\ ((exists pfd_input_division_product_quotientstep pfd_previous_division_product_quotientstep pfd_difference_division_product_quotientstep. ((((exists ff_h_pfp_division_product_quotientstepinput. ff_h_pfp_division_product_quotientstepinput + S (pfd_input_division_product_quotientstep) = S ((S (pfd_index_division_product_quotient)) * ac)) /\ exists ff_q_pfp_division_product_quotientstepinput. ab = ff_q_pfp_division_product_quotientstepinput * S ((S (pfd_index_division_product_quotient)) * ac) + (pfd_input_division_product_quotientstep))) /\ (((exists pfc_terms_code_division_product_quotientstepprevious pfc_terms_scale_division_product_quotientstepprevious pfc_natural_sum_division_product_quotientstepprevious. ((forall pfc_index_division_product_quotientsteppreviousdiagonal. (exists pfa_gap_division_product_quotientsteppreviousdiagonalbound. pfa_gap_division_product_quotientsteppreviousdiagonalbound + S (pfc_index_division_product_quotientsteppreviousdiagonal) = (S (pfd_index_division_product_quotient))) -> exists pfc_value_division_product_quotientsteppreviousdiagonal. ((((exists ff_h_pfp_division_product_quotientsteppreviousdiagonalentry. ff_h_pfp_division_product_quotientsteppreviousdiagonalentry + S (pfc_value_division_product_quotientsteppreviousdiagonal) = S ((S (pfc_index_division_product_quotientsteppreviousdiagonal)) * pfc_terms_scale_division_product_quotientstepprevious)) /\ exists ff_q_pfp_division_product_quotientsteppreviousdiagonalentry. pfc_terms_code_division_product_quotientstepprevious = ff_q_pfp_division_product_quotientsteppreviousdiagonalentry * S ((S (pfc_index_division_product_quotientsteppreviousdiagonal)) * pfc_terms_scale_division_product_quotientstepprevious) + (pfc_value_division_product_quotientsteppreviousdiagonal))) /\ ((exists pfc_complement_division_product_quotientsteppreviousdiagonalterm pfc_left_division_product_quotientsteppreviousdiagonalterm pfc_right_division_product_quotientsteppreviousdiagonalterm. (((pfc_index_division_product_quotientsteppreviousdiagonal)+pfc_complement_division_product_quotientsteppreviousdiagonalterm=(pfd_index_division_product_quotient)) /\ ((((((exists pfa_gap_division_product_quotientsteppreviousdiagonaltermleftinside. pfa_gap_division_product_quotientsteppreviousdiagonaltermleftinside + S (pfc_index_division_product_quotientsteppreviousdiagonal) = (pfd_index_division_product_quotient)) /\ ((((exists ff_h_pfp_division_product_quotientsteppreviousdiagonaltermleftentry. ff_h_pfp_division_product_quotientsteppreviousdiagonaltermleftentry + S (pfc_left_division_product_quotientsteppreviousdiagonalterm) = S ((S (pfc_index_division_product_quotientsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_product_quotientsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_product_quotientsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_product_quotientsteppreviousdiagonal)) * qc) + (pfc_left_division_product_quotientsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_product_quotientsteppreviousdiagonaltermleftoutside. pfc_gap_division_product_quotientsteppreviousdiagonaltermleftoutside+(pfd_index_division_product_quotient)=(pfc_index_division_product_quotientsteppreviousdiagonal)) /\ (((pfc_left_division_product_quotientsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_product_quotientsteppreviousdiagonaltermrightinside. pfa_gap_division_product_quotientsteppreviousdiagonaltermrightinside + S (pfc_complement_division_product_quotientsteppreviousdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_product_quotientsteppreviousdiagonaltermrightentry. ff_h_pfp_division_product_quotientsteppreviousdiagonaltermrightentry + S (pfc_right_division_product_quotientsteppreviousdiagonalterm) = S ((S (pfc_complement_division_product_quotientsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_product_quotientsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_product_quotientsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_product_quotientsteppreviousdiagonalterm)) * bc) + (pfc_right_division_product_quotientsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_product_quotientsteppreviousdiagonaltermrightoutside. pfc_gap_division_product_quotientsteppreviousdiagonaltermrightoutside+(S d)=(pfc_complement_division_product_quotientsteppreviousdiagonalterm)) /\ (((pfc_right_division_product_quotientsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_product_quotientsteppreviousdiagonal)=pfc_left_division_product_quotientsteppreviousdiagonalterm*pfc_right_division_product_quotientsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_product_quotientstepprevioussum fs_v_pfc_division_product_quotientstepprevioussum. ((((exists fs_h_pfc_division_product_quotientstepprevioussum_body_start. fs_h_pfc_division_product_quotientstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_product_quotientstepprevioussum)) /\ exists fs_q_pfc_division_product_quotientstepprevioussum_body_start. fs_u_pfc_division_product_quotientstepprevioussum = fs_q_pfc_division_product_quotientstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_product_quotientstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_product_quotientstepprevioussum_body_terminal. fs_h_pfc_division_product_quotientstepprevioussum_body_terminal + S (pfc_natural_sum_division_product_quotientstepprevious) = S ((S (S (pfd_index_division_product_quotient))) * fs_v_pfc_division_product_quotientstepprevioussum)) /\ exists fs_q_pfc_division_product_quotientstepprevioussum_body_terminal. fs_u_pfc_division_product_quotientstepprevioussum = fs_q_pfc_division_product_quotientstepprevioussum_body_terminal * S ((S (S (pfd_index_division_product_quotient))) * fs_v_pfc_division_product_quotientstepprevioussum) + (pfc_natural_sum_division_product_quotientstepprevious))) /\ forall fs_i_pfc_division_product_quotientstepprevioussum_body_steps. (exists fs_lt_pfc_division_product_quotientstepprevioussum_body_steps_bound. fs_lt_pfc_division_product_quotientstepprevioussum_body_steps_bound + S fs_i_pfc_division_product_quotientstepprevioussum_body_steps = S (pfd_index_division_product_quotient)) -> exists fs_a_pfc_division_product_quotientstepprevioussum_body_steps fs_r_pfc_division_product_quotientstepprevioussum_body_steps fs_s_pfc_division_product_quotientstepprevioussum_body_steps. ((((exists fs_h_pfc_division_product_quotientstepprevioussum_body_steps_summand. fs_h_pfc_division_product_quotientstepprevioussum_body_steps_summand + S (fs_a_pfc_division_product_quotientstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_product_quotientstepprevioussum_body_steps)) * pfc_terms_scale_division_product_quotientstepprevious)) /\ exists fs_q_pfc_division_product_quotientstepprevioussum_body_steps_summand. pfc_terms_code_division_product_quotientstepprevious = fs_q_pfc_division_product_quotientstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_product_quotientstepprevioussum_body_steps)) * pfc_terms_scale_division_product_quotientstepprevious) + (fs_a_pfc_division_product_quotientstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_product_quotientstepprevioussum_body_steps_partial. fs_h_pfc_division_product_quotientstepprevioussum_body_steps_partial + S (fs_r_pfc_division_product_quotientstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_product_quotientstepprevioussum_body_steps)) * fs_v_pfc_division_product_quotientstepprevioussum)) /\ exists fs_q_pfc_division_product_quotientstepprevioussum_body_steps_partial. fs_u_pfc_division_product_quotientstepprevioussum = fs_q_pfc_division_product_quotientstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_product_quotientstepprevioussum_body_steps)) * fs_v_pfc_division_product_quotientstepprevioussum) + (fs_r_pfc_division_product_quotientstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_product_quotientstepprevioussum_body_steps_successor. fs_h_pfc_division_product_quotientstepprevioussum_body_steps_successor + S (fs_s_pfc_division_product_quotientstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_product_quotientstepprevioussum_body_steps)) * fs_v_pfc_division_product_quotientstepprevioussum)) /\ exists fs_q_pfc_division_product_quotientstepprevioussum_body_steps_successor. fs_u_pfc_division_product_quotientstepprevioussum = fs_q_pfc_division_product_quotientstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_product_quotientstepprevioussum_body_steps)) * fs_v_pfc_division_product_quotientstepprevioussum) + (fs_s_pfc_division_product_quotientstepprevioussum_body_steps))) /\ fs_s_pfc_division_product_quotientstepprevioussum_body_steps = fs_r_pfc_division_product_quotientstepprevioussum_body_steps + fs_a_pfc_division_product_quotientstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_product_quotientsteppreviousresiduebound. pfa_gap_division_product_quotientsteppreviousresiduebound + S (pfd_previous_division_product_quotientstep) = (p)) /\ ((exists pfa_offset_left_division_product_quotientsteppreviousresiduecongruence pfa_offset_right_division_product_quotientsteppreviousresiduecongruence. (pfc_natural_sum_division_product_quotientstepprevious) + (p) * pfa_offset_left_division_product_quotientsteppreviousresiduecongruence = (pfd_previous_division_product_quotientstep) + (p) * pfa_offset_right_division_product_quotientsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_product_quotientstepsubtractleft. pfa_gap_division_product_quotientstepsubtractleft + S (pfd_previous_division_product_quotientstep) = (p)) /\ (((exists pfa_gap_division_product_quotientstepsubtractright. pfa_gap_division_product_quotientstepsubtractright + S (pfd_difference_division_product_quotientstep) = (p)) /\ ((((exists pfa_gap_division_product_quotientstepsubtractresultbound. pfa_gap_division_product_quotientstepsubtractresultbound + S (pfd_input_division_product_quotientstep) = (p)) /\ ((exists pfa_offset_left_division_product_quotientstepsubtractresultcongruence pfa_offset_right_division_product_quotientstepsubtractresultcongruence. ((pfd_previous_division_product_quotientstep) + (pfd_difference_division_product_quotientstep)) + (p) * pfa_offset_left_division_product_quotientstepsubtractresultcongruence = (pfd_input_division_product_quotientstep) + (p) * pfa_offset_right_division_product_quotientstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_product_quotientstepmultiplyleft. pfa_gap_division_product_quotientstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_product_quotientstepmultiplyright. pfa_gap_division_product_quotientstepmultiplyright + S (pfd_difference_division_product_quotientstep) = (p)) /\ ((((exists pfa_gap_division_product_quotientstepmultiplyresultbound. pfa_gap_division_product_quotientstepmultiplyresultbound + S (pfd_value_division_product_quotient) = (p)) /\ ((exists pfa_offset_left_division_product_quotientstepmultiplyresultcongruence pfa_offset_right_division_product_quotientstepmultiplyresultcongruence. ((k) * (pfd_difference_division_product_quotientstep)) + (p) * pfa_offset_left_division_product_quotientstepmultiplyresultcongruence = (pfd_value_division_product_quotient) + (p) * pfa_offset_right_division_product_quotientstepmultiplyresultcongruence))))))))))))))))))) -> (forall pfc_index_division_product_ambient. (exists pfa_gap_division_product_ambientbound. pfa_gap_division_product_ambientbound + S (pfc_index_division_product_ambient) = (L)) -> exists pfc_value_division_product_ambient. ((((exists ff_h_pfp_division_product_ambiententry. ff_h_pfp_division_product_ambiententry + S (pfc_value_division_product_ambient) = S ((S (pfc_index_division_product_ambient)) * pc)) /\ exists ff_q_pfp_division_product_ambiententry. pb = ff_q_pfp_division_product_ambiententry * S ((S (pfc_index_division_product_ambient)) * pc) + (pfc_value_division_product_ambient))) /\ ((exists pfc_terms_code_division_product_ambientcoefficient pfc_terms_scale_division_product_ambientcoefficient pfc_natural_sum_division_product_ambientcoefficient. ((forall pfc_index_division_product_ambientcoefficientdiagonal. (exists pfa_gap_division_product_ambientcoefficientdiagonalbound. pfa_gap_division_product_ambientcoefficientdiagonalbound + S (pfc_index_division_product_ambientcoefficientdiagonal) = (S (pfc_index_division_product_ambient))) -> exists pfc_value_division_product_ambientcoefficientdiagonal. ((((exists ff_h_pfp_division_product_ambientcoefficientdiagonalentry. ff_h_pfp_division_product_ambientcoefficientdiagonalentry + S (pfc_value_division_product_ambientcoefficientdiagonal) = S ((S (pfc_index_division_product_ambientcoefficientdiagonal)) * pfc_terms_scale_division_product_ambientcoefficient)) /\ exists ff_q_pfp_division_product_ambientcoefficientdiagonalentry. pfc_terms_code_division_product_ambientcoefficient = ff_q_pfp_division_product_ambientcoefficientdiagonalentry * S ((S (pfc_index_division_product_ambientcoefficientdiagonal)) * pfc_terms_scale_division_product_ambientcoefficient) + (pfc_value_division_product_ambientcoefficientdiagonal))) /\ ((exists pfc_complement_division_product_ambientcoefficientdiagonalterm pfc_left_division_product_ambientcoefficientdiagonalterm pfc_right_division_product_ambientcoefficientdiagonalterm. (((pfc_index_division_product_ambientcoefficientdiagonal)+pfc_complement_division_product_ambientcoefficientdiagonalterm=(pfc_index_division_product_ambient)) /\ ((((((exists pfa_gap_division_product_ambientcoefficientdiagonaltermleftinside. pfa_gap_division_product_ambientcoefficientdiagonaltermleftinside + S (pfc_index_division_product_ambientcoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_division_product_ambientcoefficientdiagonaltermleftentry. ff_h_pfp_division_product_ambientcoefficientdiagonaltermleftentry + S (pfc_left_division_product_ambientcoefficientdiagonalterm) = S ((S (pfc_index_division_product_ambientcoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_product_ambientcoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_product_ambientcoefficientdiagonaltermleftentry * S ((S (pfc_index_division_product_ambientcoefficientdiagonal)) * qc) + (pfc_left_division_product_ambientcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_product_ambientcoefficientdiagonaltermleftoutside. pfc_gap_division_product_ambientcoefficientdiagonaltermleftoutside+(q)=(pfc_index_division_product_ambientcoefficientdiagonal)) /\ (((pfc_left_division_product_ambientcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_product_ambientcoefficientdiagonaltermrightinside. pfa_gap_division_product_ambientcoefficientdiagonaltermrightinside + S (pfc_complement_division_product_ambientcoefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_product_ambientcoefficientdiagonaltermrightentry. ff_h_pfp_division_product_ambientcoefficientdiagonaltermrightentry + S (pfc_right_division_product_ambientcoefficientdiagonalterm) = S ((S (pfc_complement_division_product_ambientcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_product_ambientcoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_product_ambientcoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_product_ambientcoefficientdiagonalterm)) * bc) + (pfc_right_division_product_ambientcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_product_ambientcoefficientdiagonaltermrightoutside. pfc_gap_division_product_ambientcoefficientdiagonaltermrightoutside+(S d)=(pfc_complement_division_product_ambientcoefficientdiagonalterm)) /\ (((pfc_right_division_product_ambientcoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_product_ambientcoefficientdiagonal)=pfc_left_division_product_ambientcoefficientdiagonalterm*pfc_right_division_product_ambientcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_product_ambientcoefficientsum fs_v_pfc_division_product_ambientcoefficientsum. ((((exists fs_h_pfc_division_product_ambientcoefficientsum_body_start. fs_h_pfc_division_product_ambientcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_product_ambientcoefficientsum)) /\ exists fs_q_pfc_division_product_ambientcoefficientsum_body_start. fs_u_pfc_division_product_ambientcoefficientsum = fs_q_pfc_division_product_ambientcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_product_ambientcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_product_ambientcoefficientsum_body_terminal. fs_h_pfc_division_product_ambientcoefficientsum_body_terminal + S (pfc_natural_sum_division_product_ambientcoefficient) = S ((S (S (pfc_index_division_product_ambient))) * fs_v_pfc_division_product_ambientcoefficientsum)) /\ exists fs_q_pfc_division_product_ambientcoefficientsum_body_terminal. fs_u_pfc_division_product_ambientcoefficientsum = fs_q_pfc_division_product_ambientcoefficientsum_body_terminal * S ((S (S (pfc_index_division_product_ambient))) * fs_v_pfc_division_product_ambientcoefficientsum) + (pfc_natural_sum_division_product_ambientcoefficient))) /\ forall fs_i_pfc_division_product_ambientcoefficientsum_body_steps. (exists fs_lt_pfc_division_product_ambientcoefficientsum_body_steps_bound. fs_lt_pfc_division_product_ambientcoefficientsum_body_steps_bound + S fs_i_pfc_division_product_ambientcoefficientsum_body_steps = S (pfc_index_division_product_ambient)) -> exists fs_a_pfc_division_product_ambientcoefficientsum_body_steps fs_r_pfc_division_product_ambientcoefficientsum_body_steps fs_s_pfc_division_product_ambientcoefficientsum_body_steps. ((((exists fs_h_pfc_division_product_ambientcoefficientsum_body_steps_summand. fs_h_pfc_division_product_ambientcoefficientsum_body_steps_summand + S (fs_a_pfc_division_product_ambientcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_product_ambientcoefficientsum_body_steps)) * pfc_terms_scale_division_product_ambientcoefficient)) /\ exists fs_q_pfc_division_product_ambientcoefficientsum_body_steps_summand. pfc_terms_code_division_product_ambientcoefficient = fs_q_pfc_division_product_ambientcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_product_ambientcoefficientsum_body_steps)) * pfc_terms_scale_division_product_ambientcoefficient) + (fs_a_pfc_division_product_ambientcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_product_ambientcoefficientsum_body_steps_partial. fs_h_pfc_division_product_ambientcoefficientsum_body_steps_partial + S (fs_r_pfc_division_product_ambientcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_product_ambientcoefficientsum_body_steps)) * fs_v_pfc_division_product_ambientcoefficientsum)) /\ exists fs_q_pfc_division_product_ambientcoefficientsum_body_steps_partial. fs_u_pfc_division_product_ambientcoefficientsum = fs_q_pfc_division_product_ambientcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_product_ambientcoefficientsum_body_steps)) * fs_v_pfc_division_product_ambientcoefficientsum) + (fs_r_pfc_division_product_ambientcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_product_ambientcoefficientsum_body_steps_successor. fs_h_pfc_division_product_ambientcoefficientsum_body_steps_successor + S (fs_s_pfc_division_product_ambientcoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_product_ambientcoefficientsum_body_steps)) * fs_v_pfc_division_product_ambientcoefficientsum)) /\ exists fs_q_pfc_division_product_ambientcoefficientsum_body_steps_successor. fs_u_pfc_division_product_ambientcoefficientsum = fs_q_pfc_division_product_ambientcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_product_ambientcoefficientsum_body_steps)) * fs_v_pfc_division_product_ambientcoefficientsum) + (fs_s_pfc_division_product_ambientcoefficientsum_body_steps))) /\ fs_s_pfc_division_product_ambientcoefficientsum_body_steps = fs_r_pfc_division_product_ambientcoefficientsum_body_steps + fs_a_pfc_division_product_ambientcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_product_ambientcoefficientresiduebound. pfa_gap_division_product_ambientcoefficientresiduebound + S (pfc_value_division_product_ambient) = (p)) /\ ((exists pfa_offset_left_division_product_ambientcoefficientresiduecongruence pfa_offset_right_division_product_ambientcoefficientresiduecongruence. (pfc_natural_sum_division_product_ambientcoefficient) + (p) * pfa_offset_left_division_product_ambientcoefficientresiduecongruence = (pfc_value_division_product_ambient) + (p) * pfa_offset_right_division_product_ambientcoefficientresiduecongruence)))))))))))) -> (((forall fom_index_pfp_division_product_actualleft. (exists fom_gap_pfp_division_product_actualleft_index_bound. fom_gap_pfp_division_product_actualleft_index_bound + S (fom_index_pfp_division_product_actualleft) = q) -> exists fom_value_pfp_division_product_actualleft. ((((exists fom_beta_height_pfp_division_product_actualleft_entry. fom_beta_height_pfp_division_product_actualleft_entry + S (fom_value_pfp_division_product_actualleft) = S ((S (fom_index_pfp_division_product_actualleft)) * qc)) /\ exists fom_beta_quotient_pfp_division_product_actualleft_entry. qb = fom_beta_quotient_pfp_division_product_actualleft_entry * S ((S (fom_index_pfp_division_product_actualleft)) * qc) + (fom_value_pfp_division_product_actualleft))) /\ (exists fom_gap_pfp_division_product_actualleft_value_bound. fom_gap_pfp_division_product_actualleft_value_bound + S (fom_value_pfp_division_product_actualleft) = p))) /\ (((forall fom_index_pfp_division_product_actualright. (exists fom_gap_pfp_division_product_actualright_index_bound. fom_gap_pfp_division_product_actualright_index_bound + S (fom_index_pfp_division_product_actualright) = S d) -> exists fom_value_pfp_division_product_actualright. ((((exists fom_beta_height_pfp_division_product_actualright_entry. fom_beta_height_pfp_division_product_actualright_entry + S (fom_value_pfp_division_product_actualright) = S ((S (fom_index_pfp_division_product_actualright)) * bc)) /\ exists fom_beta_quotient_pfp_division_product_actualright_entry. bb = fom_beta_quotient_pfp_division_product_actualright_entry * S ((S (fom_index_pfp_division_product_actualright)) * bc) + (fom_value_pfp_division_product_actualright))) /\ (exists fom_gap_pfp_division_product_actualright_value_bound. fom_gap_pfp_division_product_actualright_value_bound + S (fom_value_pfp_division_product_actualright) = p))) /\ (((((((q)=0 \/ (S d)=0) /\ (((L)=0)))) \/ (((~((q)=0)) /\ (((~((S d)=0)) /\ (((q)+(S d)=S (L)))))))) /\ ((forall pfc_index_division_product_actualcoefficients. (exists pfa_gap_division_product_actualcoefficientsbound. pfa_gap_division_product_actualcoefficientsbound + S (pfc_index_division_product_actualcoefficients) = (L)) -> exists pfc_value_division_product_actualcoefficients. ((((exists ff_h_pfp_division_product_actualcoefficientsentry. ff_h_pfp_division_product_actualcoefficientsentry + S (pfc_value_division_product_actualcoefficients) = S ((S (pfc_index_division_product_actualcoefficients)) * pc)) /\ exists ff_q_pfp_division_product_actualcoefficientsentry. pb = ff_q_pfp_division_product_actualcoefficientsentry * S ((S (pfc_index_division_product_actualcoefficients)) * pc) + (pfc_value_division_product_actualcoefficients))) /\ ((exists pfc_terms_code_division_product_actualcoefficientscoefficient pfc_terms_scale_division_product_actualcoefficientscoefficient pfc_natural_sum_division_product_actualcoefficientscoefficient. ((forall pfc_index_division_product_actualcoefficientscoefficientdiagonal. (exists pfa_gap_division_product_actualcoefficientscoefficientdiagonalbound. pfa_gap_division_product_actualcoefficientscoefficientdiagonalbound + S (pfc_index_division_product_actualcoefficientscoefficientdiagonal) = (S (pfc_index_division_product_actualcoefficients))) -> exists pfc_value_division_product_actualcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_division_product_actualcoefficientscoefficientdiagonalentry. ff_h_pfp_division_product_actualcoefficientscoefficientdiagonalentry + S (pfc_value_division_product_actualcoefficientscoefficientdiagonal) = S ((S (pfc_index_division_product_actualcoefficientscoefficientdiagonal)) * pfc_terms_scale_division_product_actualcoefficientscoefficient)) /\ exists ff_q_pfp_division_product_actualcoefficientscoefficientdiagonalentry. pfc_terms_code_division_product_actualcoefficientscoefficient = ff_q_pfp_division_product_actualcoefficientscoefficientdiagonalentry * S ((S (pfc_index_division_product_actualcoefficientscoefficientdiagonal)) * pfc_terms_scale_division_product_actualcoefficientscoefficient) + (pfc_value_division_product_actualcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_division_product_actualcoefficientscoefficientdiagonalterm pfc_left_division_product_actualcoefficientscoefficientdiagonalterm pfc_right_division_product_actualcoefficientscoefficientdiagonalterm. (((pfc_index_division_product_actualcoefficientscoefficientdiagonal)+pfc_complement_division_product_actualcoefficientscoefficientdiagonalterm=(pfc_index_division_product_actualcoefficients)) /\ ((((((exists pfa_gap_division_product_actualcoefficientscoefficientdiagonaltermleftinside. pfa_gap_division_product_actualcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_division_product_actualcoefficientscoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_division_product_actualcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_division_product_actualcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_division_product_actualcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_division_product_actualcoefficientscoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_product_actualcoefficientscoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_product_actualcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_division_product_actualcoefficientscoefficientdiagonal)) * qc) + (pfc_left_division_product_actualcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_product_actualcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_division_product_actualcoefficientscoefficientdiagonaltermleftoutside+(q)=(pfc_index_division_product_actualcoefficientscoefficientdiagonal)) /\ (((pfc_left_division_product_actualcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_product_actualcoefficientscoefficientdiagonaltermrightinside. pfa_gap_division_product_actualcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_division_product_actualcoefficientscoefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_product_actualcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_division_product_actualcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_division_product_actualcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_division_product_actualcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_product_actualcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_product_actualcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_product_actualcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_division_product_actualcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_product_actualcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_division_product_actualcoefficientscoefficientdiagonaltermrightoutside+(S d)=(pfc_complement_division_product_actualcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_division_product_actualcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_product_actualcoefficientscoefficientdiagonal)=pfc_left_division_product_actualcoefficientscoefficientdiagonalterm*pfc_right_division_product_actualcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_product_actualcoefficientscoefficientsum fs_v_pfc_division_product_actualcoefficientscoefficientsum. ((((exists fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_start. fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_product_actualcoefficientscoefficientsum)) /\ exists fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_start. fs_u_pfc_division_product_actualcoefficientscoefficientsum = fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_product_actualcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_terminal. fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_division_product_actualcoefficientscoefficient) = S ((S (S (pfc_index_division_product_actualcoefficients))) * fs_v_pfc_division_product_actualcoefficientscoefficientsum)) /\ exists fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_terminal. fs_u_pfc_division_product_actualcoefficientscoefficientsum = fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_division_product_actualcoefficients))) * fs_v_pfc_division_product_actualcoefficientscoefficientsum) + (pfc_natural_sum_division_product_actualcoefficientscoefficient))) /\ forall fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_division_product_actualcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_division_product_actualcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps = S (pfc_index_division_product_actualcoefficients)) -> exists fs_a_pfc_division_product_actualcoefficientscoefficientsum_body_steps fs_r_pfc_division_product_actualcoefficientscoefficientsum_body_steps fs_s_pfc_division_product_actualcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_division_product_actualcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_division_product_actualcoefficientscoefficient)) /\ exists fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_division_product_actualcoefficientscoefficient = fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_division_product_actualcoefficientscoefficient) + (fs_a_pfc_division_product_actualcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_division_product_actualcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps)) * fs_v_pfc_division_product_actualcoefficientscoefficientsum)) /\ exists fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_division_product_actualcoefficientscoefficientsum = fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps)) * fs_v_pfc_division_product_actualcoefficientscoefficientsum) + (fs_r_pfc_division_product_actualcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_division_product_actualcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_division_product_actualcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps)) * fs_v_pfc_division_product_actualcoefficientscoefficientsum)) /\ exists fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_division_product_actualcoefficientscoefficientsum = fs_q_pfc_division_product_actualcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_product_actualcoefficientscoefficientsum_body_steps)) * fs_v_pfc_division_product_actualcoefficientscoefficientsum) + (fs_s_pfc_division_product_actualcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_division_product_actualcoefficientscoefficientsum_body_steps = fs_r_pfc_division_product_actualcoefficientscoefficientsum_body_steps + fs_a_pfc_division_product_actualcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_product_actualcoefficientscoefficientresiduebound. pfa_gap_division_product_actualcoefficientscoefficientresiduebound + S (pfc_value_division_product_actualcoefficients) = (p)) /\ ((exists pfa_offset_left_division_product_actualcoefficientscoefficientresiduecongruence pfa_offset_right_division_product_actualcoefficientscoefficientresiduecongruence. (pfc_natural_sum_division_product_actualcoefficientscoefficient) + (p) * pfa_offset_left_division_product_actualcoefficientscoefficientresiduecongruence = (pfc_value_division_product_actualcoefficients) + (p) * pfa_offset_right_division_product_actualcoefficientscoefficientresiduecongruence)))))))))))))))))))

Constructive proof overview

Generated structural guide

For a nonempty quotient the actual ambient product is the actual proper polynomial convolution, not a Horner or synthetic surrogate.

The unchanged tactic script uses 2 declared prerequisites and contains 41 exact native proof lines.

Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

41 script commands · 9 reading checkpoints · 0 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

Named ingredients (2)
01Fix variables and assumptionsL1–10

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro p
  2. L2
    intro k
  3. L3
    intro ab
  4. L4
    intro ac
  5. L5
    intro bb
  6. L6
    intro bc
  7. L7
    intro d
  8. L8
    intro qb
  9. L9
    intro qc
  10. L10
    intro q
02Fix variables and assumptionsL11–18

Work with arbitrary variables or the premises of the current implication.

  1. L11
    intro pb
  2. L12
    intro pc
  3. L13
    intro L
  4. L14
    intro hlen
  5. L15
    intro hpositive
  6. L16
    intro hb
  7. L17
    intro hq
  8. L18
    intro hproduct
03Separate the logical casesL19–19

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L19
    split
04Use earlier factsL20–29

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L20
    specialize prime_field_polynomial_quotient_prefix_bounded (p)
  2. L21
    specialize prime_field_polynomial_quotient_prefix_bounded (k)
  3. L22
    specialize prime_field_polynomial_quotient_prefix_bounded (ab)
  4. L23
    specialize prime_field_polynomial_quotient_prefix_bounded (ac)
  5. L24
    specialize prime_field_polynomial_quotient_prefix_bounded (bb)
  6. L25
    specialize prime_field_polynomial_quotient_prefix_bounded (bc)
  7. L26
    specialize prime_field_polynomial_quotient_prefix_bounded (S d)
  8. L27
    specialize prime_field_polynomial_quotient_prefix_bounded (qb)
  9. L28
    specialize prime_field_polynomial_quotient_prefix_bounded (qc)
  10. L29
    specialize prime_field_polynomial_quotient_prefix_bounded (q)
05Use earlier factsL30–31

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L30
    apply prime_field_polynomial_quotient_prefix_bounded
  2. L31
    exact hq
06Separate the logical casesL32–32

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L32
    split
07Use earlier factsL33–33

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L33
    exact hb
08Separate the logical casesL34–34

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L34
    split
09Use earlier factsL35–41

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L35
    specialize polynomial_quotient_length_product (L)
  2. L36
    specialize polynomial_quotient_length_product (d)
  3. L37
    specialize polynomial_quotient_length_product (q)
  4. L38
    apply polynomial_quotient_length_product
  5. L39
    exact hlen
  6. L40
    exact hpositive
  7. L41
    exact hproduct

Library-wide reading audit

Original exact command ledger · 41 lines
  1. 0001intro p
  2. 0002intro k
  3. 0003intro ab
  4. 0004intro ac
  5. 0005intro bb
  6. 0006intro bc
  7. 0007intro d
  8. 0008intro qb
  9. 0009intro qc
  10. 0010intro q
  11. 0011intro pb
  12. 0012intro pc
  13. 0013intro L
  14. 0014intro hlen
  15. 0015intro hpositive
  16. 0016intro hb
  17. 0017intro hq
  18. 0018intro hproduct
  19. 0019split
  20. 0020specialize prime_field_polynomial_quotient_prefix_bounded (p)
  21. 0021specialize prime_field_polynomial_quotient_prefix_bounded (k)
  22. 0022specialize prime_field_polynomial_quotient_prefix_bounded (ab)
  23. 0023specialize prime_field_polynomial_quotient_prefix_bounded (ac)
  24. 0024specialize prime_field_polynomial_quotient_prefix_bounded (bb)
  25. 0025specialize prime_field_polynomial_quotient_prefix_bounded (bc)
  26. 0026specialize prime_field_polynomial_quotient_prefix_bounded (S d)
  27. 0027specialize prime_field_polynomial_quotient_prefix_bounded (qb)
  28. 0028specialize prime_field_polynomial_quotient_prefix_bounded (qc)
  29. 0029specialize prime_field_polynomial_quotient_prefix_bounded (q)
  30. 0030apply prime_field_polynomial_quotient_prefix_bounded
  31. 0031exact hq
  32. 0032split
  33. 0033exact hb
  34. 0034split
  35. 0035specialize polynomial_quotient_length_product (L)
  36. 0036specialize polynomial_quotient_length_product (d)
  37. 0037specialize polynomial_quotient_length_product (q)
  38. 0038apply polynomial_quotient_length_product
  39. 0039exact hlen
  40. 0040exact hpositive
  41. 0041exact hproduct