PX0051

prime_field_polynomial_right_distributive_products_exists

Construct all three genuine proper-length right products and then prove their coefficient-addition identity; the product witnesses and the distributive conclusion are outputs, never input assumptions.

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. ∀ ab. ∀ ac. ∀ bb. ∀ bc. ∀ cb. ∀ cc. ∀ L. ∀ db. ∀ dc. ∀ M. ¬p = 0 → BetaPrefixInto(db,dc,M,p)FpPolyAdd(p,ab,ac,bb,bc,cb,cc,L) → ∃ x. ∃ y. ∃ z. ∃ n. ∃ m. ∃ k. ∃ i. FpPolyProduct(p,ab,ac,L,db,dc,M,y,z,x) ∧ (FpPolyProduct(p,bb,bc,L,db,dc,M,n,m,x) ∧ (FpPolyProduct(p,cb,cc,L,db,dc,M,k,i,x)FpPolyAdd(p,y,z,n,m,k,i,x)))

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall p ab ac bb bc cb cc L db dc M. (~(p=0)) -> (forall fom_index_pfp_products_right_fixed_input. (exists fom_gap_pfp_products_right_fixed_input_index_bound. fom_gap_pfp_products_right_fixed_input_index_bound + S (fom_index_pfp_products_right_fixed_input) = M) -> exists fom_value_pfp_products_right_fixed_input. ((((exists fom_beta_height_pfp_products_right_fixed_input_entry. fom_beta_height_pfp_products_right_fixed_input_entry + S (fom_value_pfp_products_right_fixed_input) = S ((S (fom_index_pfp_products_right_fixed_input)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_fixed_input_entry. db = fom_beta_quotient_pfp_products_right_fixed_input_entry * S ((S (fom_index_pfp_products_right_fixed_input)) * dc) + (fom_value_pfp_products_right_fixed_input))) /\ (exists fom_gap_pfp_products_right_fixed_input_value_bound. fom_gap_pfp_products_right_fixed_input_value_bound + S (fom_value_pfp_products_right_fixed_input) = p))) -> (forall pfp_index_products_right_input_addition. (exists pfa_gap_products_right_input_additionindex. pfa_gap_products_right_input_additionindex + S (pfp_index_products_right_input_addition) = (L)) -> exists pfp_left_products_right_input_addition pfp_right_products_right_input_addition pfp_value_products_right_input_addition. ((((exists ff_h_pfp_products_right_input_additionleft. ff_h_pfp_products_right_input_additionleft + S (pfp_left_products_right_input_addition) = S ((S (pfp_index_products_right_input_addition)) * ac)) /\ exists ff_q_pfp_products_right_input_additionleft. ab = ff_q_pfp_products_right_input_additionleft * S ((S (pfp_index_products_right_input_addition)) * ac) + (pfp_left_products_right_input_addition))) /\ (((((exists ff_h_pfp_products_right_input_additionright. ff_h_pfp_products_right_input_additionright + S (pfp_right_products_right_input_addition) = S ((S (pfp_index_products_right_input_addition)) * bc)) /\ exists ff_q_pfp_products_right_input_additionright. bb = ff_q_pfp_products_right_input_additionright * S ((S (pfp_index_products_right_input_addition)) * bc) + (pfp_right_products_right_input_addition))) /\ (((((exists ff_h_pfp_products_right_input_additiontarget. ff_h_pfp_products_right_input_additiontarget + S (pfp_value_products_right_input_addition) = S ((S (pfp_index_products_right_input_addition)) * cc)) /\ exists ff_q_pfp_products_right_input_additiontarget. cb = ff_q_pfp_products_right_input_additiontarget * S ((S (pfp_index_products_right_input_addition)) * cc) + (pfp_value_products_right_input_addition))) /\ ((((exists pfa_gap_products_right_input_additionoperationleft. pfa_gap_products_right_input_additionoperationleft + S (pfp_left_products_right_input_addition) = (p)) /\ (((exists pfa_gap_products_right_input_additionoperationright. pfa_gap_products_right_input_additionoperationright + S (pfp_right_products_right_input_addition) = (p)) /\ ((((exists pfa_gap_products_right_input_additionoperationresultbound. pfa_gap_products_right_input_additionoperationresultbound + S (pfp_value_products_right_input_addition) = (p)) /\ ((exists pfa_offset_left_products_right_input_additionoperationresultcongruence pfa_offset_right_products_right_input_additionoperationresultcongruence. ((pfp_left_products_right_input_addition) + (pfp_right_products_right_input_addition)) + (p) * pfa_offset_left_products_right_input_additionoperationresultcongruence = (pfp_value_products_right_input_addition) + (p) * pfa_offset_right_products_right_input_additionoperationresultcongruence)))))))))))))))) -> (exists N ub uc vb vc wb wc. ((((forall fom_index_pfp_products_right_result_ubleft. (exists fom_gap_pfp_products_right_result_ubleft_index_bound. fom_gap_pfp_products_right_result_ubleft_index_bound + S (fom_index_pfp_products_right_result_ubleft) = L) -> exists fom_value_pfp_products_right_result_ubleft. ((((exists fom_beta_height_pfp_products_right_result_ubleft_entry. fom_beta_height_pfp_products_right_result_ubleft_entry + S (fom_value_pfp_products_right_result_ubleft) = S ((S (fom_index_pfp_products_right_result_ubleft)) * ac)) /\ exists fom_beta_quotient_pfp_products_right_result_ubleft_entry. ab = fom_beta_quotient_pfp_products_right_result_ubleft_entry * S ((S (fom_index_pfp_products_right_result_ubleft)) * ac) + (fom_value_pfp_products_right_result_ubleft))) /\ (exists fom_gap_pfp_products_right_result_ubleft_value_bound. fom_gap_pfp_products_right_result_ubleft_value_bound + S (fom_value_pfp_products_right_result_ubleft) = p))) /\ (((forall fom_index_pfp_products_right_result_ubright. (exists fom_gap_pfp_products_right_result_ubright_index_bound. fom_gap_pfp_products_right_result_ubright_index_bound + S (fom_index_pfp_products_right_result_ubright) = M) -> exists fom_value_pfp_products_right_result_ubright. ((((exists fom_beta_height_pfp_products_right_result_ubright_entry. fom_beta_height_pfp_products_right_result_ubright_entry + S (fom_value_pfp_products_right_result_ubright) = S ((S (fom_index_pfp_products_right_result_ubright)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_result_ubright_entry. db = fom_beta_quotient_pfp_products_right_result_ubright_entry * S ((S (fom_index_pfp_products_right_result_ubright)) * dc) + (fom_value_pfp_products_right_result_ubright))) /\ (exists fom_gap_pfp_products_right_result_ubright_value_bound. fom_gap_pfp_products_right_result_ubright_value_bound + S (fom_value_pfp_products_right_result_ubright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_products_right_result_ubcoefficients. (exists pfa_gap_products_right_result_ubcoefficientsbound. pfa_gap_products_right_result_ubcoefficientsbound + S (pfc_index_products_right_result_ubcoefficients) = (N)) -> exists pfc_value_products_right_result_ubcoefficients. ((((exists ff_h_pfp_products_right_result_ubcoefficientsentry. ff_h_pfp_products_right_result_ubcoefficientsentry + S (pfc_value_products_right_result_ubcoefficients) = S ((S (pfc_index_products_right_result_ubcoefficients)) * uc)) /\ exists ff_q_pfp_products_right_result_ubcoefficientsentry. ub = ff_q_pfp_products_right_result_ubcoefficientsentry * S ((S (pfc_index_products_right_result_ubcoefficients)) * uc) + (pfc_value_products_right_result_ubcoefficients))) /\ ((exists pfc_terms_code_products_right_result_ubcoefficientscoefficient pfc_terms_scale_products_right_result_ubcoefficientscoefficient pfc_natural_sum_products_right_result_ubcoefficientscoefficient. ((forall pfc_index_products_right_result_ubcoefficientscoefficientdiagonal. (exists pfa_gap_products_right_result_ubcoefficientscoefficientdiagonalbound. pfa_gap_products_right_result_ubcoefficientscoefficientdiagonalbound + S (pfc_index_products_right_result_ubcoefficientscoefficientdiagonal) = (S (pfc_index_products_right_result_ubcoefficients))) -> exists pfc_value_products_right_result_ubcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_right_result_ubcoefficientscoefficientdiagonalentry. ff_h_pfp_products_right_result_ubcoefficientscoefficientdiagonalentry + S (pfc_value_products_right_result_ubcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_right_result_ubcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_result_ubcoefficientscoefficient)) /\ exists ff_q_pfp_products_right_result_ubcoefficientscoefficientdiagonalentry. pfc_terms_code_products_right_result_ubcoefficientscoefficient = ff_q_pfp_products_right_result_ubcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_right_result_ubcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_result_ubcoefficientscoefficient) + (pfc_value_products_right_result_ubcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_right_result_ubcoefficientscoefficientdiagonalterm pfc_left_products_right_result_ubcoefficientscoefficientdiagonalterm pfc_right_products_right_result_ubcoefficientscoefficientdiagonalterm. (((pfc_index_products_right_result_ubcoefficientscoefficientdiagonal)+pfc_complement_products_right_result_ubcoefficientscoefficientdiagonalterm=(pfc_index_products_right_result_ubcoefficients)) /\ ((((((exists pfa_gap_products_right_result_ubcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_right_result_ubcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_right_result_ubcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_right_result_ubcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_right_result_ubcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_right_result_ubcoefficientscoefficientdiagonal)) * ac) + (pfc_left_products_right_result_ubcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_result_ubcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_right_result_ubcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_products_right_result_ubcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_right_result_ubcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_right_result_ubcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_right_result_ubcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_right_result_ubcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_right_result_ubcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_right_result_ubcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_products_right_result_ubcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_right_result_ubcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_products_right_result_ubcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_result_ubcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_right_result_ubcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_products_right_result_ubcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_right_result_ubcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_right_result_ubcoefficientscoefficientdiagonal)=pfc_left_products_right_result_ubcoefficientscoefficientdiagonalterm*pfc_right_products_right_result_ubcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_right_result_ubcoefficientscoefficientsum fs_v_pfc_products_right_result_ubcoefficientscoefficientsum. ((((exists fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_start. fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_start. fs_u_pfc_products_right_result_ubcoefficientscoefficientsum = fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_right_result_ubcoefficientscoefficient) = S ((S (S (pfc_index_products_right_result_ubcoefficients))) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_right_result_ubcoefficientscoefficientsum = fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_right_result_ubcoefficients))) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum) + (pfc_natural_sum_products_right_result_ubcoefficientscoefficient))) /\ forall fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps = S (pfc_index_products_right_result_ubcoefficients)) -> exists fs_a_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps fs_r_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps fs_s_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_result_ubcoefficientscoefficient)) /\ exists fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_right_result_ubcoefficientscoefficient = fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_result_ubcoefficientscoefficient) + (fs_a_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_right_result_ubcoefficientscoefficientsum = fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum) + (fs_r_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_right_result_ubcoefficientscoefficientsum = fs_q_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_ubcoefficientscoefficientsum) + (fs_s_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps = fs_r_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps + fs_a_pfc_products_right_result_ubcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_right_result_ubcoefficientscoefficientresiduebound. pfa_gap_products_right_result_ubcoefficientscoefficientresiduebound + S (pfc_value_products_right_result_ubcoefficients) = (p)) /\ ((exists pfa_offset_left_products_right_result_ubcoefficientscoefficientresiduecongruence pfa_offset_right_products_right_result_ubcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_right_result_ubcoefficientscoefficient) + (p) * pfa_offset_left_products_right_result_ubcoefficientscoefficientresiduecongruence = (pfc_value_products_right_result_ubcoefficients) + (p) * pfa_offset_right_products_right_result_ubcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ (((((forall fom_index_pfp_products_right_result_vbleft. (exists fom_gap_pfp_products_right_result_vbleft_index_bound. fom_gap_pfp_products_right_result_vbleft_index_bound + S (fom_index_pfp_products_right_result_vbleft) = L) -> exists fom_value_pfp_products_right_result_vbleft. ((((exists fom_beta_height_pfp_products_right_result_vbleft_entry. fom_beta_height_pfp_products_right_result_vbleft_entry + S (fom_value_pfp_products_right_result_vbleft) = S ((S (fom_index_pfp_products_right_result_vbleft)) * bc)) /\ exists fom_beta_quotient_pfp_products_right_result_vbleft_entry. bb = fom_beta_quotient_pfp_products_right_result_vbleft_entry * S ((S (fom_index_pfp_products_right_result_vbleft)) * bc) + (fom_value_pfp_products_right_result_vbleft))) /\ (exists fom_gap_pfp_products_right_result_vbleft_value_bound. fom_gap_pfp_products_right_result_vbleft_value_bound + S (fom_value_pfp_products_right_result_vbleft) = p))) /\ (((forall fom_index_pfp_products_right_result_vbright. (exists fom_gap_pfp_products_right_result_vbright_index_bound. fom_gap_pfp_products_right_result_vbright_index_bound + S (fom_index_pfp_products_right_result_vbright) = M) -> exists fom_value_pfp_products_right_result_vbright. ((((exists fom_beta_height_pfp_products_right_result_vbright_entry. fom_beta_height_pfp_products_right_result_vbright_entry + S (fom_value_pfp_products_right_result_vbright) = S ((S (fom_index_pfp_products_right_result_vbright)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_result_vbright_entry. db = fom_beta_quotient_pfp_products_right_result_vbright_entry * S ((S (fom_index_pfp_products_right_result_vbright)) * dc) + (fom_value_pfp_products_right_result_vbright))) /\ (exists fom_gap_pfp_products_right_result_vbright_value_bound. fom_gap_pfp_products_right_result_vbright_value_bound + S (fom_value_pfp_products_right_result_vbright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_products_right_result_vbcoefficients. (exists pfa_gap_products_right_result_vbcoefficientsbound. pfa_gap_products_right_result_vbcoefficientsbound + S (pfc_index_products_right_result_vbcoefficients) = (N)) -> exists pfc_value_products_right_result_vbcoefficients. ((((exists ff_h_pfp_products_right_result_vbcoefficientsentry. ff_h_pfp_products_right_result_vbcoefficientsentry + S (pfc_value_products_right_result_vbcoefficients) = S ((S (pfc_index_products_right_result_vbcoefficients)) * vc)) /\ exists ff_q_pfp_products_right_result_vbcoefficientsentry. vb = ff_q_pfp_products_right_result_vbcoefficientsentry * S ((S (pfc_index_products_right_result_vbcoefficients)) * vc) + (pfc_value_products_right_result_vbcoefficients))) /\ ((exists pfc_terms_code_products_right_result_vbcoefficientscoefficient pfc_terms_scale_products_right_result_vbcoefficientscoefficient pfc_natural_sum_products_right_result_vbcoefficientscoefficient. ((forall pfc_index_products_right_result_vbcoefficientscoefficientdiagonal. (exists pfa_gap_products_right_result_vbcoefficientscoefficientdiagonalbound. pfa_gap_products_right_result_vbcoefficientscoefficientdiagonalbound + S (pfc_index_products_right_result_vbcoefficientscoefficientdiagonal) = (S (pfc_index_products_right_result_vbcoefficients))) -> exists pfc_value_products_right_result_vbcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_right_result_vbcoefficientscoefficientdiagonalentry. ff_h_pfp_products_right_result_vbcoefficientscoefficientdiagonalentry + S (pfc_value_products_right_result_vbcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_right_result_vbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_result_vbcoefficientscoefficient)) /\ exists ff_q_pfp_products_right_result_vbcoefficientscoefficientdiagonalentry. pfc_terms_code_products_right_result_vbcoefficientscoefficient = ff_q_pfp_products_right_result_vbcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_right_result_vbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_result_vbcoefficientscoefficient) + (pfc_value_products_right_result_vbcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_right_result_vbcoefficientscoefficientdiagonalterm pfc_left_products_right_result_vbcoefficientscoefficientdiagonalterm pfc_right_products_right_result_vbcoefficientscoefficientdiagonalterm. (((pfc_index_products_right_result_vbcoefficientscoefficientdiagonal)+pfc_complement_products_right_result_vbcoefficientscoefficientdiagonalterm=(pfc_index_products_right_result_vbcoefficients)) /\ ((((((exists pfa_gap_products_right_result_vbcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_right_result_vbcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_right_result_vbcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_right_result_vbcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_right_result_vbcoefficientscoefficientdiagonal)) * bc)) /\ exists ff_q_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermleftentry. bb = ff_q_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_right_result_vbcoefficientscoefficientdiagonal)) * bc) + (pfc_left_products_right_result_vbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_result_vbcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_right_result_vbcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_products_right_result_vbcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_right_result_vbcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_right_result_vbcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_right_result_vbcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_right_result_vbcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_right_result_vbcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_right_result_vbcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_products_right_result_vbcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_right_result_vbcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_products_right_result_vbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_result_vbcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_right_result_vbcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_products_right_result_vbcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_right_result_vbcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_right_result_vbcoefficientscoefficientdiagonal)=pfc_left_products_right_result_vbcoefficientscoefficientdiagonalterm*pfc_right_products_right_result_vbcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_right_result_vbcoefficientscoefficientsum fs_v_pfc_products_right_result_vbcoefficientscoefficientsum. ((((exists fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_start. fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_start. fs_u_pfc_products_right_result_vbcoefficientscoefficientsum = fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_right_result_vbcoefficientscoefficient) = S ((S (S (pfc_index_products_right_result_vbcoefficients))) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_right_result_vbcoefficientscoefficientsum = fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_right_result_vbcoefficients))) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum) + (pfc_natural_sum_products_right_result_vbcoefficientscoefficient))) /\ forall fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps = S (pfc_index_products_right_result_vbcoefficients)) -> exists fs_a_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps fs_r_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps fs_s_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_result_vbcoefficientscoefficient)) /\ exists fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_right_result_vbcoefficientscoefficient = fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_result_vbcoefficientscoefficient) + (fs_a_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_right_result_vbcoefficientscoefficientsum = fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum) + (fs_r_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_right_result_vbcoefficientscoefficientsum = fs_q_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_vbcoefficientscoefficientsum) + (fs_s_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps = fs_r_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps + fs_a_pfc_products_right_result_vbcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_right_result_vbcoefficientscoefficientresiduebound. pfa_gap_products_right_result_vbcoefficientscoefficientresiduebound + S (pfc_value_products_right_result_vbcoefficients) = (p)) /\ ((exists pfa_offset_left_products_right_result_vbcoefficientscoefficientresiduecongruence pfa_offset_right_products_right_result_vbcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_right_result_vbcoefficientscoefficient) + (p) * pfa_offset_left_products_right_result_vbcoefficientscoefficientresiduecongruence = (pfc_value_products_right_result_vbcoefficients) + (p) * pfa_offset_right_products_right_result_vbcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ (((((forall fom_index_pfp_products_right_result_wbleft. (exists fom_gap_pfp_products_right_result_wbleft_index_bound. fom_gap_pfp_products_right_result_wbleft_index_bound + S (fom_index_pfp_products_right_result_wbleft) = L) -> exists fom_value_pfp_products_right_result_wbleft. ((((exists fom_beta_height_pfp_products_right_result_wbleft_entry. fom_beta_height_pfp_products_right_result_wbleft_entry + S (fom_value_pfp_products_right_result_wbleft) = S ((S (fom_index_pfp_products_right_result_wbleft)) * cc)) /\ exists fom_beta_quotient_pfp_products_right_result_wbleft_entry. cb = fom_beta_quotient_pfp_products_right_result_wbleft_entry * S ((S (fom_index_pfp_products_right_result_wbleft)) * cc) + (fom_value_pfp_products_right_result_wbleft))) /\ (exists fom_gap_pfp_products_right_result_wbleft_value_bound. fom_gap_pfp_products_right_result_wbleft_value_bound + S (fom_value_pfp_products_right_result_wbleft) = p))) /\ (((forall fom_index_pfp_products_right_result_wbright. (exists fom_gap_pfp_products_right_result_wbright_index_bound. fom_gap_pfp_products_right_result_wbright_index_bound + S (fom_index_pfp_products_right_result_wbright) = M) -> exists fom_value_pfp_products_right_result_wbright. ((((exists fom_beta_height_pfp_products_right_result_wbright_entry. fom_beta_height_pfp_products_right_result_wbright_entry + S (fom_value_pfp_products_right_result_wbright) = S ((S (fom_index_pfp_products_right_result_wbright)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_result_wbright_entry. db = fom_beta_quotient_pfp_products_right_result_wbright_entry * S ((S (fom_index_pfp_products_right_result_wbright)) * dc) + (fom_value_pfp_products_right_result_wbright))) /\ (exists fom_gap_pfp_products_right_result_wbright_value_bound. fom_gap_pfp_products_right_result_wbright_value_bound + S (fom_value_pfp_products_right_result_wbright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_products_right_result_wbcoefficients. (exists pfa_gap_products_right_result_wbcoefficientsbound. pfa_gap_products_right_result_wbcoefficientsbound + S (pfc_index_products_right_result_wbcoefficients) = (N)) -> exists pfc_value_products_right_result_wbcoefficients. ((((exists ff_h_pfp_products_right_result_wbcoefficientsentry. ff_h_pfp_products_right_result_wbcoefficientsentry + S (pfc_value_products_right_result_wbcoefficients) = S ((S (pfc_index_products_right_result_wbcoefficients)) * wc)) /\ exists ff_q_pfp_products_right_result_wbcoefficientsentry. wb = ff_q_pfp_products_right_result_wbcoefficientsentry * S ((S (pfc_index_products_right_result_wbcoefficients)) * wc) + (pfc_value_products_right_result_wbcoefficients))) /\ ((exists pfc_terms_code_products_right_result_wbcoefficientscoefficient pfc_terms_scale_products_right_result_wbcoefficientscoefficient pfc_natural_sum_products_right_result_wbcoefficientscoefficient. ((forall pfc_index_products_right_result_wbcoefficientscoefficientdiagonal. (exists pfa_gap_products_right_result_wbcoefficientscoefficientdiagonalbound. pfa_gap_products_right_result_wbcoefficientscoefficientdiagonalbound + S (pfc_index_products_right_result_wbcoefficientscoefficientdiagonal) = (S (pfc_index_products_right_result_wbcoefficients))) -> exists pfc_value_products_right_result_wbcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_right_result_wbcoefficientscoefficientdiagonalentry. ff_h_pfp_products_right_result_wbcoefficientscoefficientdiagonalentry + S (pfc_value_products_right_result_wbcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_right_result_wbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_result_wbcoefficientscoefficient)) /\ exists ff_q_pfp_products_right_result_wbcoefficientscoefficientdiagonalentry. pfc_terms_code_products_right_result_wbcoefficientscoefficient = ff_q_pfp_products_right_result_wbcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_right_result_wbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_result_wbcoefficientscoefficient) + (pfc_value_products_right_result_wbcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_right_result_wbcoefficientscoefficientdiagonalterm pfc_left_products_right_result_wbcoefficientscoefficientdiagonalterm pfc_right_products_right_result_wbcoefficientscoefficientdiagonalterm. (((pfc_index_products_right_result_wbcoefficientscoefficientdiagonal)+pfc_complement_products_right_result_wbcoefficientscoefficientdiagonalterm=(pfc_index_products_right_result_wbcoefficients)) /\ ((((((exists pfa_gap_products_right_result_wbcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_right_result_wbcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_right_result_wbcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_right_result_wbcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_right_result_wbcoefficientscoefficientdiagonal)) * cc)) /\ exists ff_q_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermleftentry. cb = ff_q_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_right_result_wbcoefficientscoefficientdiagonal)) * cc) + (pfc_left_products_right_result_wbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_result_wbcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_right_result_wbcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_products_right_result_wbcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_right_result_wbcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_right_result_wbcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_right_result_wbcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_right_result_wbcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_right_result_wbcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_right_result_wbcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_products_right_result_wbcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_right_result_wbcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_products_right_result_wbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_result_wbcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_right_result_wbcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_products_right_result_wbcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_right_result_wbcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_right_result_wbcoefficientscoefficientdiagonal)=pfc_left_products_right_result_wbcoefficientscoefficientdiagonalterm*pfc_right_products_right_result_wbcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_right_result_wbcoefficientscoefficientsum fs_v_pfc_products_right_result_wbcoefficientscoefficientsum. ((((exists fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_start. fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_start. fs_u_pfc_products_right_result_wbcoefficientscoefficientsum = fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_right_result_wbcoefficientscoefficient) = S ((S (S (pfc_index_products_right_result_wbcoefficients))) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_right_result_wbcoefficientscoefficientsum = fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_right_result_wbcoefficients))) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum) + (pfc_natural_sum_products_right_result_wbcoefficientscoefficient))) /\ forall fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps = S (pfc_index_products_right_result_wbcoefficients)) -> exists fs_a_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps fs_r_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps fs_s_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_result_wbcoefficientscoefficient)) /\ exists fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_right_result_wbcoefficientscoefficient = fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_result_wbcoefficientscoefficient) + (fs_a_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_right_result_wbcoefficientscoefficientsum = fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum) + (fs_r_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_right_result_wbcoefficientscoefficientsum = fs_q_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_result_wbcoefficientscoefficientsum) + (fs_s_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps = fs_r_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps + fs_a_pfc_products_right_result_wbcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_right_result_wbcoefficientscoefficientresiduebound. pfa_gap_products_right_result_wbcoefficientscoefficientresiduebound + S (pfc_value_products_right_result_wbcoefficients) = (p)) /\ ((exists pfa_offset_left_products_right_result_wbcoefficientscoefficientresiduecongruence pfa_offset_right_products_right_result_wbcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_right_result_wbcoefficientscoefficient) + (p) * pfa_offset_left_products_right_result_wbcoefficientscoefficientresiduecongruence = (pfc_value_products_right_result_wbcoefficients) + (p) * pfa_offset_right_products_right_result_wbcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfp_index_products_right_addition. (exists pfa_gap_products_right_additionindex. pfa_gap_products_right_additionindex + S (pfp_index_products_right_addition) = (N)) -> exists pfp_left_products_right_addition pfp_right_products_right_addition pfp_value_products_right_addition. ((((exists ff_h_pfp_products_right_additionleft. ff_h_pfp_products_right_additionleft + S (pfp_left_products_right_addition) = S ((S (pfp_index_products_right_addition)) * uc)) /\ exists ff_q_pfp_products_right_additionleft. ub = ff_q_pfp_products_right_additionleft * S ((S (pfp_index_products_right_addition)) * uc) + (pfp_left_products_right_addition))) /\ (((((exists ff_h_pfp_products_right_additionright. ff_h_pfp_products_right_additionright + S (pfp_right_products_right_addition) = S ((S (pfp_index_products_right_addition)) * vc)) /\ exists ff_q_pfp_products_right_additionright. vb = ff_q_pfp_products_right_additionright * S ((S (pfp_index_products_right_addition)) * vc) + (pfp_right_products_right_addition))) /\ (((((exists ff_h_pfp_products_right_additiontarget. ff_h_pfp_products_right_additiontarget + S (pfp_value_products_right_addition) = S ((S (pfp_index_products_right_addition)) * wc)) /\ exists ff_q_pfp_products_right_additiontarget. wb = ff_q_pfp_products_right_additiontarget * S ((S (pfp_index_products_right_addition)) * wc) + (pfp_value_products_right_addition))) /\ ((((exists pfa_gap_products_right_additionoperationleft. pfa_gap_products_right_additionoperationleft + S (pfp_left_products_right_addition) = (p)) /\ (((exists pfa_gap_products_right_additionoperationright. pfa_gap_products_right_additionoperationright + S (pfp_right_products_right_addition) = (p)) /\ ((((exists pfa_gap_products_right_additionoperationresultbound. pfa_gap_products_right_additionoperationresultbound + S (pfp_value_products_right_addition) = (p)) /\ ((exists pfa_offset_left_products_right_additionoperationresultcongruence pfa_offset_right_products_right_additionoperationresultcongruence. ((pfp_left_products_right_addition) + (pfp_right_products_right_addition)) + (p) * pfa_offset_left_products_right_additionoperationresultcongruence = (pfp_value_products_right_addition) + (p) * pfa_offset_right_products_right_additionoperationresultcongruence)))))))))))))))))))))))

Complete tactic proof in conservative notation

All 116 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

116 script commands · 25 reading checkpoints · 5 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 ab
  3. L3
    intro ac
  4. L4
    intro bb
  5. L5
    intro bc
  6. L6
    intro cb
  7. L7
    intro cc
  8. L8
    intro L
  9. L9
    intro db
  10. L10
    intro dc
02Fix variables and assumptionsL11–14

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

  1. L11
    intro M
  2. L12
    intro hp
  3. L13
    intro hd
  4. L14
    intro hs
03Establish hlengthL15–18

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial product length exists.

  1. L15
    have hlength : ∃ N. PolynomialProductLength(L,M,N)Definitions: PolynomialProductLength(L,M,N)Original native command in the exact edition
  2. L16
    specialize polynomial_product_length_exists (L)
  3. L17
    specialize polynomial_product_length_exists (M)
  4. L18
    apply polynomial_product_length_exists
04Separate the logical casesL19–19

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

  1. L19
    cases hlength
05Establish hboundsL20–29

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial add bounded.

  1. L20
    have hbounds : BetaPrefixInto(ab,ac,L,p) ∧ (BetaPrefixInto(bb,bc,L,p) ∧ BetaPrefixInto(cb,cc,L,p))Definitions: BetaPrefixInto(ab,ac,L,p)BetaPrefixInto(bb,bc,L,p)BetaPrefixInto(cb,cc,L,p)Original native command in the exact edition
  2. L21
    specialize prime_field_polynomial_add_bounded (p)
  3. L22
    specialize prime_field_polynomial_add_bounded (ab)
  4. L23
    specialize prime_field_polynomial_add_bounded (ac)
  5. L24
    specialize prime_field_polynomial_add_bounded (bb)
  6. L25
    specialize prime_field_polynomial_add_bounded (bc)
  7. L26
    specialize prime_field_polynomial_add_bounded (cb)
  8. L27
    specialize prime_field_polynomial_add_bounded (cc)
  9. L28
    specialize prime_field_polynomial_add_bounded (L)
  10. L29
    apply prime_field_polynomial_add_bounded
06Use earlier factsL30–30

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

  1. L30
    exact hs
07Separate the logical casesL31–32

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

  1. L31
    cases hbounds
  2. L32
    cases hbounds_right
08Establish huL33–42

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial convolution at length exists.

  1. L33
    have hu : ∃ ub. ∃ uc. FpPolyProduct(p,ab,ac,L,db,dc,M,ub,uc,x)Definitions: FpPolyProduct(p,ab,ac,L,db,dc,M,ub,uc,x)Original native command in the exact edition
  2. L34
    specialize prime_field_polynomial_convolution_at_length_exists (p)
  3. L35
    specialize prime_field_polynomial_convolution_at_length_exists (ab)
  4. L36
    specialize prime_field_polynomial_convolution_at_length_exists (ac)
  5. L37
    specialize prime_field_polynomial_convolution_at_length_exists (L)
  6. L38
    specialize prime_field_polynomial_convolution_at_length_exists (db)
  7. L39
    specialize prime_field_polynomial_convolution_at_length_exists (dc)
  8. L40
    specialize prime_field_polynomial_convolution_at_length_exists (M)
  9. L41
    specialize prime_field_polynomial_convolution_at_length_exists (x)
  10. L42
    apply prime_field_polynomial_convolution_at_length_exists
09Use earlier factsL43–46

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

  1. L43
    exact hp
  2. L44
    exact hbounds_left
  3. L45
    exact hd
  4. L46
    exact hlength_witness
10Separate the logical casesL47–48

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

  1. L47
    cases hu
  2. L48
    cases hu_witness
11Establish hvL49–58

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial convolution at length exists.

  1. L49
    have hv : ∃ ub. ∃ uc. FpPolyProduct(p,bb,bc,L,db,dc,M,ub,uc,x)Definitions: FpPolyProduct(p,bb,bc,L,db,dc,M,ub,uc,x)Original native command in the exact edition
  2. L50
    specialize prime_field_polynomial_convolution_at_length_exists (p)
  3. L51
    specialize prime_field_polynomial_convolution_at_length_exists (bb)
  4. L52
    specialize prime_field_polynomial_convolution_at_length_exists (bc)
  5. L53
    specialize prime_field_polynomial_convolution_at_length_exists (L)
  6. L54
    specialize prime_field_polynomial_convolution_at_length_exists (db)
  7. L55
    specialize prime_field_polynomial_convolution_at_length_exists (dc)
  8. L56
    specialize prime_field_polynomial_convolution_at_length_exists (M)
  9. L57
    specialize prime_field_polynomial_convolution_at_length_exists (x)
  10. L58
    apply prime_field_polynomial_convolution_at_length_exists
12Use earlier factsL59–62

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

  1. L59
    exact hp
  2. L60
    exact hbounds_right_left
  3. L61
    exact hd
  4. L62
    exact hlength_witness
13Separate the logical casesL63–64

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

  1. L63
    cases hv
  2. L64
    cases hv_witness
14Establish hwL65–74

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial convolution at length exists.

  1. L65
    have hw : ∃ ub. ∃ uc. FpPolyProduct(p,cb,cc,L,db,dc,M,ub,uc,x)Definitions: FpPolyProduct(p,cb,cc,L,db,dc,M,ub,uc,x)Original native command in the exact edition
  2. L66
    specialize prime_field_polynomial_convolution_at_length_exists (p)
  3. L67
    specialize prime_field_polynomial_convolution_at_length_exists (cb)
  4. L68
    specialize prime_field_polynomial_convolution_at_length_exists (cc)
  5. L69
    specialize prime_field_polynomial_convolution_at_length_exists (L)
  6. L70
    specialize prime_field_polynomial_convolution_at_length_exists (db)
  7. L71
    specialize prime_field_polynomial_convolution_at_length_exists (dc)
  8. L72
    specialize prime_field_polynomial_convolution_at_length_exists (M)
  9. L73
    specialize prime_field_polynomial_convolution_at_length_exists (x)
  10. L74
    apply prime_field_polynomial_convolution_at_length_exists
15Use earlier factsL75–78

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

  1. L75
    exact hp
  2. L76
    exact hbounds_right_right
  3. L77
    exact hd
  4. L78
    exact hlength_witness
16Separate the logical casesL79–80

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

  1. L79
    cases hw
  2. L80
    cases hw_witness
17Construct an explicit witnessL81–87

Supply the displayed value, then prove that it has the required property.

  1. L81
    exists x
  2. L82
    exists x1
  3. L83
    exists x2
  4. L84
    exists x3
  5. L85
    exists x4
  6. L86
    exists x5
  7. L87
    exists x6
18Separate the logical casesL88–88

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

  1. L88
    split
19Use earlier factsL89–89

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

  1. L89
    exact hu_witness_witness
20Separate the logical casesL90–90

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

  1. L90
    split
21Use earlier factsL91–91

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

  1. L91
    exact hv_witness_witness
22Separate the logical casesL92–92

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

  1. L92
    split
23Use earlier factsL93–102

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

  1. L93
    exact hw_witness_witness
  2. L94
    specialize prime_field_polynomial_convolution_right_add (p)
  3. L95
    specialize prime_field_polynomial_convolution_right_add (ab)
  4. L96
    specialize prime_field_polynomial_convolution_right_add (ac)
  5. L97
    specialize prime_field_polynomial_convolution_right_add (bb)
  6. L98
    specialize prime_field_polynomial_convolution_right_add (bc)
  7. L99
    specialize prime_field_polynomial_convolution_right_add (cb)
  8. L100
    specialize prime_field_polynomial_convolution_right_add (cc)
  9. L101
    specialize prime_field_polynomial_convolution_right_add (L)
  10. L102
    specialize prime_field_polynomial_convolution_right_add (db)
24Use earlier factsL103–112

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

  1. L103
    specialize prime_field_polynomial_convolution_right_add (dc)
  2. L104
    specialize prime_field_polynomial_convolution_right_add (M)
  3. L105
    specialize prime_field_polynomial_convolution_right_add (x1)
  4. L106
    specialize prime_field_polynomial_convolution_right_add (x2)
  5. L107
    specialize prime_field_polynomial_convolution_right_add (x3)
  6. L108
    specialize prime_field_polynomial_convolution_right_add (x4)
  7. L109
    specialize prime_field_polynomial_convolution_right_add (x5)
  8. L110
    specialize prime_field_polynomial_convolution_right_add (x6)
  9. L111
    specialize prime_field_polynomial_convolution_right_add (x)
  10. L112
    apply prime_field_polynomial_convolution_right_add
25Use earlier factsL113–116

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

  1. L113
    exact hs
  2. L114
    exact hu_witness_witness
  3. L115
    exact hv_witness_witness
  4. L116
    exact hw_witness_witness

Library-wide reading audit

Original defined command ledger · 116 lines
  1. 0001intro p
  2. 0002intro ab
  3. 0003intro ac
  4. 0004intro bb
  5. 0005intro bc
  6. 0006intro cb
  7. 0007intro cc
  8. 0008intro L
  9. 0009intro db
  10. 0010intro dc
  11. 0011intro M
  12. 0012intro hp
  13. 0013intro hd
  14. 0014intro hs
  15. 0015have hlength : ∃ N. PolynomialProductLength(L,M,N)
  16. 0016specialize polynomial_product_length_exists (L)
  17. 0017specialize polynomial_product_length_exists (M)
  18. 0018apply polynomial_product_length_exists
  19. 0019cases hlength
  20. 0020have hbounds : BetaPrefixInto(ab,ac,L,p) ∧ (BetaPrefixInto(bb,bc,L,p)BetaPrefixInto(cb,cc,L,p))
  21. 0021specialize prime_field_polynomial_add_bounded (p)
  22. 0022specialize prime_field_polynomial_add_bounded (ab)
  23. 0023specialize prime_field_polynomial_add_bounded (ac)
  24. 0024specialize prime_field_polynomial_add_bounded (bb)
  25. 0025specialize prime_field_polynomial_add_bounded (bc)
  26. 0026specialize prime_field_polynomial_add_bounded (cb)
  27. 0027specialize prime_field_polynomial_add_bounded (cc)
  28. 0028specialize prime_field_polynomial_add_bounded (L)
  29. 0029apply prime_field_polynomial_add_bounded
  30. 0030exact hs
  31. 0031cases hbounds
  32. 0032cases hbounds_right
  33. 0033have hu : ∃ ub. ∃ uc. FpPolyProduct(p,ab,ac,L,db,dc,M,ub,uc,x)
  34. 0034specialize prime_field_polynomial_convolution_at_length_exists (p)
  35. 0035specialize prime_field_polynomial_convolution_at_length_exists (ab)
  36. 0036specialize prime_field_polynomial_convolution_at_length_exists (ac)
  37. 0037specialize prime_field_polynomial_convolution_at_length_exists (L)
  38. 0038specialize prime_field_polynomial_convolution_at_length_exists (db)
  39. 0039specialize prime_field_polynomial_convolution_at_length_exists (dc)
  40. 0040specialize prime_field_polynomial_convolution_at_length_exists (M)
  41. 0041specialize prime_field_polynomial_convolution_at_length_exists (x)
  42. 0042apply prime_field_polynomial_convolution_at_length_exists
  43. 0043exact hp
  44. 0044exact hbounds_left
  45. 0045exact hd
  46. 0046exact hlength_witness
  47. 0047cases hu
  48. 0048cases hu_witness
  49. 0049have hv : ∃ ub. ∃ uc. FpPolyProduct(p,bb,bc,L,db,dc,M,ub,uc,x)
  50. 0050specialize prime_field_polynomial_convolution_at_length_exists (p)
  51. 0051specialize prime_field_polynomial_convolution_at_length_exists (bb)
  52. 0052specialize prime_field_polynomial_convolution_at_length_exists (bc)
  53. 0053specialize prime_field_polynomial_convolution_at_length_exists (L)
  54. 0054specialize prime_field_polynomial_convolution_at_length_exists (db)
  55. 0055specialize prime_field_polynomial_convolution_at_length_exists (dc)
  56. 0056specialize prime_field_polynomial_convolution_at_length_exists (M)
  57. 0057specialize prime_field_polynomial_convolution_at_length_exists (x)
  58. 0058apply prime_field_polynomial_convolution_at_length_exists
  59. 0059exact hp
  60. 0060exact hbounds_right_left
  61. 0061exact hd
  62. 0062exact hlength_witness
  63. 0063cases hv
  64. 0064cases hv_witness
  65. 0065have hw : ∃ ub. ∃ uc. FpPolyProduct(p,cb,cc,L,db,dc,M,ub,uc,x)
  66. 0066specialize prime_field_polynomial_convolution_at_length_exists (p)
  67. 0067specialize prime_field_polynomial_convolution_at_length_exists (cb)
  68. 0068specialize prime_field_polynomial_convolution_at_length_exists (cc)
  69. 0069specialize prime_field_polynomial_convolution_at_length_exists (L)
  70. 0070specialize prime_field_polynomial_convolution_at_length_exists (db)
  71. 0071specialize prime_field_polynomial_convolution_at_length_exists (dc)
  72. 0072specialize prime_field_polynomial_convolution_at_length_exists (M)
  73. 0073specialize prime_field_polynomial_convolution_at_length_exists (x)
  74. 0074apply prime_field_polynomial_convolution_at_length_exists
  75. 0075exact hp
  76. 0076exact hbounds_right_right
  77. 0077exact hd
  78. 0078exact hlength_witness
  79. 0079cases hw
  80. 0080cases hw_witness
  81. 0081exists x
  82. 0082exists x1
  83. 0083exists x2
  84. 0084exists x3
  85. 0085exists x4
  86. 0086exists x5
  87. 0087exists x6
  88. 0088split
  89. 0089exact hu_witness_witness
  90. 0090split
  91. 0091exact hv_witness_witness
  92. 0092split
  93. 0093exact hw_witness_witness
  94. 0094specialize prime_field_polynomial_convolution_right_add (p)
  95. 0095specialize prime_field_polynomial_convolution_right_add (ab)
  96. 0096specialize prime_field_polynomial_convolution_right_add (ac)
  97. 0097specialize prime_field_polynomial_convolution_right_add (bb)
  98. 0098specialize prime_field_polynomial_convolution_right_add (bc)
  99. 0099specialize prime_field_polynomial_convolution_right_add (cb)
  100. 0100specialize prime_field_polynomial_convolution_right_add (cc)
  101. 0101specialize prime_field_polynomial_convolution_right_add (L)
  102. 0102specialize prime_field_polynomial_convolution_right_add (db)
  103. 0103specialize prime_field_polynomial_convolution_right_add (dc)
  104. 0104specialize prime_field_polynomial_convolution_right_add (M)
  105. 0105specialize prime_field_polynomial_convolution_right_add (x1)
  106. 0106specialize prime_field_polynomial_convolution_right_add (x2)
  107. 0107specialize prime_field_polynomial_convolution_right_add (x3)
  108. 0108specialize prime_field_polynomial_convolution_right_add (x4)
  109. 0109specialize prime_field_polynomial_convolution_right_add (x5)
  110. 0110specialize prime_field_polynomial_convolution_right_add (x6)
  111. 0111specialize prime_field_polynomial_convolution_right_add (x)
  112. 0112apply prime_field_polynomial_convolution_right_add
  113. 0113exact hs
  114. 0114exact hu_witness_witness
  115. 0115exact hv_witness_witness
  116. 0116exact hw_witness_witness