PX0051

prime_field_polynomial_right_distributive_products_exists

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

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.

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

Exact expanded first-order arithmetic statement

forall p 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)))))))))))))))))))))))

Constructive proof overview

Generated structural guide

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.

The unchanged tactic script uses 4 declared prerequisites and contains 116 exact native proof lines.

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

Proof neighborhood

Direct dependencies

polynomial_product_length_exists Alpha theorem; checked-use authorized prime_field_polynomial_add_bounded Alpha theorem; checked-use authorized prime_field_polynomial_convolution_at_length_exists Alpha theorem; checked-use authorized PX004D prime_field_polynomial_convolution_right_add

Direct dependents

none

Formal native tactic body

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

Read the argument

Proof checkpoints

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.

Named ingredients (1)

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

01Fix variables and assumptionsL1–10

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

  1. L1
    intro p
  2. L2
    intro 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 : exists N. ((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))
  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
  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
  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
  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
  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 exact 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 : exists N. ((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (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 : ((forall fom_index_pfp_products_right_bounded_ab. (exists fom_gap_pfp_products_right_bounded_ab_index_bound. fom_gap_pfp_products_right_bounded_ab_index_bound + S (fom_index_pfp_products_right_bounded_ab) = L) -> exists fom_value_pfp_products_right_bounded_ab. ((((exists fom_beta_height_pfp_products_right_bounded_ab_entry. fom_beta_height_pfp_products_right_bounded_ab_entry + S (fom_value_pfp_products_right_bounded_ab) = S ((S (fom_index_pfp_products_right_bounded_ab)) * ac)) /\ exists fom_beta_quotient_pfp_products_right_bounded_ab_entry. ab = fom_beta_quotient_pfp_products_right_bounded_ab_entry * S ((S (fom_index_pfp_products_right_bounded_ab)) * ac) + (fom_value_pfp_products_right_bounded_ab))) /\ (exists fom_gap_pfp_products_right_bounded_ab_value_bound. fom_gap_pfp_products_right_bounded_ab_value_bound + S (fom_value_pfp_products_right_bounded_ab) = p))) /\ (((forall fom_index_pfp_products_right_bounded_bb. (exists fom_gap_pfp_products_right_bounded_bb_index_bound. fom_gap_pfp_products_right_bounded_bb_index_bound + S (fom_index_pfp_products_right_bounded_bb) = L) -> exists fom_value_pfp_products_right_bounded_bb. ((((exists fom_beta_height_pfp_products_right_bounded_bb_entry. fom_beta_height_pfp_products_right_bounded_bb_entry + S (fom_value_pfp_products_right_bounded_bb) = S ((S (fom_index_pfp_products_right_bounded_bb)) * bc)) /\ exists fom_beta_quotient_pfp_products_right_bounded_bb_entry. bb = fom_beta_quotient_pfp_products_right_bounded_bb_entry * S ((S (fom_index_pfp_products_right_bounded_bb)) * bc) + (fom_value_pfp_products_right_bounded_bb))) /\ (exists fom_gap_pfp_products_right_bounded_bb_value_bound. fom_gap_pfp_products_right_bounded_bb_value_bound + S (fom_value_pfp_products_right_bounded_bb) = p))) /\ ((forall fom_index_pfp_products_right_bounded_cb. (exists fom_gap_pfp_products_right_bounded_cb_index_bound. fom_gap_pfp_products_right_bounded_cb_index_bound + S (fom_index_pfp_products_right_bounded_cb) = L) -> exists fom_value_pfp_products_right_bounded_cb. ((((exists fom_beta_height_pfp_products_right_bounded_cb_entry. fom_beta_height_pfp_products_right_bounded_cb_entry + S (fom_value_pfp_products_right_bounded_cb) = S ((S (fom_index_pfp_products_right_bounded_cb)) * cc)) /\ exists fom_beta_quotient_pfp_products_right_bounded_cb_entry. cb = fom_beta_quotient_pfp_products_right_bounded_cb_entry * S ((S (fom_index_pfp_products_right_bounded_cb)) * cc) + (fom_value_pfp_products_right_bounded_cb))) /\ (exists fom_gap_pfp_products_right_bounded_cb_value_bound. fom_gap_pfp_products_right_bounded_cb_value_bound + S (fom_value_pfp_products_right_bounded_cb) = 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 : exists ub uc. ((forall fom_index_pfp_products_right_huleft. (exists fom_gap_pfp_products_right_huleft_index_bound. fom_gap_pfp_products_right_huleft_index_bound + S (fom_index_pfp_products_right_huleft) = L) -> exists fom_value_pfp_products_right_huleft. ((((exists fom_beta_height_pfp_products_right_huleft_entry. fom_beta_height_pfp_products_right_huleft_entry + S (fom_value_pfp_products_right_huleft) = S ((S (fom_index_pfp_products_right_huleft)) * ac)) /\ exists fom_beta_quotient_pfp_products_right_huleft_entry. ab = fom_beta_quotient_pfp_products_right_huleft_entry * S ((S (fom_index_pfp_products_right_huleft)) * ac) + (fom_value_pfp_products_right_huleft))) /\ (exists fom_gap_pfp_products_right_huleft_value_bound. fom_gap_pfp_products_right_huleft_value_bound + S (fom_value_pfp_products_right_huleft) = p))) /\ (((forall fom_index_pfp_products_right_huright. (exists fom_gap_pfp_products_right_huright_index_bound. fom_gap_pfp_products_right_huright_index_bound + S (fom_index_pfp_products_right_huright) = M) -> exists fom_value_pfp_products_right_huright. ((((exists fom_beta_height_pfp_products_right_huright_entry. fom_beta_height_pfp_products_right_huright_entry + S (fom_value_pfp_products_right_huright) = S ((S (fom_index_pfp_products_right_huright)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_huright_entry. db = fom_beta_quotient_pfp_products_right_huright_entry * S ((S (fom_index_pfp_products_right_huright)) * dc) + (fom_value_pfp_products_right_huright))) /\ (exists fom_gap_pfp_products_right_huright_value_bound. fom_gap_pfp_products_right_huright_value_bound + S (fom_value_pfp_products_right_huright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((x)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (x)))))))) /\ ((forall pfc_index_products_right_hucoefficients. (exists pfa_gap_products_right_hucoefficientsbound. pfa_gap_products_right_hucoefficientsbound + S (pfc_index_products_right_hucoefficients) = (x)) -> exists pfc_value_products_right_hucoefficients. ((((exists ff_h_pfp_products_right_hucoefficientsentry. ff_h_pfp_products_right_hucoefficientsentry + S (pfc_value_products_right_hucoefficients) = S ((S (pfc_index_products_right_hucoefficients)) * uc)) /\ exists ff_q_pfp_products_right_hucoefficientsentry. ub = ff_q_pfp_products_right_hucoefficientsentry * S ((S (pfc_index_products_right_hucoefficients)) * uc) + (pfc_value_products_right_hucoefficients))) /\ ((exists pfc_terms_code_products_right_hucoefficientscoefficient pfc_terms_scale_products_right_hucoefficientscoefficient pfc_natural_sum_products_right_hucoefficientscoefficient. ((forall pfc_index_products_right_hucoefficientscoefficientdiagonal. (exists pfa_gap_products_right_hucoefficientscoefficientdiagonalbound. pfa_gap_products_right_hucoefficientscoefficientdiagonalbound + S (pfc_index_products_right_hucoefficientscoefficientdiagonal) = (S (pfc_index_products_right_hucoefficients))) -> exists pfc_value_products_right_hucoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_right_hucoefficientscoefficientdiagonalentry. ff_h_pfp_products_right_hucoefficientscoefficientdiagonalentry + S (pfc_value_products_right_hucoefficientscoefficientdiagonal) = S ((S (pfc_index_products_right_hucoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_hucoefficientscoefficient)) /\ exists ff_q_pfp_products_right_hucoefficientscoefficientdiagonalentry. pfc_terms_code_products_right_hucoefficientscoefficient = ff_q_pfp_products_right_hucoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_right_hucoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_hucoefficientscoefficient) + (pfc_value_products_right_hucoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_right_hucoefficientscoefficientdiagonalterm pfc_left_products_right_hucoefficientscoefficientdiagonalterm pfc_right_products_right_hucoefficientscoefficientdiagonalterm. (((pfc_index_products_right_hucoefficientscoefficientdiagonal)+pfc_complement_products_right_hucoefficientscoefficientdiagonalterm=(pfc_index_products_right_hucoefficients)) /\ ((((((exists pfa_gap_products_right_hucoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_right_hucoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_right_hucoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_products_right_hucoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_right_hucoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_right_hucoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_right_hucoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_products_right_hucoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_products_right_hucoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_right_hucoefficientscoefficientdiagonal)) * ac) + (pfc_left_products_right_hucoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_hucoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_right_hucoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_products_right_hucoefficientscoefficientdiagonal)) /\ (((pfc_left_products_right_hucoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_right_hucoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_right_hucoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_right_hucoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_products_right_hucoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_right_hucoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_right_hucoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_right_hucoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_products_right_hucoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_products_right_hucoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_right_hucoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_products_right_hucoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_hucoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_right_hucoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_products_right_hucoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_right_hucoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_right_hucoefficientscoefficientdiagonal)=pfc_left_products_right_hucoefficientscoefficientdiagonalterm*pfc_right_products_right_hucoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_right_hucoefficientscoefficientsum fs_v_pfc_products_right_hucoefficientscoefficientsum. ((((exists fs_h_pfc_products_right_hucoefficientscoefficientsum_body_start. fs_h_pfc_products_right_hucoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_right_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hucoefficientscoefficientsum_body_start. fs_u_pfc_products_right_hucoefficientscoefficientsum = fs_q_pfc_products_right_hucoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_right_hucoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_right_hucoefficientscoefficientsum_body_terminal. fs_h_pfc_products_right_hucoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_right_hucoefficientscoefficient) = S ((S (S (pfc_index_products_right_hucoefficients))) * fs_v_pfc_products_right_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hucoefficientscoefficientsum_body_terminal. fs_u_pfc_products_right_hucoefficientscoefficientsum = fs_q_pfc_products_right_hucoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_right_hucoefficients))) * fs_v_pfc_products_right_hucoefficientscoefficientsum) + (pfc_natural_sum_products_right_hucoefficientscoefficient))) /\ forall fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_right_hucoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_right_hucoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps = S (pfc_index_products_right_hucoefficients)) -> exists fs_a_pfc_products_right_hucoefficientscoefficientsum_body_steps fs_r_pfc_products_right_hucoefficientscoefficientsum_body_steps fs_s_pfc_products_right_hucoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_right_hucoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_right_hucoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_right_hucoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_hucoefficientscoefficient)) /\ exists fs_q_pfc_products_right_hucoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_right_hucoefficientscoefficient = fs_q_pfc_products_right_hucoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_hucoefficientscoefficient) + (fs_a_pfc_products_right_hucoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_hucoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_right_hucoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_right_hucoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hucoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_right_hucoefficientscoefficientsum = fs_q_pfc_products_right_hucoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hucoefficientscoefficientsum) + (fs_r_pfc_products_right_hucoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_hucoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_right_hucoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_right_hucoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hucoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_right_hucoefficientscoefficientsum = fs_q_pfc_products_right_hucoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_right_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hucoefficientscoefficientsum) + (fs_s_pfc_products_right_hucoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_right_hucoefficientscoefficientsum_body_steps = fs_r_pfc_products_right_hucoefficientscoefficientsum_body_steps + fs_a_pfc_products_right_hucoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_right_hucoefficientscoefficientresiduebound. pfa_gap_products_right_hucoefficientscoefficientresiduebound + S (pfc_value_products_right_hucoefficients) = (p)) /\ ((exists pfa_offset_left_products_right_hucoefficientscoefficientresiduecongruence pfa_offset_right_products_right_hucoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_right_hucoefficientscoefficient) + (p) * pfa_offset_left_products_right_hucoefficientscoefficientresiduecongruence = (pfc_value_products_right_hucoefficients) + (p) * pfa_offset_right_products_right_hucoefficientscoefficientresiduecongruence))))))))))))))))))
  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 : exists ub uc. ((forall fom_index_pfp_products_right_hvleft. (exists fom_gap_pfp_products_right_hvleft_index_bound. fom_gap_pfp_products_right_hvleft_index_bound + S (fom_index_pfp_products_right_hvleft) = L) -> exists fom_value_pfp_products_right_hvleft. ((((exists fom_beta_height_pfp_products_right_hvleft_entry. fom_beta_height_pfp_products_right_hvleft_entry + S (fom_value_pfp_products_right_hvleft) = S ((S (fom_index_pfp_products_right_hvleft)) * bc)) /\ exists fom_beta_quotient_pfp_products_right_hvleft_entry. bb = fom_beta_quotient_pfp_products_right_hvleft_entry * S ((S (fom_index_pfp_products_right_hvleft)) * bc) + (fom_value_pfp_products_right_hvleft))) /\ (exists fom_gap_pfp_products_right_hvleft_value_bound. fom_gap_pfp_products_right_hvleft_value_bound + S (fom_value_pfp_products_right_hvleft) = p))) /\ (((forall fom_index_pfp_products_right_hvright. (exists fom_gap_pfp_products_right_hvright_index_bound. fom_gap_pfp_products_right_hvright_index_bound + S (fom_index_pfp_products_right_hvright) = M) -> exists fom_value_pfp_products_right_hvright. ((((exists fom_beta_height_pfp_products_right_hvright_entry. fom_beta_height_pfp_products_right_hvright_entry + S (fom_value_pfp_products_right_hvright) = S ((S (fom_index_pfp_products_right_hvright)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_hvright_entry. db = fom_beta_quotient_pfp_products_right_hvright_entry * S ((S (fom_index_pfp_products_right_hvright)) * dc) + (fom_value_pfp_products_right_hvright))) /\ (exists fom_gap_pfp_products_right_hvright_value_bound. fom_gap_pfp_products_right_hvright_value_bound + S (fom_value_pfp_products_right_hvright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((x)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (x)))))))) /\ ((forall pfc_index_products_right_hvcoefficients. (exists pfa_gap_products_right_hvcoefficientsbound. pfa_gap_products_right_hvcoefficientsbound + S (pfc_index_products_right_hvcoefficients) = (x)) -> exists pfc_value_products_right_hvcoefficients. ((((exists ff_h_pfp_products_right_hvcoefficientsentry. ff_h_pfp_products_right_hvcoefficientsentry + S (pfc_value_products_right_hvcoefficients) = S ((S (pfc_index_products_right_hvcoefficients)) * uc)) /\ exists ff_q_pfp_products_right_hvcoefficientsentry. ub = ff_q_pfp_products_right_hvcoefficientsentry * S ((S (pfc_index_products_right_hvcoefficients)) * uc) + (pfc_value_products_right_hvcoefficients))) /\ ((exists pfc_terms_code_products_right_hvcoefficientscoefficient pfc_terms_scale_products_right_hvcoefficientscoefficient pfc_natural_sum_products_right_hvcoefficientscoefficient. ((forall pfc_index_products_right_hvcoefficientscoefficientdiagonal. (exists pfa_gap_products_right_hvcoefficientscoefficientdiagonalbound. pfa_gap_products_right_hvcoefficientscoefficientdiagonalbound + S (pfc_index_products_right_hvcoefficientscoefficientdiagonal) = (S (pfc_index_products_right_hvcoefficients))) -> exists pfc_value_products_right_hvcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_right_hvcoefficientscoefficientdiagonalentry. ff_h_pfp_products_right_hvcoefficientscoefficientdiagonalentry + S (pfc_value_products_right_hvcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_right_hvcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_hvcoefficientscoefficient)) /\ exists ff_q_pfp_products_right_hvcoefficientscoefficientdiagonalentry. pfc_terms_code_products_right_hvcoefficientscoefficient = ff_q_pfp_products_right_hvcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_right_hvcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_hvcoefficientscoefficient) + (pfc_value_products_right_hvcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_right_hvcoefficientscoefficientdiagonalterm pfc_left_products_right_hvcoefficientscoefficientdiagonalterm pfc_right_products_right_hvcoefficientscoefficientdiagonalterm. (((pfc_index_products_right_hvcoefficientscoefficientdiagonal)+pfc_complement_products_right_hvcoefficientscoefficientdiagonalterm=(pfc_index_products_right_hvcoefficients)) /\ ((((((exists pfa_gap_products_right_hvcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_right_hvcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_right_hvcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_products_right_hvcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_right_hvcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_right_hvcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_right_hvcoefficientscoefficientdiagonal)) * bc)) /\ exists ff_q_pfp_products_right_hvcoefficientscoefficientdiagonaltermleftentry. bb = ff_q_pfp_products_right_hvcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_right_hvcoefficientscoefficientdiagonal)) * bc) + (pfc_left_products_right_hvcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_hvcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_right_hvcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_products_right_hvcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_right_hvcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_right_hvcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_right_hvcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_right_hvcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_products_right_hvcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_right_hvcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_right_hvcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_right_hvcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_products_right_hvcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_products_right_hvcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_right_hvcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_products_right_hvcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_hvcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_right_hvcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_products_right_hvcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_right_hvcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_right_hvcoefficientscoefficientdiagonal)=pfc_left_products_right_hvcoefficientscoefficientdiagonalterm*pfc_right_products_right_hvcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_right_hvcoefficientscoefficientsum fs_v_pfc_products_right_hvcoefficientscoefficientsum. ((((exists fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_start. fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_right_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_start. fs_u_pfc_products_right_hvcoefficientscoefficientsum = fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_right_hvcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_right_hvcoefficientscoefficient) = S ((S (S (pfc_index_products_right_hvcoefficients))) * fs_v_pfc_products_right_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_right_hvcoefficientscoefficientsum = fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_right_hvcoefficients))) * fs_v_pfc_products_right_hvcoefficientscoefficientsum) + (pfc_natural_sum_products_right_hvcoefficientscoefficient))) /\ forall fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_right_hvcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_right_hvcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps = S (pfc_index_products_right_hvcoefficients)) -> exists fs_a_pfc_products_right_hvcoefficientscoefficientsum_body_steps fs_r_pfc_products_right_hvcoefficientscoefficientsum_body_steps fs_s_pfc_products_right_hvcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_right_hvcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_hvcoefficientscoefficient)) /\ exists fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_right_hvcoefficientscoefficient = fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_hvcoefficientscoefficient) + (fs_a_pfc_products_right_hvcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_right_hvcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_right_hvcoefficientscoefficientsum = fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hvcoefficientscoefficientsum) + (fs_r_pfc_products_right_hvcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_right_hvcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_right_hvcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_right_hvcoefficientscoefficientsum = fs_q_pfc_products_right_hvcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_right_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hvcoefficientscoefficientsum) + (fs_s_pfc_products_right_hvcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_right_hvcoefficientscoefficientsum_body_steps = fs_r_pfc_products_right_hvcoefficientscoefficientsum_body_steps + fs_a_pfc_products_right_hvcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_right_hvcoefficientscoefficientresiduebound. pfa_gap_products_right_hvcoefficientscoefficientresiduebound + S (pfc_value_products_right_hvcoefficients) = (p)) /\ ((exists pfa_offset_left_products_right_hvcoefficientscoefficientresiduecongruence pfa_offset_right_products_right_hvcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_right_hvcoefficientscoefficient) + (p) * pfa_offset_left_products_right_hvcoefficientscoefficientresiduecongruence = (pfc_value_products_right_hvcoefficients) + (p) * pfa_offset_right_products_right_hvcoefficientscoefficientresiduecongruence))))))))))))))))))
  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 : exists ub uc. ((forall fom_index_pfp_products_right_hwleft. (exists fom_gap_pfp_products_right_hwleft_index_bound. fom_gap_pfp_products_right_hwleft_index_bound + S (fom_index_pfp_products_right_hwleft) = L) -> exists fom_value_pfp_products_right_hwleft. ((((exists fom_beta_height_pfp_products_right_hwleft_entry. fom_beta_height_pfp_products_right_hwleft_entry + S (fom_value_pfp_products_right_hwleft) = S ((S (fom_index_pfp_products_right_hwleft)) * cc)) /\ exists fom_beta_quotient_pfp_products_right_hwleft_entry. cb = fom_beta_quotient_pfp_products_right_hwleft_entry * S ((S (fom_index_pfp_products_right_hwleft)) * cc) + (fom_value_pfp_products_right_hwleft))) /\ (exists fom_gap_pfp_products_right_hwleft_value_bound. fom_gap_pfp_products_right_hwleft_value_bound + S (fom_value_pfp_products_right_hwleft) = p))) /\ (((forall fom_index_pfp_products_right_hwright. (exists fom_gap_pfp_products_right_hwright_index_bound. fom_gap_pfp_products_right_hwright_index_bound + S (fom_index_pfp_products_right_hwright) = M) -> exists fom_value_pfp_products_right_hwright. ((((exists fom_beta_height_pfp_products_right_hwright_entry. fom_beta_height_pfp_products_right_hwright_entry + S (fom_value_pfp_products_right_hwright) = S ((S (fom_index_pfp_products_right_hwright)) * dc)) /\ exists fom_beta_quotient_pfp_products_right_hwright_entry. db = fom_beta_quotient_pfp_products_right_hwright_entry * S ((S (fom_index_pfp_products_right_hwright)) * dc) + (fom_value_pfp_products_right_hwright))) /\ (exists fom_gap_pfp_products_right_hwright_value_bound. fom_gap_pfp_products_right_hwright_value_bound + S (fom_value_pfp_products_right_hwright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((x)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (x)))))))) /\ ((forall pfc_index_products_right_hwcoefficients. (exists pfa_gap_products_right_hwcoefficientsbound. pfa_gap_products_right_hwcoefficientsbound + S (pfc_index_products_right_hwcoefficients) = (x)) -> exists pfc_value_products_right_hwcoefficients. ((((exists ff_h_pfp_products_right_hwcoefficientsentry. ff_h_pfp_products_right_hwcoefficientsentry + S (pfc_value_products_right_hwcoefficients) = S ((S (pfc_index_products_right_hwcoefficients)) * uc)) /\ exists ff_q_pfp_products_right_hwcoefficientsentry. ub = ff_q_pfp_products_right_hwcoefficientsentry * S ((S (pfc_index_products_right_hwcoefficients)) * uc) + (pfc_value_products_right_hwcoefficients))) /\ ((exists pfc_terms_code_products_right_hwcoefficientscoefficient pfc_terms_scale_products_right_hwcoefficientscoefficient pfc_natural_sum_products_right_hwcoefficientscoefficient. ((forall pfc_index_products_right_hwcoefficientscoefficientdiagonal. (exists pfa_gap_products_right_hwcoefficientscoefficientdiagonalbound. pfa_gap_products_right_hwcoefficientscoefficientdiagonalbound + S (pfc_index_products_right_hwcoefficientscoefficientdiagonal) = (S (pfc_index_products_right_hwcoefficients))) -> exists pfc_value_products_right_hwcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_right_hwcoefficientscoefficientdiagonalentry. ff_h_pfp_products_right_hwcoefficientscoefficientdiagonalentry + S (pfc_value_products_right_hwcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_right_hwcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_hwcoefficientscoefficient)) /\ exists ff_q_pfp_products_right_hwcoefficientscoefficientdiagonalentry. pfc_terms_code_products_right_hwcoefficientscoefficient = ff_q_pfp_products_right_hwcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_right_hwcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_right_hwcoefficientscoefficient) + (pfc_value_products_right_hwcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_right_hwcoefficientscoefficientdiagonalterm pfc_left_products_right_hwcoefficientscoefficientdiagonalterm pfc_right_products_right_hwcoefficientscoefficientdiagonalterm. (((pfc_index_products_right_hwcoefficientscoefficientdiagonal)+pfc_complement_products_right_hwcoefficientscoefficientdiagonalterm=(pfc_index_products_right_hwcoefficients)) /\ ((((((exists pfa_gap_products_right_hwcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_right_hwcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_right_hwcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_products_right_hwcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_right_hwcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_right_hwcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_right_hwcoefficientscoefficientdiagonal)) * cc)) /\ exists ff_q_pfp_products_right_hwcoefficientscoefficientdiagonaltermleftentry. cb = ff_q_pfp_products_right_hwcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_right_hwcoefficientscoefficientdiagonal)) * cc) + (pfc_left_products_right_hwcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_hwcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_right_hwcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_products_right_hwcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_right_hwcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_right_hwcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_right_hwcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_right_hwcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_products_right_hwcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_right_hwcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_right_hwcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_right_hwcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_products_right_hwcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_products_right_hwcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_right_hwcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_products_right_hwcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_right_hwcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_right_hwcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_products_right_hwcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_right_hwcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_right_hwcoefficientscoefficientdiagonal)=pfc_left_products_right_hwcoefficientscoefficientdiagonalterm*pfc_right_products_right_hwcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_right_hwcoefficientscoefficientsum fs_v_pfc_products_right_hwcoefficientscoefficientsum. ((((exists fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_start. fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_right_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_start. fs_u_pfc_products_right_hwcoefficientscoefficientsum = fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_right_hwcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_right_hwcoefficientscoefficient) = S ((S (S (pfc_index_products_right_hwcoefficients))) * fs_v_pfc_products_right_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_right_hwcoefficientscoefficientsum = fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_right_hwcoefficients))) * fs_v_pfc_products_right_hwcoefficientscoefficientsum) + (pfc_natural_sum_products_right_hwcoefficientscoefficient))) /\ forall fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_right_hwcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_right_hwcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps = S (pfc_index_products_right_hwcoefficients)) -> exists fs_a_pfc_products_right_hwcoefficientscoefficientsum_body_steps fs_r_pfc_products_right_hwcoefficientscoefficientsum_body_steps fs_s_pfc_products_right_hwcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_right_hwcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_hwcoefficientscoefficient)) /\ exists fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_right_hwcoefficientscoefficient = fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_right_hwcoefficientscoefficient) + (fs_a_pfc_products_right_hwcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_right_hwcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_right_hwcoefficientscoefficientsum = fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hwcoefficientscoefficientsum) + (fs_r_pfc_products_right_hwcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_right_hwcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_right_hwcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_right_hwcoefficientscoefficientsum = fs_q_pfc_products_right_hwcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_right_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_right_hwcoefficientscoefficientsum) + (fs_s_pfc_products_right_hwcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_right_hwcoefficientscoefficientsum_body_steps = fs_r_pfc_products_right_hwcoefficientscoefficientsum_body_steps + fs_a_pfc_products_right_hwcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_right_hwcoefficientscoefficientresiduebound. pfa_gap_products_right_hwcoefficientscoefficientresiduebound + S (pfc_value_products_right_hwcoefficients) = (p)) /\ ((exists pfa_offset_left_products_right_hwcoefficientscoefficientresiduecongruence pfa_offset_right_products_right_hwcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_right_hwcoefficientscoefficient) + (p) * pfa_offset_left_products_right_hwcoefficientscoefficientresiduecongruence = (pfc_value_products_right_hwcoefficients) + (p) * pfa_offset_right_products_right_hwcoefficientscoefficientresiduecongruence))))))))))))))))))
  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