PX0030

prime_field_polynomial_quotient_prefix_product_matches

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

The actual ambient product table agrees with the input throughout the computed quotient prefix, including the vacuous zero-length case.

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 N b pb pc L. (~((p) = 1) /\ forall pfa_factor_left_division_match_table_prime pfa_factor_right_division_match_table_prime. (p) = pfa_factor_left_division_match_table_prime * pfa_factor_right_division_match_table_prime -> pfa_factor_left_division_match_table_prime = 1 \/ pfa_factor_right_division_match_table_prime = 1) -> (((exists ff_h_pfp_division_match_table_head. ff_h_pfp_division_match_table_head + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_division_match_table_head. bb = ff_q_pfp_division_match_table_head * S ((S (0)) * bc) + (b))) -> (((~((b) = 0)) /\ ((((exists pfa_gap_division_match_table_inversemultiplicationleft. pfa_gap_division_match_table_inversemultiplicationleft + S (b) = (p)) /\ (((exists pfa_gap_division_match_table_inversemultiplicationright. pfa_gap_division_match_table_inversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_division_match_table_inversemultiplicationresultbound. pfa_gap_division_match_table_inversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_division_match_table_inversemultiplicationresultcongruence pfa_offset_right_division_match_table_inversemultiplicationresultcongruence. ((b) * (k)) + (p) * pfa_offset_left_division_match_table_inversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_division_match_table_inversemultiplicationresultcongruence)))))))))))) -> (forall pfd_index_division_match_table_execution. (exists pfa_gap_division_match_table_executionbound. pfa_gap_division_match_table_executionbound + S (pfd_index_division_match_table_execution) = (N)) -> exists pfd_value_division_match_table_execution. ((((exists ff_h_pfp_division_match_table_executionentry. ff_h_pfp_division_match_table_executionentry + S (pfd_value_division_match_table_execution) = S ((S (pfd_index_division_match_table_execution)) * qc)) /\ exists ff_q_pfp_division_match_table_executionentry. qb = ff_q_pfp_division_match_table_executionentry * S ((S (pfd_index_division_match_table_execution)) * qc) + (pfd_value_division_match_table_execution))) /\ ((exists pfd_input_division_match_table_executionstep pfd_previous_division_match_table_executionstep pfd_difference_division_match_table_executionstep. ((((exists ff_h_pfp_division_match_table_executionstepinput. ff_h_pfp_division_match_table_executionstepinput + S (pfd_input_division_match_table_executionstep) = S ((S (pfd_index_division_match_table_execution)) * ac)) /\ exists ff_q_pfp_division_match_table_executionstepinput. ab = ff_q_pfp_division_match_table_executionstepinput * S ((S (pfd_index_division_match_table_execution)) * ac) + (pfd_input_division_match_table_executionstep))) /\ (((exists pfc_terms_code_division_match_table_executionstepprevious pfc_terms_scale_division_match_table_executionstepprevious pfc_natural_sum_division_match_table_executionstepprevious. ((forall pfc_index_division_match_table_executionsteppreviousdiagonal. (exists pfa_gap_division_match_table_executionsteppreviousdiagonalbound. pfa_gap_division_match_table_executionsteppreviousdiagonalbound + S (pfc_index_division_match_table_executionsteppreviousdiagonal) = (S (pfd_index_division_match_table_execution))) -> exists pfc_value_division_match_table_executionsteppreviousdiagonal. ((((exists ff_h_pfp_division_match_table_executionsteppreviousdiagonalentry. ff_h_pfp_division_match_table_executionsteppreviousdiagonalentry + S (pfc_value_division_match_table_executionsteppreviousdiagonal) = S ((S (pfc_index_division_match_table_executionsteppreviousdiagonal)) * pfc_terms_scale_division_match_table_executionstepprevious)) /\ exists ff_q_pfp_division_match_table_executionsteppreviousdiagonalentry. pfc_terms_code_division_match_table_executionstepprevious = ff_q_pfp_division_match_table_executionsteppreviousdiagonalentry * S ((S (pfc_index_division_match_table_executionsteppreviousdiagonal)) * pfc_terms_scale_division_match_table_executionstepprevious) + (pfc_value_division_match_table_executionsteppreviousdiagonal))) /\ ((exists pfc_complement_division_match_table_executionsteppreviousdiagonalterm pfc_left_division_match_table_executionsteppreviousdiagonalterm pfc_right_division_match_table_executionsteppreviousdiagonalterm. (((pfc_index_division_match_table_executionsteppreviousdiagonal)+pfc_complement_division_match_table_executionsteppreviousdiagonalterm=(pfd_index_division_match_table_execution)) /\ ((((((exists pfa_gap_division_match_table_executionsteppreviousdiagonaltermleftinside. pfa_gap_division_match_table_executionsteppreviousdiagonaltermleftinside + S (pfc_index_division_match_table_executionsteppreviousdiagonal) = (pfd_index_division_match_table_execution)) /\ ((((exists ff_h_pfp_division_match_table_executionsteppreviousdiagonaltermleftentry. ff_h_pfp_division_match_table_executionsteppreviousdiagonaltermleftentry + S (pfc_left_division_match_table_executionsteppreviousdiagonalterm) = S ((S (pfc_index_division_match_table_executionsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_table_executionsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_match_table_executionsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_match_table_executionsteppreviousdiagonal)) * qc) + (pfc_left_division_match_table_executionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_match_table_executionsteppreviousdiagonaltermleftoutside. pfc_gap_division_match_table_executionsteppreviousdiagonaltermleftoutside+(pfd_index_division_match_table_execution)=(pfc_index_division_match_table_executionsteppreviousdiagonal)) /\ (((pfc_left_division_match_table_executionsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_table_executionsteppreviousdiagonaltermrightinside. pfa_gap_division_match_table_executionsteppreviousdiagonaltermrightinside + S (pfc_complement_division_match_table_executionsteppreviousdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_table_executionsteppreviousdiagonaltermrightentry. ff_h_pfp_division_match_table_executionsteppreviousdiagonaltermrightentry + S (pfc_right_division_match_table_executionsteppreviousdiagonalterm) = S ((S (pfc_complement_division_match_table_executionsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_table_executionsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_match_table_executionsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_match_table_executionsteppreviousdiagonalterm)) * bc) + (pfc_right_division_match_table_executionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_match_table_executionsteppreviousdiagonaltermrightoutside. pfc_gap_division_match_table_executionsteppreviousdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_table_executionsteppreviousdiagonalterm)) /\ (((pfc_right_division_match_table_executionsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_match_table_executionsteppreviousdiagonal)=pfc_left_division_match_table_executionsteppreviousdiagonalterm*pfc_right_division_match_table_executionsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_table_executionstepprevioussum fs_v_pfc_division_match_table_executionstepprevioussum. ((((exists fs_h_pfc_division_match_table_executionstepprevioussum_body_start. fs_h_pfc_division_match_table_executionstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_table_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_table_executionstepprevioussum_body_start. fs_u_pfc_division_match_table_executionstepprevioussum = fs_q_pfc_division_match_table_executionstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_match_table_executionstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_match_table_executionstepprevioussum_body_terminal. fs_h_pfc_division_match_table_executionstepprevioussum_body_terminal + S (pfc_natural_sum_division_match_table_executionstepprevious) = S ((S (S (pfd_index_division_match_table_execution))) * fs_v_pfc_division_match_table_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_table_executionstepprevioussum_body_terminal. fs_u_pfc_division_match_table_executionstepprevioussum = fs_q_pfc_division_match_table_executionstepprevioussum_body_terminal * S ((S (S (pfd_index_division_match_table_execution))) * fs_v_pfc_division_match_table_executionstepprevioussum) + (pfc_natural_sum_division_match_table_executionstepprevious))) /\ forall fs_i_pfc_division_match_table_executionstepprevioussum_body_steps. (exists fs_lt_pfc_division_match_table_executionstepprevioussum_body_steps_bound. fs_lt_pfc_division_match_table_executionstepprevioussum_body_steps_bound + S fs_i_pfc_division_match_table_executionstepprevioussum_body_steps = S (pfd_index_division_match_table_execution)) -> exists fs_a_pfc_division_match_table_executionstepprevioussum_body_steps fs_r_pfc_division_match_table_executionstepprevioussum_body_steps fs_s_pfc_division_match_table_executionstepprevioussum_body_steps. ((((exists fs_h_pfc_division_match_table_executionstepprevioussum_body_steps_summand. fs_h_pfc_division_match_table_executionstepprevioussum_body_steps_summand + S (fs_a_pfc_division_match_table_executionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_match_table_executionstepprevioussum_body_steps)) * pfc_terms_scale_division_match_table_executionstepprevious)) /\ exists fs_q_pfc_division_match_table_executionstepprevioussum_body_steps_summand. pfc_terms_code_division_match_table_executionstepprevious = fs_q_pfc_division_match_table_executionstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_match_table_executionstepprevioussum_body_steps)) * pfc_terms_scale_division_match_table_executionstepprevious) + (fs_a_pfc_division_match_table_executionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_match_table_executionstepprevioussum_body_steps_partial. fs_h_pfc_division_match_table_executionstepprevioussum_body_steps_partial + S (fs_r_pfc_division_match_table_executionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_match_table_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_table_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_table_executionstepprevioussum_body_steps_partial. fs_u_pfc_division_match_table_executionstepprevioussum = fs_q_pfc_division_match_table_executionstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_match_table_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_table_executionstepprevioussum) + (fs_r_pfc_division_match_table_executionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_match_table_executionstepprevioussum_body_steps_successor. fs_h_pfc_division_match_table_executionstepprevioussum_body_steps_successor + S (fs_s_pfc_division_match_table_executionstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_match_table_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_table_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_table_executionstepprevioussum_body_steps_successor. fs_u_pfc_division_match_table_executionstepprevioussum = fs_q_pfc_division_match_table_executionstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_match_table_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_table_executionstepprevioussum) + (fs_s_pfc_division_match_table_executionstepprevioussum_body_steps))) /\ fs_s_pfc_division_match_table_executionstepprevioussum_body_steps = fs_r_pfc_division_match_table_executionstepprevioussum_body_steps + fs_a_pfc_division_match_table_executionstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_match_table_executionsteppreviousresiduebound. pfa_gap_division_match_table_executionsteppreviousresiduebound + S (pfd_previous_division_match_table_executionstep) = (p)) /\ ((exists pfa_offset_left_division_match_table_executionsteppreviousresiduecongruence pfa_offset_right_division_match_table_executionsteppreviousresiduecongruence. (pfc_natural_sum_division_match_table_executionstepprevious) + (p) * pfa_offset_left_division_match_table_executionsteppreviousresiduecongruence = (pfd_previous_division_match_table_executionstep) + (p) * pfa_offset_right_division_match_table_executionsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_match_table_executionstepsubtractleft. pfa_gap_division_match_table_executionstepsubtractleft + S (pfd_previous_division_match_table_executionstep) = (p)) /\ (((exists pfa_gap_division_match_table_executionstepsubtractright. pfa_gap_division_match_table_executionstepsubtractright + S (pfd_difference_division_match_table_executionstep) = (p)) /\ ((((exists pfa_gap_division_match_table_executionstepsubtractresultbound. pfa_gap_division_match_table_executionstepsubtractresultbound + S (pfd_input_division_match_table_executionstep) = (p)) /\ ((exists pfa_offset_left_division_match_table_executionstepsubtractresultcongruence pfa_offset_right_division_match_table_executionstepsubtractresultcongruence. ((pfd_previous_division_match_table_executionstep) + (pfd_difference_division_match_table_executionstep)) + (p) * pfa_offset_left_division_match_table_executionstepsubtractresultcongruence = (pfd_input_division_match_table_executionstep) + (p) * pfa_offset_right_division_match_table_executionstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_match_table_executionstepmultiplyleft. pfa_gap_division_match_table_executionstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_match_table_executionstepmultiplyright. pfa_gap_division_match_table_executionstepmultiplyright + S (pfd_difference_division_match_table_executionstep) = (p)) /\ ((((exists pfa_gap_division_match_table_executionstepmultiplyresultbound. pfa_gap_division_match_table_executionstepmultiplyresultbound + S (pfd_value_division_match_table_execution) = (p)) /\ ((exists pfa_offset_left_division_match_table_executionstepmultiplyresultcongruence pfa_offset_right_division_match_table_executionstepmultiplyresultcongruence. ((k) * (pfd_difference_division_match_table_executionstep)) + (p) * pfa_offset_left_division_match_table_executionstepmultiplyresultcongruence = (pfd_value_division_match_table_execution) + (p) * pfa_offset_right_division_match_table_executionstepmultiplyresultcongruence))))))))))))))))))) -> (exists pfc_gap_division_match_table_length. pfc_gap_division_match_table_length+(N)=(L)) -> (forall pfc_index_division_match_table_product. (exists pfa_gap_division_match_table_productbound. pfa_gap_division_match_table_productbound + S (pfc_index_division_match_table_product) = (L)) -> exists pfc_value_division_match_table_product. ((((exists ff_h_pfp_division_match_table_productentry. ff_h_pfp_division_match_table_productentry + S (pfc_value_division_match_table_product) = S ((S (pfc_index_division_match_table_product)) * pc)) /\ exists ff_q_pfp_division_match_table_productentry. pb = ff_q_pfp_division_match_table_productentry * S ((S (pfc_index_division_match_table_product)) * pc) + (pfc_value_division_match_table_product))) /\ ((exists pfc_terms_code_division_match_table_productcoefficient pfc_terms_scale_division_match_table_productcoefficient pfc_natural_sum_division_match_table_productcoefficient. ((forall pfc_index_division_match_table_productcoefficientdiagonal. (exists pfa_gap_division_match_table_productcoefficientdiagonalbound. pfa_gap_division_match_table_productcoefficientdiagonalbound + S (pfc_index_division_match_table_productcoefficientdiagonal) = (S (pfc_index_division_match_table_product))) -> exists pfc_value_division_match_table_productcoefficientdiagonal. ((((exists ff_h_pfp_division_match_table_productcoefficientdiagonalentry. ff_h_pfp_division_match_table_productcoefficientdiagonalentry + S (pfc_value_division_match_table_productcoefficientdiagonal) = S ((S (pfc_index_division_match_table_productcoefficientdiagonal)) * pfc_terms_scale_division_match_table_productcoefficient)) /\ exists ff_q_pfp_division_match_table_productcoefficientdiagonalentry. pfc_terms_code_division_match_table_productcoefficient = ff_q_pfp_division_match_table_productcoefficientdiagonalentry * S ((S (pfc_index_division_match_table_productcoefficientdiagonal)) * pfc_terms_scale_division_match_table_productcoefficient) + (pfc_value_division_match_table_productcoefficientdiagonal))) /\ ((exists pfc_complement_division_match_table_productcoefficientdiagonalterm pfc_left_division_match_table_productcoefficientdiagonalterm pfc_right_division_match_table_productcoefficientdiagonalterm. (((pfc_index_division_match_table_productcoefficientdiagonal)+pfc_complement_division_match_table_productcoefficientdiagonalterm=(pfc_index_division_match_table_product)) /\ ((((((exists pfa_gap_division_match_table_productcoefficientdiagonaltermleftinside. pfa_gap_division_match_table_productcoefficientdiagonaltermleftinside + S (pfc_index_division_match_table_productcoefficientdiagonal) = (N)) /\ ((((exists ff_h_pfp_division_match_table_productcoefficientdiagonaltermleftentry. ff_h_pfp_division_match_table_productcoefficientdiagonaltermleftentry + S (pfc_left_division_match_table_productcoefficientdiagonalterm) = S ((S (pfc_index_division_match_table_productcoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_table_productcoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_match_table_productcoefficientdiagonaltermleftentry * S ((S (pfc_index_division_match_table_productcoefficientdiagonal)) * qc) + (pfc_left_division_match_table_productcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_match_table_productcoefficientdiagonaltermleftoutside. pfc_gap_division_match_table_productcoefficientdiagonaltermleftoutside+(N)=(pfc_index_division_match_table_productcoefficientdiagonal)) /\ (((pfc_left_division_match_table_productcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_table_productcoefficientdiagonaltermrightinside. pfa_gap_division_match_table_productcoefficientdiagonaltermrightinside + S (pfc_complement_division_match_table_productcoefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_table_productcoefficientdiagonaltermrightentry. ff_h_pfp_division_match_table_productcoefficientdiagonaltermrightentry + S (pfc_right_division_match_table_productcoefficientdiagonalterm) = S ((S (pfc_complement_division_match_table_productcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_table_productcoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_match_table_productcoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_match_table_productcoefficientdiagonalterm)) * bc) + (pfc_right_division_match_table_productcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_match_table_productcoefficientdiagonaltermrightoutside. pfc_gap_division_match_table_productcoefficientdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_table_productcoefficientdiagonalterm)) /\ (((pfc_right_division_match_table_productcoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_match_table_productcoefficientdiagonal)=pfc_left_division_match_table_productcoefficientdiagonalterm*pfc_right_division_match_table_productcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_table_productcoefficientsum fs_v_pfc_division_match_table_productcoefficientsum. ((((exists fs_h_pfc_division_match_table_productcoefficientsum_body_start. fs_h_pfc_division_match_table_productcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_table_productcoefficientsum)) /\ exists fs_q_pfc_division_match_table_productcoefficientsum_body_start. fs_u_pfc_division_match_table_productcoefficientsum = fs_q_pfc_division_match_table_productcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_match_table_productcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_match_table_productcoefficientsum_body_terminal. fs_h_pfc_division_match_table_productcoefficientsum_body_terminal + S (pfc_natural_sum_division_match_table_productcoefficient) = S ((S (S (pfc_index_division_match_table_product))) * fs_v_pfc_division_match_table_productcoefficientsum)) /\ exists fs_q_pfc_division_match_table_productcoefficientsum_body_terminal. fs_u_pfc_division_match_table_productcoefficientsum = fs_q_pfc_division_match_table_productcoefficientsum_body_terminal * S ((S (S (pfc_index_division_match_table_product))) * fs_v_pfc_division_match_table_productcoefficientsum) + (pfc_natural_sum_division_match_table_productcoefficient))) /\ forall fs_i_pfc_division_match_table_productcoefficientsum_body_steps. (exists fs_lt_pfc_division_match_table_productcoefficientsum_body_steps_bound. fs_lt_pfc_division_match_table_productcoefficientsum_body_steps_bound + S fs_i_pfc_division_match_table_productcoefficientsum_body_steps = S (pfc_index_division_match_table_product)) -> exists fs_a_pfc_division_match_table_productcoefficientsum_body_steps fs_r_pfc_division_match_table_productcoefficientsum_body_steps fs_s_pfc_division_match_table_productcoefficientsum_body_steps. ((((exists fs_h_pfc_division_match_table_productcoefficientsum_body_steps_summand. fs_h_pfc_division_match_table_productcoefficientsum_body_steps_summand + S (fs_a_pfc_division_match_table_productcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_match_table_productcoefficientsum_body_steps)) * pfc_terms_scale_division_match_table_productcoefficient)) /\ exists fs_q_pfc_division_match_table_productcoefficientsum_body_steps_summand. pfc_terms_code_division_match_table_productcoefficient = fs_q_pfc_division_match_table_productcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_match_table_productcoefficientsum_body_steps)) * pfc_terms_scale_division_match_table_productcoefficient) + (fs_a_pfc_division_match_table_productcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_match_table_productcoefficientsum_body_steps_partial. fs_h_pfc_division_match_table_productcoefficientsum_body_steps_partial + S (fs_r_pfc_division_match_table_productcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_match_table_productcoefficientsum_body_steps)) * fs_v_pfc_division_match_table_productcoefficientsum)) /\ exists fs_q_pfc_division_match_table_productcoefficientsum_body_steps_partial. fs_u_pfc_division_match_table_productcoefficientsum = fs_q_pfc_division_match_table_productcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_match_table_productcoefficientsum_body_steps)) * fs_v_pfc_division_match_table_productcoefficientsum) + (fs_r_pfc_division_match_table_productcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_match_table_productcoefficientsum_body_steps_successor. fs_h_pfc_division_match_table_productcoefficientsum_body_steps_successor + S (fs_s_pfc_division_match_table_productcoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_match_table_productcoefficientsum_body_steps)) * fs_v_pfc_division_match_table_productcoefficientsum)) /\ exists fs_q_pfc_division_match_table_productcoefficientsum_body_steps_successor. fs_u_pfc_division_match_table_productcoefficientsum = fs_q_pfc_division_match_table_productcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_match_table_productcoefficientsum_body_steps)) * fs_v_pfc_division_match_table_productcoefficientsum) + (fs_s_pfc_division_match_table_productcoefficientsum_body_steps))) /\ fs_s_pfc_division_match_table_productcoefficientsum_body_steps = fs_r_pfc_division_match_table_productcoefficientsum_body_steps + fs_a_pfc_division_match_table_productcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_match_table_productcoefficientresiduebound. pfa_gap_division_match_table_productcoefficientresiduebound + S (pfc_value_division_match_table_product) = (p)) /\ ((exists pfa_offset_left_division_match_table_productcoefficientresiduecongruence pfa_offset_right_division_match_table_productcoefficientresiduecongruence. (pfc_natural_sum_division_match_table_productcoefficient) + (p) * pfa_offset_left_division_match_table_productcoefficientresiduecongruence = (pfc_value_division_match_table_product) + (p) * pfa_offset_right_division_match_table_productcoefficientresiduecongruence)))))))))))) -> (forall mdr_i_pfp_division_match_table_result mdr_a_pfp_division_match_table_result. (exists mdr_gap_pfp_division_match_table_resultb. mdr_gap_pfp_division_match_table_resultb + S (mdr_i_pfp_division_match_table_result) = (N)) -> (((exists ff_h_mdr_pfp_division_match_table_resulto. ff_h_mdr_pfp_division_match_table_resulto + S (mdr_a_pfp_division_match_table_result) = S ((S (mdr_i_pfp_division_match_table_result)) * ac)) /\ exists ff_q_mdr_pfp_division_match_table_resulto. ab = ff_q_mdr_pfp_division_match_table_resulto * S ((S (mdr_i_pfp_division_match_table_result)) * ac) + (mdr_a_pfp_division_match_table_result))) -> (((exists ff_h_mdr_pfp_division_match_table_resultn. ff_h_mdr_pfp_division_match_table_resultn + S (mdr_a_pfp_division_match_table_result) = S ((S (mdr_i_pfp_division_match_table_result)) * pc)) /\ exists ff_q_mdr_pfp_division_match_table_resultn. pb = ff_q_mdr_pfp_division_match_table_resultn * S ((S (mdr_i_pfp_division_match_table_result)) * pc) + (mdr_a_pfp_division_match_table_result))))

Constructive proof overview

Generated structural guide

The actual ambient product table agrees with the input throughout the computed quotient prefix, including the vacuous zero-length case.

The unchanged tactic script uses 3 declared prerequisites and contains 68 exact native proof lines.

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

Proof neighborhood

Direct dependencies

lt_of_lt_of_le Alpha theorem; checked-use authorized PX002F prime_field_polynomial_quotient_prefix_convolution_entry beta_at_unique Alpha theorem; checked-use authorized

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

68 script commands · 11 reading checkpoints · 3 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 (1)

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

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 N
02Fix variables and assumptionsL11–20

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

  1. L11
    intro b
  2. L12
    intro pb
  3. L13
    intro pc
  4. L14
    intro L
  5. L15
    intro hp
  6. L16
    intro hb
  7. L17
    intro hk
  8. L18
    intro hq
  9. L19
    intro hlen
  10. L20
    intro hproduct
03Fix variables and assumptionsL21–24

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

  1. L21
    intro i
  2. L22
    intro a
  3. L23
    intro hi
  4. L24
    intro ha
04Establish hvL25–33

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hproduct.

  1. L25
    have hv : ∃ r. BetaAt(pb,pc,i,r) ∧ FpConvolutionCoefficient(p,qb,qc,N,bb,bc,S d,i,r)Definitions: FpConvolutionCoefficientBetaAt
  2. L26
    specialize hproduct (i)
  3. L27
    apply hproduct
  4. L28
    specialize lt_of_lt_of_le (i)
  5. L29
    specialize lt_of_lt_of_le (N)
  6. L30
    specialize lt_of_lt_of_le (L)
  7. L31
    apply lt_of_lt_of_le
  8. L32
    exact hi
  9. L33
    exact hlen
05Separate the logical casesL34–35

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

  1. L34
    cases hv
  2. L35
    cases hv_witness
06Establish hinputL36–45

Establish this local claim before using it. It is not an additional assumption.

  1. L36
    have hinput : ((exists ff_h_pfp_division_match_table_input. ff_h_pfp_division_match_table_input + S (x) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_match_table_input. ab = ff_q_pfp_division_match_table_input * S ((S (i)) * ac) + (x))
  2. L37
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (p)
  3. L38
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (k)
  4. L39
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (ab)
  5. L40
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (ac)
  6. L41
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (bb)
  7. L42
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (bc)
  8. L43
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (d)
  9. L44
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (qb)
  10. L45
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (qc)
07Use earlier factsL46–55

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

  1. L46
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (N)
  2. L47
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (b)
  3. L48
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (i)
  4. L49
    specialize prime_field_polynomial_quotient_prefix_convolution_entry (x)
  5. L50
    apply prime_field_polynomial_quotient_prefix_convolution_entry
  6. L51
    exact hp
  7. L52
    exact hb
  8. L53
    exact hk
  9. L54
    exact hq
  10. L55
    exact hi
08Use earlier factsL56–56

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

  1. L56
    exact hv_witness_right
09Establish heqL57–66

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.

  1. L57
    have heq : x=a
  2. L58
    specialize beta_at_unique (ab)
  3. L59
    specialize beta_at_unique (ac)
  4. L60
    specialize beta_at_unique (i)
  5. L61
    specialize beta_at_unique (x)
  6. L62
    specialize beta_at_unique (a)
  7. L63
    apply beta_at_unique
  8. L64
    exact hinput
  9. L65
    exact ha
  10. L66
    rewrite heq at hv_witness_left
10Calculate and transport equalitiesL67–67

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L67
    rewrite heq at hv_witness_left
11Use earlier factsL68–68

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

  1. L68
    exact hv_witness_left

Library-wide reading audit

Original exact command ledger · 68 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 N
  11. 0011intro b
  12. 0012intro pb
  13. 0013intro pc
  14. 0014intro L
  15. 0015intro hp
  16. 0016intro hb
  17. 0017intro hk
  18. 0018intro hq
  19. 0019intro hlen
  20. 0020intro hproduct
  21. 0021intro i
  22. 0022intro a
  23. 0023intro hi
  24. 0024intro ha
  25. 0025have hv : exists r. ((((exists ff_h_pfp_division_match_table_entry. ff_h_pfp_division_match_table_entry + S (r) = S ((S (i)) * pc)) /\ exists ff_q_pfp_division_match_table_entry. pb = ff_q_pfp_division_match_table_entry * S ((S (i)) * pc) + (r))) /\ ((exists pfc_terms_code_division_match_table_coefficient pfc_terms_scale_division_match_table_coefficient pfc_natural_sum_division_match_table_coefficient. ((forall pfc_index_division_match_table_coefficientdiagonal. (exists pfa_gap_division_match_table_coefficientdiagonalbound. pfa_gap_division_match_table_coefficientdiagonalbound + S (pfc_index_division_match_table_coefficientdiagonal) = (S (i))) -> exists pfc_value_division_match_table_coefficientdiagonal. ((((exists ff_h_pfp_division_match_table_coefficientdiagonalentry. ff_h_pfp_division_match_table_coefficientdiagonalentry + S (pfc_value_division_match_table_coefficientdiagonal) = S ((S (pfc_index_division_match_table_coefficientdiagonal)) * pfc_terms_scale_division_match_table_coefficient)) /\ exists ff_q_pfp_division_match_table_coefficientdiagonalentry. pfc_terms_code_division_match_table_coefficient = ff_q_pfp_division_match_table_coefficientdiagonalentry * S ((S (pfc_index_division_match_table_coefficientdiagonal)) * pfc_terms_scale_division_match_table_coefficient) + (pfc_value_division_match_table_coefficientdiagonal))) /\ ((exists pfc_complement_division_match_table_coefficientdiagonalterm pfc_left_division_match_table_coefficientdiagonalterm pfc_right_division_match_table_coefficientdiagonalterm. (((pfc_index_division_match_table_coefficientdiagonal)+pfc_complement_division_match_table_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_match_table_coefficientdiagonaltermleftinside. pfa_gap_division_match_table_coefficientdiagonaltermleftinside + S (pfc_index_division_match_table_coefficientdiagonal) = (N)) /\ ((((exists ff_h_pfp_division_match_table_coefficientdiagonaltermleftentry. ff_h_pfp_division_match_table_coefficientdiagonaltermleftentry + S (pfc_left_division_match_table_coefficientdiagonalterm) = S ((S (pfc_index_division_match_table_coefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_table_coefficientdiagonaltermleftentry. qb = ff_q_pfp_division_match_table_coefficientdiagonaltermleftentry * S ((S (pfc_index_division_match_table_coefficientdiagonal)) * qc) + (pfc_left_division_match_table_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_match_table_coefficientdiagonaltermleftoutside. pfc_gap_division_match_table_coefficientdiagonaltermleftoutside+(N)=(pfc_index_division_match_table_coefficientdiagonal)) /\ (((pfc_left_division_match_table_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_table_coefficientdiagonaltermrightinside. pfa_gap_division_match_table_coefficientdiagonaltermrightinside + S (pfc_complement_division_match_table_coefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_table_coefficientdiagonaltermrightentry. ff_h_pfp_division_match_table_coefficientdiagonaltermrightentry + S (pfc_right_division_match_table_coefficientdiagonalterm) = S ((S (pfc_complement_division_match_table_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_table_coefficientdiagonaltermrightentry. bb = ff_q_pfp_division_match_table_coefficientdiagonaltermrightentry * S ((S (pfc_complement_division_match_table_coefficientdiagonalterm)) * bc) + (pfc_right_division_match_table_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_match_table_coefficientdiagonaltermrightoutside. pfc_gap_division_match_table_coefficientdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_table_coefficientdiagonalterm)) /\ (((pfc_right_division_match_table_coefficientdiagonalterm)=0))))) /\ (((pfc_value_division_match_table_coefficientdiagonal)=pfc_left_division_match_table_coefficientdiagonalterm*pfc_right_division_match_table_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_table_coefficientsum fs_v_pfc_division_match_table_coefficientsum. ((((exists fs_h_pfc_division_match_table_coefficientsum_body_start. fs_h_pfc_division_match_table_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_table_coefficientsum)) /\ exists fs_q_pfc_division_match_table_coefficientsum_body_start. fs_u_pfc_division_match_table_coefficientsum = fs_q_pfc_division_match_table_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_match_table_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_match_table_coefficientsum_body_terminal. fs_h_pfc_division_match_table_coefficientsum_body_terminal + S (pfc_natural_sum_division_match_table_coefficient) = S ((S (S (i))) * fs_v_pfc_division_match_table_coefficientsum)) /\ exists fs_q_pfc_division_match_table_coefficientsum_body_terminal. fs_u_pfc_division_match_table_coefficientsum = fs_q_pfc_division_match_table_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_match_table_coefficientsum) + (pfc_natural_sum_division_match_table_coefficient))) /\ forall fs_i_pfc_division_match_table_coefficientsum_body_steps. (exists fs_lt_pfc_division_match_table_coefficientsum_body_steps_bound. fs_lt_pfc_division_match_table_coefficientsum_body_steps_bound + S fs_i_pfc_division_match_table_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_division_match_table_coefficientsum_body_steps fs_r_pfc_division_match_table_coefficientsum_body_steps fs_s_pfc_division_match_table_coefficientsum_body_steps. ((((exists fs_h_pfc_division_match_table_coefficientsum_body_steps_summand. fs_h_pfc_division_match_table_coefficientsum_body_steps_summand + S (fs_a_pfc_division_match_table_coefficientsum_body_steps) = S ((S (fs_i_pfc_division_match_table_coefficientsum_body_steps)) * pfc_terms_scale_division_match_table_coefficient)) /\ exists fs_q_pfc_division_match_table_coefficientsum_body_steps_summand. pfc_terms_code_division_match_table_coefficient = fs_q_pfc_division_match_table_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_match_table_coefficientsum_body_steps)) * pfc_terms_scale_division_match_table_coefficient) + (fs_a_pfc_division_match_table_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_match_table_coefficientsum_body_steps_partial. fs_h_pfc_division_match_table_coefficientsum_body_steps_partial + S (fs_r_pfc_division_match_table_coefficientsum_body_steps) = S ((S (fs_i_pfc_division_match_table_coefficientsum_body_steps)) * fs_v_pfc_division_match_table_coefficientsum)) /\ exists fs_q_pfc_division_match_table_coefficientsum_body_steps_partial. fs_u_pfc_division_match_table_coefficientsum = fs_q_pfc_division_match_table_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_match_table_coefficientsum_body_steps)) * fs_v_pfc_division_match_table_coefficientsum) + (fs_r_pfc_division_match_table_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_match_table_coefficientsum_body_steps_successor. fs_h_pfc_division_match_table_coefficientsum_body_steps_successor + S (fs_s_pfc_division_match_table_coefficientsum_body_steps) = S ((S (S fs_i_pfc_division_match_table_coefficientsum_body_steps)) * fs_v_pfc_division_match_table_coefficientsum)) /\ exists fs_q_pfc_division_match_table_coefficientsum_body_steps_successor. fs_u_pfc_division_match_table_coefficientsum = fs_q_pfc_division_match_table_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_match_table_coefficientsum_body_steps)) * fs_v_pfc_division_match_table_coefficientsum) + (fs_s_pfc_division_match_table_coefficientsum_body_steps))) /\ fs_s_pfc_division_match_table_coefficientsum_body_steps = fs_r_pfc_division_match_table_coefficientsum_body_steps + fs_a_pfc_division_match_table_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_match_table_coefficientresiduebound. pfa_gap_division_match_table_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_division_match_table_coefficientresiduecongruence pfa_offset_right_division_match_table_coefficientresiduecongruence. (pfc_natural_sum_division_match_table_coefficient) + (p) * pfa_offset_left_division_match_table_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_division_match_table_coefficientresiduecongruence)))))))))))
  26. 0026specialize hproduct (i)
  27. 0027apply hproduct
  28. 0028specialize lt_of_lt_of_le (i)
  29. 0029specialize lt_of_lt_of_le (N)
  30. 0030specialize lt_of_lt_of_le (L)
  31. 0031apply lt_of_lt_of_le
  32. 0032exact hi
  33. 0033exact hlen
  34. 0034cases hv
  35. 0035cases hv_witness
  36. 0036have hinput : ((exists ff_h_pfp_division_match_table_input. ff_h_pfp_division_match_table_input + S (x) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_match_table_input. ab = ff_q_pfp_division_match_table_input * S ((S (i)) * ac) + (x))
  37. 0037specialize prime_field_polynomial_quotient_prefix_convolution_entry (p)
  38. 0038specialize prime_field_polynomial_quotient_prefix_convolution_entry (k)
  39. 0039specialize prime_field_polynomial_quotient_prefix_convolution_entry (ab)
  40. 0040specialize prime_field_polynomial_quotient_prefix_convolution_entry (ac)
  41. 0041specialize prime_field_polynomial_quotient_prefix_convolution_entry (bb)
  42. 0042specialize prime_field_polynomial_quotient_prefix_convolution_entry (bc)
  43. 0043specialize prime_field_polynomial_quotient_prefix_convolution_entry (d)
  44. 0044specialize prime_field_polynomial_quotient_prefix_convolution_entry (qb)
  45. 0045specialize prime_field_polynomial_quotient_prefix_convolution_entry (qc)
  46. 0046specialize prime_field_polynomial_quotient_prefix_convolution_entry (N)
  47. 0047specialize prime_field_polynomial_quotient_prefix_convolution_entry (b)
  48. 0048specialize prime_field_polynomial_quotient_prefix_convolution_entry (i)
  49. 0049specialize prime_field_polynomial_quotient_prefix_convolution_entry (x)
  50. 0050apply prime_field_polynomial_quotient_prefix_convolution_entry
  51. 0051exact hp
  52. 0052exact hb
  53. 0053exact hk
  54. 0054exact hq
  55. 0055exact hi
  56. 0056exact hv_witness_right
  57. 0057have heq : x=a
  58. 0058specialize beta_at_unique (ab)
  59. 0059specialize beta_at_unique (ac)
  60. 0060specialize beta_at_unique (i)
  61. 0061specialize beta_at_unique (x)
  62. 0062specialize beta_at_unique (a)
  63. 0063apply beta_at_unique
  64. 0064exact hinput
  65. 0065exact ha
  66. 0066rewrite heq at hv_witness_left
  67. 0067rewrite heq at hv_witness_left
  68. 0068exact hv_witness_left