PX0030

prime_field_polynomial_quotient_prefix_product_matches

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

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

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

Coefficients are highest-degree-first. The divisor has a nonzero decoded head; primality supplies its actual inverse. Empty quotients and remainders are included. Functionality compares the constructed execution lengths and decoded coefficients, never arbitrary beta codes. Formal polynomial equivalence compares every coefficient, not evaluations on a finite field. The formal identity and remainder-degree bound are proved separately, not assumed by the execution graph. Arbitrary quotient/remainder-pair uniqueness from a formal identity, multiplication associativity, gcd/Bezout, irreducible-polynomial existence, and the full G091 prime-power-field goal remain open. The seven displayed new names are conservative first-order notation, not new kernel primitives.

Exact theorem in conservative defined notation

∀ p. ∀ k. ∀ ab. ∀ ac. ∀ bb. ∀ bc. ∀ d. ∀ qb. ∀ qc. ∀ N. ∀ b. ∀ pb. ∀ pc. ∀ L. Prime(p)BetaAt(bb,bc,0,b)FpInv(p,b,k)FpPolynomialQuotientPrefix(p,k,ab,ac,bb,bc,S d,qb,qc,N)Le(N,L)FpConvolutionPrefix(p,qb,qc,N,bb,bc,S d,pb,pc,L)BetaPrefixEqual(ab,ac,pb,pc,N)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

Original expanded first-order 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))))

Complete tactic proof in conservative notation

All 68 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (1)
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: BetaAt(pb,pc,i,r)FpConvolutionCoefficient(p,qb,qc,N,bb,bc,S d,i,r)Original native command in the exact edition
  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 : BetaAt(ab,ac,i,x)Definitions: BetaAt(ab,ac,i,x)Original native command in the exact edition
  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 defined 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 : ∃ r. BetaAt(pb,pc,i,r)FpConvolutionCoefficient(p,qb,qc,N,bb,bc,S d,i,r)
  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 : BetaAt(ab,ac,i,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