PX0050

prime_field_polynomial_left_distributive_products_exists

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

Construct all three genuine proper-length left 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_left_fixed_input. (exists fom_gap_pfp_products_left_fixed_input_index_bound. fom_gap_pfp_products_left_fixed_input_index_bound + S (fom_index_pfp_products_left_fixed_input) = M) -> exists fom_value_pfp_products_left_fixed_input. ((((exists fom_beta_height_pfp_products_left_fixed_input_entry. fom_beta_height_pfp_products_left_fixed_input_entry + S (fom_value_pfp_products_left_fixed_input) = S ((S (fom_index_pfp_products_left_fixed_input)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_fixed_input_entry. db = fom_beta_quotient_pfp_products_left_fixed_input_entry * S ((S (fom_index_pfp_products_left_fixed_input)) * dc) + (fom_value_pfp_products_left_fixed_input))) /\ (exists fom_gap_pfp_products_left_fixed_input_value_bound. fom_gap_pfp_products_left_fixed_input_value_bound + S (fom_value_pfp_products_left_fixed_input) = p))) -> (forall pfp_index_products_left_input_addition. (exists pfa_gap_products_left_input_additionindex. pfa_gap_products_left_input_additionindex + S (pfp_index_products_left_input_addition) = (L)) -> exists pfp_left_products_left_input_addition pfp_right_products_left_input_addition pfp_value_products_left_input_addition. ((((exists ff_h_pfp_products_left_input_additionleft. ff_h_pfp_products_left_input_additionleft + S (pfp_left_products_left_input_addition) = S ((S (pfp_index_products_left_input_addition)) * ac)) /\ exists ff_q_pfp_products_left_input_additionleft. ab = ff_q_pfp_products_left_input_additionleft * S ((S (pfp_index_products_left_input_addition)) * ac) + (pfp_left_products_left_input_addition))) /\ (((((exists ff_h_pfp_products_left_input_additionright. ff_h_pfp_products_left_input_additionright + S (pfp_right_products_left_input_addition) = S ((S (pfp_index_products_left_input_addition)) * bc)) /\ exists ff_q_pfp_products_left_input_additionright. bb = ff_q_pfp_products_left_input_additionright * S ((S (pfp_index_products_left_input_addition)) * bc) + (pfp_right_products_left_input_addition))) /\ (((((exists ff_h_pfp_products_left_input_additiontarget. ff_h_pfp_products_left_input_additiontarget + S (pfp_value_products_left_input_addition) = S ((S (pfp_index_products_left_input_addition)) * cc)) /\ exists ff_q_pfp_products_left_input_additiontarget. cb = ff_q_pfp_products_left_input_additiontarget * S ((S (pfp_index_products_left_input_addition)) * cc) + (pfp_value_products_left_input_addition))) /\ ((((exists pfa_gap_products_left_input_additionoperationleft. pfa_gap_products_left_input_additionoperationleft + S (pfp_left_products_left_input_addition) = (p)) /\ (((exists pfa_gap_products_left_input_additionoperationright. pfa_gap_products_left_input_additionoperationright + S (pfp_right_products_left_input_addition) = (p)) /\ ((((exists pfa_gap_products_left_input_additionoperationresultbound. pfa_gap_products_left_input_additionoperationresultbound + S (pfp_value_products_left_input_addition) = (p)) /\ ((exists pfa_offset_left_products_left_input_additionoperationresultcongruence pfa_offset_right_products_left_input_additionoperationresultcongruence. ((pfp_left_products_left_input_addition) + (pfp_right_products_left_input_addition)) + (p) * pfa_offset_left_products_left_input_additionoperationresultcongruence = (pfp_value_products_left_input_addition) + (p) * pfa_offset_right_products_left_input_additionoperationresultcongruence)))))))))))))))) -> (exists N ub uc vb vc wb wc. ((((forall fom_index_pfp_products_left_result_ubleft. (exists fom_gap_pfp_products_left_result_ubleft_index_bound. fom_gap_pfp_products_left_result_ubleft_index_bound + S (fom_index_pfp_products_left_result_ubleft) = M) -> exists fom_value_pfp_products_left_result_ubleft. ((((exists fom_beta_height_pfp_products_left_result_ubleft_entry. fom_beta_height_pfp_products_left_result_ubleft_entry + S (fom_value_pfp_products_left_result_ubleft) = S ((S (fom_index_pfp_products_left_result_ubleft)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_result_ubleft_entry. db = fom_beta_quotient_pfp_products_left_result_ubleft_entry * S ((S (fom_index_pfp_products_left_result_ubleft)) * dc) + (fom_value_pfp_products_left_result_ubleft))) /\ (exists fom_gap_pfp_products_left_result_ubleft_value_bound. fom_gap_pfp_products_left_result_ubleft_value_bound + S (fom_value_pfp_products_left_result_ubleft) = p))) /\ (((forall fom_index_pfp_products_left_result_ubright. (exists fom_gap_pfp_products_left_result_ubright_index_bound. fom_gap_pfp_products_left_result_ubright_index_bound + S (fom_index_pfp_products_left_result_ubright) = L) -> exists fom_value_pfp_products_left_result_ubright. ((((exists fom_beta_height_pfp_products_left_result_ubright_entry. fom_beta_height_pfp_products_left_result_ubright_entry + S (fom_value_pfp_products_left_result_ubright) = S ((S (fom_index_pfp_products_left_result_ubright)) * ac)) /\ exists fom_beta_quotient_pfp_products_left_result_ubright_entry. ab = fom_beta_quotient_pfp_products_left_result_ubright_entry * S ((S (fom_index_pfp_products_left_result_ubright)) * ac) + (fom_value_pfp_products_left_result_ubright))) /\ (exists fom_gap_pfp_products_left_result_ubright_value_bound. fom_gap_pfp_products_left_result_ubright_value_bound + S (fom_value_pfp_products_left_result_ubright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((N)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (N)))))))) /\ ((forall pfc_index_products_left_result_ubcoefficients. (exists pfa_gap_products_left_result_ubcoefficientsbound. pfa_gap_products_left_result_ubcoefficientsbound + S (pfc_index_products_left_result_ubcoefficients) = (N)) -> exists pfc_value_products_left_result_ubcoefficients. ((((exists ff_h_pfp_products_left_result_ubcoefficientsentry. ff_h_pfp_products_left_result_ubcoefficientsentry + S (pfc_value_products_left_result_ubcoefficients) = S ((S (pfc_index_products_left_result_ubcoefficients)) * uc)) /\ exists ff_q_pfp_products_left_result_ubcoefficientsentry. ub = ff_q_pfp_products_left_result_ubcoefficientsentry * S ((S (pfc_index_products_left_result_ubcoefficients)) * uc) + (pfc_value_products_left_result_ubcoefficients))) /\ ((exists pfc_terms_code_products_left_result_ubcoefficientscoefficient pfc_terms_scale_products_left_result_ubcoefficientscoefficient pfc_natural_sum_products_left_result_ubcoefficientscoefficient. ((forall pfc_index_products_left_result_ubcoefficientscoefficientdiagonal. (exists pfa_gap_products_left_result_ubcoefficientscoefficientdiagonalbound. pfa_gap_products_left_result_ubcoefficientscoefficientdiagonalbound + S (pfc_index_products_left_result_ubcoefficientscoefficientdiagonal) = (S (pfc_index_products_left_result_ubcoefficients))) -> exists pfc_value_products_left_result_ubcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_left_result_ubcoefficientscoefficientdiagonalentry. ff_h_pfp_products_left_result_ubcoefficientscoefficientdiagonalentry + S (pfc_value_products_left_result_ubcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_left_result_ubcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_result_ubcoefficientscoefficient)) /\ exists ff_q_pfp_products_left_result_ubcoefficientscoefficientdiagonalentry. pfc_terms_code_products_left_result_ubcoefficientscoefficient = ff_q_pfp_products_left_result_ubcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_left_result_ubcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_result_ubcoefficientscoefficient) + (pfc_value_products_left_result_ubcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_left_result_ubcoefficientscoefficientdiagonalterm pfc_left_products_left_result_ubcoefficientscoefficientdiagonalterm pfc_right_products_left_result_ubcoefficientscoefficientdiagonalterm. (((pfc_index_products_left_result_ubcoefficientscoefficientdiagonal)+pfc_complement_products_left_result_ubcoefficientscoefficientdiagonalterm=(pfc_index_products_left_result_ubcoefficients)) /\ ((((((exists pfa_gap_products_left_result_ubcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_left_result_ubcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_left_result_ubcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_left_result_ubcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_left_result_ubcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_left_result_ubcoefficientscoefficientdiagonal)) * dc) + (pfc_left_products_left_result_ubcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_result_ubcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_left_result_ubcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_products_left_result_ubcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_left_result_ubcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_left_result_ubcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_left_result_ubcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_left_result_ubcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_left_result_ubcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_left_result_ubcoefficientscoefficientdiagonalterm)) * ac)) /\ exists ff_q_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermrightentry. ab = ff_q_pfp_products_left_result_ubcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_left_result_ubcoefficientscoefficientdiagonalterm)) * ac) + (pfc_right_products_left_result_ubcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_result_ubcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_left_result_ubcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_products_left_result_ubcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_left_result_ubcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_left_result_ubcoefficientscoefficientdiagonal)=pfc_left_products_left_result_ubcoefficientscoefficientdiagonalterm*pfc_right_products_left_result_ubcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_left_result_ubcoefficientscoefficientsum fs_v_pfc_products_left_result_ubcoefficientscoefficientsum. ((((exists fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_start. fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_start. fs_u_pfc_products_left_result_ubcoefficientscoefficientsum = fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_left_result_ubcoefficientscoefficient) = S ((S (S (pfc_index_products_left_result_ubcoefficients))) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_left_result_ubcoefficientscoefficientsum = fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_left_result_ubcoefficients))) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum) + (pfc_natural_sum_products_left_result_ubcoefficientscoefficient))) /\ forall fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps = S (pfc_index_products_left_result_ubcoefficients)) -> exists fs_a_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps fs_r_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps fs_s_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_result_ubcoefficientscoefficient)) /\ exists fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_left_result_ubcoefficientscoefficient = fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_result_ubcoefficientscoefficient) + (fs_a_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_left_result_ubcoefficientscoefficientsum = fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum) + (fs_r_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_left_result_ubcoefficientscoefficientsum = fs_q_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_ubcoefficientscoefficientsum) + (fs_s_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps = fs_r_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps + fs_a_pfc_products_left_result_ubcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_left_result_ubcoefficientscoefficientresiduebound. pfa_gap_products_left_result_ubcoefficientscoefficientresiduebound + S (pfc_value_products_left_result_ubcoefficients) = (p)) /\ ((exists pfa_offset_left_products_left_result_ubcoefficientscoefficientresiduecongruence pfa_offset_right_products_left_result_ubcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_left_result_ubcoefficientscoefficient) + (p) * pfa_offset_left_products_left_result_ubcoefficientscoefficientresiduecongruence = (pfc_value_products_left_result_ubcoefficients) + (p) * pfa_offset_right_products_left_result_ubcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ (((((forall fom_index_pfp_products_left_result_vbleft. (exists fom_gap_pfp_products_left_result_vbleft_index_bound. fom_gap_pfp_products_left_result_vbleft_index_bound + S (fom_index_pfp_products_left_result_vbleft) = M) -> exists fom_value_pfp_products_left_result_vbleft. ((((exists fom_beta_height_pfp_products_left_result_vbleft_entry. fom_beta_height_pfp_products_left_result_vbleft_entry + S (fom_value_pfp_products_left_result_vbleft) = S ((S (fom_index_pfp_products_left_result_vbleft)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_result_vbleft_entry. db = fom_beta_quotient_pfp_products_left_result_vbleft_entry * S ((S (fom_index_pfp_products_left_result_vbleft)) * dc) + (fom_value_pfp_products_left_result_vbleft))) /\ (exists fom_gap_pfp_products_left_result_vbleft_value_bound. fom_gap_pfp_products_left_result_vbleft_value_bound + S (fom_value_pfp_products_left_result_vbleft) = p))) /\ (((forall fom_index_pfp_products_left_result_vbright. (exists fom_gap_pfp_products_left_result_vbright_index_bound. fom_gap_pfp_products_left_result_vbright_index_bound + S (fom_index_pfp_products_left_result_vbright) = L) -> exists fom_value_pfp_products_left_result_vbright. ((((exists fom_beta_height_pfp_products_left_result_vbright_entry. fom_beta_height_pfp_products_left_result_vbright_entry + S (fom_value_pfp_products_left_result_vbright) = S ((S (fom_index_pfp_products_left_result_vbright)) * bc)) /\ exists fom_beta_quotient_pfp_products_left_result_vbright_entry. bb = fom_beta_quotient_pfp_products_left_result_vbright_entry * S ((S (fom_index_pfp_products_left_result_vbright)) * bc) + (fom_value_pfp_products_left_result_vbright))) /\ (exists fom_gap_pfp_products_left_result_vbright_value_bound. fom_gap_pfp_products_left_result_vbright_value_bound + S (fom_value_pfp_products_left_result_vbright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((N)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (N)))))))) /\ ((forall pfc_index_products_left_result_vbcoefficients. (exists pfa_gap_products_left_result_vbcoefficientsbound. pfa_gap_products_left_result_vbcoefficientsbound + S (pfc_index_products_left_result_vbcoefficients) = (N)) -> exists pfc_value_products_left_result_vbcoefficients. ((((exists ff_h_pfp_products_left_result_vbcoefficientsentry. ff_h_pfp_products_left_result_vbcoefficientsentry + S (pfc_value_products_left_result_vbcoefficients) = S ((S (pfc_index_products_left_result_vbcoefficients)) * vc)) /\ exists ff_q_pfp_products_left_result_vbcoefficientsentry. vb = ff_q_pfp_products_left_result_vbcoefficientsentry * S ((S (pfc_index_products_left_result_vbcoefficients)) * vc) + (pfc_value_products_left_result_vbcoefficients))) /\ ((exists pfc_terms_code_products_left_result_vbcoefficientscoefficient pfc_terms_scale_products_left_result_vbcoefficientscoefficient pfc_natural_sum_products_left_result_vbcoefficientscoefficient. ((forall pfc_index_products_left_result_vbcoefficientscoefficientdiagonal. (exists pfa_gap_products_left_result_vbcoefficientscoefficientdiagonalbound. pfa_gap_products_left_result_vbcoefficientscoefficientdiagonalbound + S (pfc_index_products_left_result_vbcoefficientscoefficientdiagonal) = (S (pfc_index_products_left_result_vbcoefficients))) -> exists pfc_value_products_left_result_vbcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_left_result_vbcoefficientscoefficientdiagonalentry. ff_h_pfp_products_left_result_vbcoefficientscoefficientdiagonalentry + S (pfc_value_products_left_result_vbcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_left_result_vbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_result_vbcoefficientscoefficient)) /\ exists ff_q_pfp_products_left_result_vbcoefficientscoefficientdiagonalentry. pfc_terms_code_products_left_result_vbcoefficientscoefficient = ff_q_pfp_products_left_result_vbcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_left_result_vbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_result_vbcoefficientscoefficient) + (pfc_value_products_left_result_vbcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_left_result_vbcoefficientscoefficientdiagonalterm pfc_left_products_left_result_vbcoefficientscoefficientdiagonalterm pfc_right_products_left_result_vbcoefficientscoefficientdiagonalterm. (((pfc_index_products_left_result_vbcoefficientscoefficientdiagonal)+pfc_complement_products_left_result_vbcoefficientscoefficientdiagonalterm=(pfc_index_products_left_result_vbcoefficients)) /\ ((((((exists pfa_gap_products_left_result_vbcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_left_result_vbcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_left_result_vbcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_left_result_vbcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_left_result_vbcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_left_result_vbcoefficientscoefficientdiagonal)) * dc) + (pfc_left_products_left_result_vbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_result_vbcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_left_result_vbcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_products_left_result_vbcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_left_result_vbcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_left_result_vbcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_left_result_vbcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_left_result_vbcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_left_result_vbcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_left_result_vbcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_products_left_result_vbcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_left_result_vbcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_products_left_result_vbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_result_vbcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_left_result_vbcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_products_left_result_vbcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_left_result_vbcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_left_result_vbcoefficientscoefficientdiagonal)=pfc_left_products_left_result_vbcoefficientscoefficientdiagonalterm*pfc_right_products_left_result_vbcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_left_result_vbcoefficientscoefficientsum fs_v_pfc_products_left_result_vbcoefficientscoefficientsum. ((((exists fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_start. fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_start. fs_u_pfc_products_left_result_vbcoefficientscoefficientsum = fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_left_result_vbcoefficientscoefficient) = S ((S (S (pfc_index_products_left_result_vbcoefficients))) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_left_result_vbcoefficientscoefficientsum = fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_left_result_vbcoefficients))) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum) + (pfc_natural_sum_products_left_result_vbcoefficientscoefficient))) /\ forall fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps = S (pfc_index_products_left_result_vbcoefficients)) -> exists fs_a_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps fs_r_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps fs_s_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_result_vbcoefficientscoefficient)) /\ exists fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_left_result_vbcoefficientscoefficient = fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_result_vbcoefficientscoefficient) + (fs_a_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_left_result_vbcoefficientscoefficientsum = fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum) + (fs_r_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_left_result_vbcoefficientscoefficientsum = fs_q_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_vbcoefficientscoefficientsum) + (fs_s_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps = fs_r_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps + fs_a_pfc_products_left_result_vbcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_left_result_vbcoefficientscoefficientresiduebound. pfa_gap_products_left_result_vbcoefficientscoefficientresiduebound + S (pfc_value_products_left_result_vbcoefficients) = (p)) /\ ((exists pfa_offset_left_products_left_result_vbcoefficientscoefficientresiduecongruence pfa_offset_right_products_left_result_vbcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_left_result_vbcoefficientscoefficient) + (p) * pfa_offset_left_products_left_result_vbcoefficientscoefficientresiduecongruence = (pfc_value_products_left_result_vbcoefficients) + (p) * pfa_offset_right_products_left_result_vbcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ (((((forall fom_index_pfp_products_left_result_wbleft. (exists fom_gap_pfp_products_left_result_wbleft_index_bound. fom_gap_pfp_products_left_result_wbleft_index_bound + S (fom_index_pfp_products_left_result_wbleft) = M) -> exists fom_value_pfp_products_left_result_wbleft. ((((exists fom_beta_height_pfp_products_left_result_wbleft_entry. fom_beta_height_pfp_products_left_result_wbleft_entry + S (fom_value_pfp_products_left_result_wbleft) = S ((S (fom_index_pfp_products_left_result_wbleft)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_result_wbleft_entry. db = fom_beta_quotient_pfp_products_left_result_wbleft_entry * S ((S (fom_index_pfp_products_left_result_wbleft)) * dc) + (fom_value_pfp_products_left_result_wbleft))) /\ (exists fom_gap_pfp_products_left_result_wbleft_value_bound. fom_gap_pfp_products_left_result_wbleft_value_bound + S (fom_value_pfp_products_left_result_wbleft) = p))) /\ (((forall fom_index_pfp_products_left_result_wbright. (exists fom_gap_pfp_products_left_result_wbright_index_bound. fom_gap_pfp_products_left_result_wbright_index_bound + S (fom_index_pfp_products_left_result_wbright) = L) -> exists fom_value_pfp_products_left_result_wbright. ((((exists fom_beta_height_pfp_products_left_result_wbright_entry. fom_beta_height_pfp_products_left_result_wbright_entry + S (fom_value_pfp_products_left_result_wbright) = S ((S (fom_index_pfp_products_left_result_wbright)) * cc)) /\ exists fom_beta_quotient_pfp_products_left_result_wbright_entry. cb = fom_beta_quotient_pfp_products_left_result_wbright_entry * S ((S (fom_index_pfp_products_left_result_wbright)) * cc) + (fom_value_pfp_products_left_result_wbright))) /\ (exists fom_gap_pfp_products_left_result_wbright_value_bound. fom_gap_pfp_products_left_result_wbright_value_bound + S (fom_value_pfp_products_left_result_wbright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((N)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (N)))))))) /\ ((forall pfc_index_products_left_result_wbcoefficients. (exists pfa_gap_products_left_result_wbcoefficientsbound. pfa_gap_products_left_result_wbcoefficientsbound + S (pfc_index_products_left_result_wbcoefficients) = (N)) -> exists pfc_value_products_left_result_wbcoefficients. ((((exists ff_h_pfp_products_left_result_wbcoefficientsentry. ff_h_pfp_products_left_result_wbcoefficientsentry + S (pfc_value_products_left_result_wbcoefficients) = S ((S (pfc_index_products_left_result_wbcoefficients)) * wc)) /\ exists ff_q_pfp_products_left_result_wbcoefficientsentry. wb = ff_q_pfp_products_left_result_wbcoefficientsentry * S ((S (pfc_index_products_left_result_wbcoefficients)) * wc) + (pfc_value_products_left_result_wbcoefficients))) /\ ((exists pfc_terms_code_products_left_result_wbcoefficientscoefficient pfc_terms_scale_products_left_result_wbcoefficientscoefficient pfc_natural_sum_products_left_result_wbcoefficientscoefficient. ((forall pfc_index_products_left_result_wbcoefficientscoefficientdiagonal. (exists pfa_gap_products_left_result_wbcoefficientscoefficientdiagonalbound. pfa_gap_products_left_result_wbcoefficientscoefficientdiagonalbound + S (pfc_index_products_left_result_wbcoefficientscoefficientdiagonal) = (S (pfc_index_products_left_result_wbcoefficients))) -> exists pfc_value_products_left_result_wbcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_left_result_wbcoefficientscoefficientdiagonalentry. ff_h_pfp_products_left_result_wbcoefficientscoefficientdiagonalentry + S (pfc_value_products_left_result_wbcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_left_result_wbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_result_wbcoefficientscoefficient)) /\ exists ff_q_pfp_products_left_result_wbcoefficientscoefficientdiagonalentry. pfc_terms_code_products_left_result_wbcoefficientscoefficient = ff_q_pfp_products_left_result_wbcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_left_result_wbcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_result_wbcoefficientscoefficient) + (pfc_value_products_left_result_wbcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_left_result_wbcoefficientscoefficientdiagonalterm pfc_left_products_left_result_wbcoefficientscoefficientdiagonalterm pfc_right_products_left_result_wbcoefficientscoefficientdiagonalterm. (((pfc_index_products_left_result_wbcoefficientscoefficientdiagonal)+pfc_complement_products_left_result_wbcoefficientscoefficientdiagonalterm=(pfc_index_products_left_result_wbcoefficients)) /\ ((((((exists pfa_gap_products_left_result_wbcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_left_result_wbcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_left_result_wbcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_left_result_wbcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_left_result_wbcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_left_result_wbcoefficientscoefficientdiagonal)) * dc) + (pfc_left_products_left_result_wbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_result_wbcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_left_result_wbcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_products_left_result_wbcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_left_result_wbcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_left_result_wbcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_left_result_wbcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_left_result_wbcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_left_result_wbcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_left_result_wbcoefficientscoefficientdiagonalterm)) * cc)) /\ exists ff_q_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermrightentry. cb = ff_q_pfp_products_left_result_wbcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_left_result_wbcoefficientscoefficientdiagonalterm)) * cc) + (pfc_right_products_left_result_wbcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_result_wbcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_left_result_wbcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_products_left_result_wbcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_left_result_wbcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_left_result_wbcoefficientscoefficientdiagonal)=pfc_left_products_left_result_wbcoefficientscoefficientdiagonalterm*pfc_right_products_left_result_wbcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_left_result_wbcoefficientscoefficientsum fs_v_pfc_products_left_result_wbcoefficientscoefficientsum. ((((exists fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_start. fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_start. fs_u_pfc_products_left_result_wbcoefficientscoefficientsum = fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_left_result_wbcoefficientscoefficient) = S ((S (S (pfc_index_products_left_result_wbcoefficients))) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_left_result_wbcoefficientscoefficientsum = fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_left_result_wbcoefficients))) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum) + (pfc_natural_sum_products_left_result_wbcoefficientscoefficient))) /\ forall fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps = S (pfc_index_products_left_result_wbcoefficients)) -> exists fs_a_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps fs_r_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps fs_s_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_result_wbcoefficientscoefficient)) /\ exists fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_left_result_wbcoefficientscoefficient = fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_result_wbcoefficientscoefficient) + (fs_a_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_left_result_wbcoefficientscoefficientsum = fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum) + (fs_r_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_left_result_wbcoefficientscoefficientsum = fs_q_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_result_wbcoefficientscoefficientsum) + (fs_s_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps = fs_r_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps + fs_a_pfc_products_left_result_wbcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_left_result_wbcoefficientscoefficientresiduebound. pfa_gap_products_left_result_wbcoefficientscoefficientresiduebound + S (pfc_value_products_left_result_wbcoefficients) = (p)) /\ ((exists pfa_offset_left_products_left_result_wbcoefficientscoefficientresiduecongruence pfa_offset_right_products_left_result_wbcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_left_result_wbcoefficientscoefficient) + (p) * pfa_offset_left_products_left_result_wbcoefficientscoefficientresiduecongruence = (pfc_value_products_left_result_wbcoefficients) + (p) * pfa_offset_right_products_left_result_wbcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfp_index_products_left_addition. (exists pfa_gap_products_left_additionindex. pfa_gap_products_left_additionindex + S (pfp_index_products_left_addition) = (N)) -> exists pfp_left_products_left_addition pfp_right_products_left_addition pfp_value_products_left_addition. ((((exists ff_h_pfp_products_left_additionleft. ff_h_pfp_products_left_additionleft + S (pfp_left_products_left_addition) = S ((S (pfp_index_products_left_addition)) * uc)) /\ exists ff_q_pfp_products_left_additionleft. ub = ff_q_pfp_products_left_additionleft * S ((S (pfp_index_products_left_addition)) * uc) + (pfp_left_products_left_addition))) /\ (((((exists ff_h_pfp_products_left_additionright. ff_h_pfp_products_left_additionright + S (pfp_right_products_left_addition) = S ((S (pfp_index_products_left_addition)) * vc)) /\ exists ff_q_pfp_products_left_additionright. vb = ff_q_pfp_products_left_additionright * S ((S (pfp_index_products_left_addition)) * vc) + (pfp_right_products_left_addition))) /\ (((((exists ff_h_pfp_products_left_additiontarget. ff_h_pfp_products_left_additiontarget + S (pfp_value_products_left_addition) = S ((S (pfp_index_products_left_addition)) * wc)) /\ exists ff_q_pfp_products_left_additiontarget. wb = ff_q_pfp_products_left_additiontarget * S ((S (pfp_index_products_left_addition)) * wc) + (pfp_value_products_left_addition))) /\ ((((exists pfa_gap_products_left_additionoperationleft. pfa_gap_products_left_additionoperationleft + S (pfp_left_products_left_addition) = (p)) /\ (((exists pfa_gap_products_left_additionoperationright. pfa_gap_products_left_additionoperationright + S (pfp_right_products_left_addition) = (p)) /\ ((((exists pfa_gap_products_left_additionoperationresultbound. pfa_gap_products_left_additionoperationresultbound + S (pfp_value_products_left_addition) = (p)) /\ ((exists pfa_offset_left_products_left_additionoperationresultcongruence pfa_offset_right_products_left_additionoperationresultcongruence. ((pfp_left_products_left_addition) + (pfp_right_products_left_addition)) + (p) * pfa_offset_left_products_left_additionoperationresultcongruence = (pfp_value_products_left_addition) + (p) * pfa_offset_right_products_left_additionoperationresultcongruence)))))))))))))))))))))))

Constructive proof overview

Generated structural guide

Construct all three genuine proper-length left 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 PX004C prime_field_polynomial_convolution_left_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. ((((M)=0 \/ (L)=0) /\ (((N)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (N)))))))
  2. L16
    specialize polynomial_product_length_exists (M)
  3. L17
    specialize polynomial_product_length_exists (L)
  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,db,dc,M,ab,ac,L,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 (db)
  4. L36
    specialize prime_field_polynomial_convolution_at_length_exists (dc)
  5. L37
    specialize prime_field_polynomial_convolution_at_length_exists (M)
  6. L38
    specialize prime_field_polynomial_convolution_at_length_exists (ab)
  7. L39
    specialize prime_field_polynomial_convolution_at_length_exists (ac)
  8. L40
    specialize prime_field_polynomial_convolution_at_length_exists (L)
  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 hd
  3. L45
    exact hbounds_left
  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,db,dc,M,bb,bc,L,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 (db)
  4. L52
    specialize prime_field_polynomial_convolution_at_length_exists (dc)
  5. L53
    specialize prime_field_polynomial_convolution_at_length_exists (M)
  6. L54
    specialize prime_field_polynomial_convolution_at_length_exists (bb)
  7. L55
    specialize prime_field_polynomial_convolution_at_length_exists (bc)
  8. L56
    specialize prime_field_polynomial_convolution_at_length_exists (L)
  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 hd
  3. L61
    exact hbounds_right_left
  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,db,dc,M,cb,cc,L,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 (db)
  4. L68
    specialize prime_field_polynomial_convolution_at_length_exists (dc)
  5. L69
    specialize prime_field_polynomial_convolution_at_length_exists (M)
  6. L70
    specialize prime_field_polynomial_convolution_at_length_exists (cb)
  7. L71
    specialize prime_field_polynomial_convolution_at_length_exists (cc)
  8. L72
    specialize prime_field_polynomial_convolution_at_length_exists (L)
  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 hd
  3. L77
    exact hbounds_right_right
  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_left_add (p)
  3. L95
    specialize prime_field_polynomial_convolution_left_add (ab)
  4. L96
    specialize prime_field_polynomial_convolution_left_add (ac)
  5. L97
    specialize prime_field_polynomial_convolution_left_add (bb)
  6. L98
    specialize prime_field_polynomial_convolution_left_add (bc)
  7. L99
    specialize prime_field_polynomial_convolution_left_add (cb)
  8. L100
    specialize prime_field_polynomial_convolution_left_add (cc)
  9. L101
    specialize prime_field_polynomial_convolution_left_add (L)
  10. L102
    specialize prime_field_polynomial_convolution_left_add (db)
24Use earlier factsL103–112

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

  1. L103
    specialize prime_field_polynomial_convolution_left_add (dc)
  2. L104
    specialize prime_field_polynomial_convolution_left_add (M)
  3. L105
    specialize prime_field_polynomial_convolution_left_add (x1)
  4. L106
    specialize prime_field_polynomial_convolution_left_add (x2)
  5. L107
    specialize prime_field_polynomial_convolution_left_add (x3)
  6. L108
    specialize prime_field_polynomial_convolution_left_add (x4)
  7. L109
    specialize prime_field_polynomial_convolution_left_add (x5)
  8. L110
    specialize prime_field_polynomial_convolution_left_add (x6)
  9. L111
    specialize prime_field_polynomial_convolution_left_add (x)
  10. L112
    apply prime_field_polynomial_convolution_left_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. ((((M)=0 \/ (L)=0) /\ (((N)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (N)))))))
  16. 0016specialize polynomial_product_length_exists (M)
  17. 0017specialize polynomial_product_length_exists (L)
  18. 0018apply polynomial_product_length_exists
  19. 0019cases hlength
  20. 0020have hbounds : ((forall fom_index_pfp_products_left_bounded_ab. (exists fom_gap_pfp_products_left_bounded_ab_index_bound. fom_gap_pfp_products_left_bounded_ab_index_bound + S (fom_index_pfp_products_left_bounded_ab) = L) -> exists fom_value_pfp_products_left_bounded_ab. ((((exists fom_beta_height_pfp_products_left_bounded_ab_entry. fom_beta_height_pfp_products_left_bounded_ab_entry + S (fom_value_pfp_products_left_bounded_ab) = S ((S (fom_index_pfp_products_left_bounded_ab)) * ac)) /\ exists fom_beta_quotient_pfp_products_left_bounded_ab_entry. ab = fom_beta_quotient_pfp_products_left_bounded_ab_entry * S ((S (fom_index_pfp_products_left_bounded_ab)) * ac) + (fom_value_pfp_products_left_bounded_ab))) /\ (exists fom_gap_pfp_products_left_bounded_ab_value_bound. fom_gap_pfp_products_left_bounded_ab_value_bound + S (fom_value_pfp_products_left_bounded_ab) = p))) /\ (((forall fom_index_pfp_products_left_bounded_bb. (exists fom_gap_pfp_products_left_bounded_bb_index_bound. fom_gap_pfp_products_left_bounded_bb_index_bound + S (fom_index_pfp_products_left_bounded_bb) = L) -> exists fom_value_pfp_products_left_bounded_bb. ((((exists fom_beta_height_pfp_products_left_bounded_bb_entry. fom_beta_height_pfp_products_left_bounded_bb_entry + S (fom_value_pfp_products_left_bounded_bb) = S ((S (fom_index_pfp_products_left_bounded_bb)) * bc)) /\ exists fom_beta_quotient_pfp_products_left_bounded_bb_entry. bb = fom_beta_quotient_pfp_products_left_bounded_bb_entry * S ((S (fom_index_pfp_products_left_bounded_bb)) * bc) + (fom_value_pfp_products_left_bounded_bb))) /\ (exists fom_gap_pfp_products_left_bounded_bb_value_bound. fom_gap_pfp_products_left_bounded_bb_value_bound + S (fom_value_pfp_products_left_bounded_bb) = p))) /\ ((forall fom_index_pfp_products_left_bounded_cb. (exists fom_gap_pfp_products_left_bounded_cb_index_bound. fom_gap_pfp_products_left_bounded_cb_index_bound + S (fom_index_pfp_products_left_bounded_cb) = L) -> exists fom_value_pfp_products_left_bounded_cb. ((((exists fom_beta_height_pfp_products_left_bounded_cb_entry. fom_beta_height_pfp_products_left_bounded_cb_entry + S (fom_value_pfp_products_left_bounded_cb) = S ((S (fom_index_pfp_products_left_bounded_cb)) * cc)) /\ exists fom_beta_quotient_pfp_products_left_bounded_cb_entry. cb = fom_beta_quotient_pfp_products_left_bounded_cb_entry * S ((S (fom_index_pfp_products_left_bounded_cb)) * cc) + (fom_value_pfp_products_left_bounded_cb))) /\ (exists fom_gap_pfp_products_left_bounded_cb_value_bound. fom_gap_pfp_products_left_bounded_cb_value_bound + S (fom_value_pfp_products_left_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_left_huleft. (exists fom_gap_pfp_products_left_huleft_index_bound. fom_gap_pfp_products_left_huleft_index_bound + S (fom_index_pfp_products_left_huleft) = M) -> exists fom_value_pfp_products_left_huleft. ((((exists fom_beta_height_pfp_products_left_huleft_entry. fom_beta_height_pfp_products_left_huleft_entry + S (fom_value_pfp_products_left_huleft) = S ((S (fom_index_pfp_products_left_huleft)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_huleft_entry. db = fom_beta_quotient_pfp_products_left_huleft_entry * S ((S (fom_index_pfp_products_left_huleft)) * dc) + (fom_value_pfp_products_left_huleft))) /\ (exists fom_gap_pfp_products_left_huleft_value_bound. fom_gap_pfp_products_left_huleft_value_bound + S (fom_value_pfp_products_left_huleft) = p))) /\ (((forall fom_index_pfp_products_left_huright. (exists fom_gap_pfp_products_left_huright_index_bound. fom_gap_pfp_products_left_huright_index_bound + S (fom_index_pfp_products_left_huright) = L) -> exists fom_value_pfp_products_left_huright. ((((exists fom_beta_height_pfp_products_left_huright_entry. fom_beta_height_pfp_products_left_huright_entry + S (fom_value_pfp_products_left_huright) = S ((S (fom_index_pfp_products_left_huright)) * ac)) /\ exists fom_beta_quotient_pfp_products_left_huright_entry. ab = fom_beta_quotient_pfp_products_left_huright_entry * S ((S (fom_index_pfp_products_left_huright)) * ac) + (fom_value_pfp_products_left_huright))) /\ (exists fom_gap_pfp_products_left_huright_value_bound. fom_gap_pfp_products_left_huright_value_bound + S (fom_value_pfp_products_left_huright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((x)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (x)))))))) /\ ((forall pfc_index_products_left_hucoefficients. (exists pfa_gap_products_left_hucoefficientsbound. pfa_gap_products_left_hucoefficientsbound + S (pfc_index_products_left_hucoefficients) = (x)) -> exists pfc_value_products_left_hucoefficients. ((((exists ff_h_pfp_products_left_hucoefficientsentry. ff_h_pfp_products_left_hucoefficientsentry + S (pfc_value_products_left_hucoefficients) = S ((S (pfc_index_products_left_hucoefficients)) * uc)) /\ exists ff_q_pfp_products_left_hucoefficientsentry. ub = ff_q_pfp_products_left_hucoefficientsentry * S ((S (pfc_index_products_left_hucoefficients)) * uc) + (pfc_value_products_left_hucoefficients))) /\ ((exists pfc_terms_code_products_left_hucoefficientscoefficient pfc_terms_scale_products_left_hucoefficientscoefficient pfc_natural_sum_products_left_hucoefficientscoefficient. ((forall pfc_index_products_left_hucoefficientscoefficientdiagonal. (exists pfa_gap_products_left_hucoefficientscoefficientdiagonalbound. pfa_gap_products_left_hucoefficientscoefficientdiagonalbound + S (pfc_index_products_left_hucoefficientscoefficientdiagonal) = (S (pfc_index_products_left_hucoefficients))) -> exists pfc_value_products_left_hucoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_left_hucoefficientscoefficientdiagonalentry. ff_h_pfp_products_left_hucoefficientscoefficientdiagonalentry + S (pfc_value_products_left_hucoefficientscoefficientdiagonal) = S ((S (pfc_index_products_left_hucoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_hucoefficientscoefficient)) /\ exists ff_q_pfp_products_left_hucoefficientscoefficientdiagonalentry. pfc_terms_code_products_left_hucoefficientscoefficient = ff_q_pfp_products_left_hucoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_left_hucoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_hucoefficientscoefficient) + (pfc_value_products_left_hucoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_left_hucoefficientscoefficientdiagonalterm pfc_left_products_left_hucoefficientscoefficientdiagonalterm pfc_right_products_left_hucoefficientscoefficientdiagonalterm. (((pfc_index_products_left_hucoefficientscoefficientdiagonal)+pfc_complement_products_left_hucoefficientscoefficientdiagonalterm=(pfc_index_products_left_hucoefficients)) /\ ((((((exists pfa_gap_products_left_hucoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_left_hucoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_left_hucoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_products_left_hucoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_left_hucoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_left_hucoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_left_hucoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_products_left_hucoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_products_left_hucoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_left_hucoefficientscoefficientdiagonal)) * dc) + (pfc_left_products_left_hucoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_hucoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_left_hucoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_products_left_hucoefficientscoefficientdiagonal)) /\ (((pfc_left_products_left_hucoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_left_hucoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_left_hucoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_left_hucoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_products_left_hucoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_left_hucoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_left_hucoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_left_hucoefficientscoefficientdiagonalterm)) * ac)) /\ exists ff_q_pfp_products_left_hucoefficientscoefficientdiagonaltermrightentry. ab = ff_q_pfp_products_left_hucoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_left_hucoefficientscoefficientdiagonalterm)) * ac) + (pfc_right_products_left_hucoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_hucoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_left_hucoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_products_left_hucoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_left_hucoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_left_hucoefficientscoefficientdiagonal)=pfc_left_products_left_hucoefficientscoefficientdiagonalterm*pfc_right_products_left_hucoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_left_hucoefficientscoefficientsum fs_v_pfc_products_left_hucoefficientscoefficientsum. ((((exists fs_h_pfc_products_left_hucoefficientscoefficientsum_body_start. fs_h_pfc_products_left_hucoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_left_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hucoefficientscoefficientsum_body_start. fs_u_pfc_products_left_hucoefficientscoefficientsum = fs_q_pfc_products_left_hucoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_left_hucoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_left_hucoefficientscoefficientsum_body_terminal. fs_h_pfc_products_left_hucoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_left_hucoefficientscoefficient) = S ((S (S (pfc_index_products_left_hucoefficients))) * fs_v_pfc_products_left_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hucoefficientscoefficientsum_body_terminal. fs_u_pfc_products_left_hucoefficientscoefficientsum = fs_q_pfc_products_left_hucoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_left_hucoefficients))) * fs_v_pfc_products_left_hucoefficientscoefficientsum) + (pfc_natural_sum_products_left_hucoefficientscoefficient))) /\ forall fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_left_hucoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_left_hucoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps = S (pfc_index_products_left_hucoefficients)) -> exists fs_a_pfc_products_left_hucoefficientscoefficientsum_body_steps fs_r_pfc_products_left_hucoefficientscoefficientsum_body_steps fs_s_pfc_products_left_hucoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_left_hucoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_left_hucoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_left_hucoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_hucoefficientscoefficient)) /\ exists fs_q_pfc_products_left_hucoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_left_hucoefficientscoefficient = fs_q_pfc_products_left_hucoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_hucoefficientscoefficient) + (fs_a_pfc_products_left_hucoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_hucoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_left_hucoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_left_hucoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hucoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_left_hucoefficientscoefficientsum = fs_q_pfc_products_left_hucoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hucoefficientscoefficientsum) + (fs_r_pfc_products_left_hucoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_hucoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_left_hucoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_left_hucoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hucoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hucoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_left_hucoefficientscoefficientsum = fs_q_pfc_products_left_hucoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_left_hucoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hucoefficientscoefficientsum) + (fs_s_pfc_products_left_hucoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_left_hucoefficientscoefficientsum_body_steps = fs_r_pfc_products_left_hucoefficientscoefficientsum_body_steps + fs_a_pfc_products_left_hucoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_left_hucoefficientscoefficientresiduebound. pfa_gap_products_left_hucoefficientscoefficientresiduebound + S (pfc_value_products_left_hucoefficients) = (p)) /\ ((exists pfa_offset_left_products_left_hucoefficientscoefficientresiduecongruence pfa_offset_right_products_left_hucoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_left_hucoefficientscoefficient) + (p) * pfa_offset_left_products_left_hucoefficientscoefficientresiduecongruence = (pfc_value_products_left_hucoefficients) + (p) * pfa_offset_right_products_left_hucoefficientscoefficientresiduecongruence))))))))))))))))))
  34. 0034specialize prime_field_polynomial_convolution_at_length_exists (p)
  35. 0035specialize prime_field_polynomial_convolution_at_length_exists (db)
  36. 0036specialize prime_field_polynomial_convolution_at_length_exists (dc)
  37. 0037specialize prime_field_polynomial_convolution_at_length_exists (M)
  38. 0038specialize prime_field_polynomial_convolution_at_length_exists (ab)
  39. 0039specialize prime_field_polynomial_convolution_at_length_exists (ac)
  40. 0040specialize prime_field_polynomial_convolution_at_length_exists (L)
  41. 0041specialize prime_field_polynomial_convolution_at_length_exists (x)
  42. 0042apply prime_field_polynomial_convolution_at_length_exists
  43. 0043exact hp
  44. 0044exact hd
  45. 0045exact hbounds_left
  46. 0046exact hlength_witness
  47. 0047cases hu
  48. 0048cases hu_witness
  49. 0049have hv : exists ub uc. ((forall fom_index_pfp_products_left_hvleft. (exists fom_gap_pfp_products_left_hvleft_index_bound. fom_gap_pfp_products_left_hvleft_index_bound + S (fom_index_pfp_products_left_hvleft) = M) -> exists fom_value_pfp_products_left_hvleft. ((((exists fom_beta_height_pfp_products_left_hvleft_entry. fom_beta_height_pfp_products_left_hvleft_entry + S (fom_value_pfp_products_left_hvleft) = S ((S (fom_index_pfp_products_left_hvleft)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_hvleft_entry. db = fom_beta_quotient_pfp_products_left_hvleft_entry * S ((S (fom_index_pfp_products_left_hvleft)) * dc) + (fom_value_pfp_products_left_hvleft))) /\ (exists fom_gap_pfp_products_left_hvleft_value_bound. fom_gap_pfp_products_left_hvleft_value_bound + S (fom_value_pfp_products_left_hvleft) = p))) /\ (((forall fom_index_pfp_products_left_hvright. (exists fom_gap_pfp_products_left_hvright_index_bound. fom_gap_pfp_products_left_hvright_index_bound + S (fom_index_pfp_products_left_hvright) = L) -> exists fom_value_pfp_products_left_hvright. ((((exists fom_beta_height_pfp_products_left_hvright_entry. fom_beta_height_pfp_products_left_hvright_entry + S (fom_value_pfp_products_left_hvright) = S ((S (fom_index_pfp_products_left_hvright)) * bc)) /\ exists fom_beta_quotient_pfp_products_left_hvright_entry. bb = fom_beta_quotient_pfp_products_left_hvright_entry * S ((S (fom_index_pfp_products_left_hvright)) * bc) + (fom_value_pfp_products_left_hvright))) /\ (exists fom_gap_pfp_products_left_hvright_value_bound. fom_gap_pfp_products_left_hvright_value_bound + S (fom_value_pfp_products_left_hvright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((x)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (x)))))))) /\ ((forall pfc_index_products_left_hvcoefficients. (exists pfa_gap_products_left_hvcoefficientsbound. pfa_gap_products_left_hvcoefficientsbound + S (pfc_index_products_left_hvcoefficients) = (x)) -> exists pfc_value_products_left_hvcoefficients. ((((exists ff_h_pfp_products_left_hvcoefficientsentry. ff_h_pfp_products_left_hvcoefficientsentry + S (pfc_value_products_left_hvcoefficients) = S ((S (pfc_index_products_left_hvcoefficients)) * uc)) /\ exists ff_q_pfp_products_left_hvcoefficientsentry. ub = ff_q_pfp_products_left_hvcoefficientsentry * S ((S (pfc_index_products_left_hvcoefficients)) * uc) + (pfc_value_products_left_hvcoefficients))) /\ ((exists pfc_terms_code_products_left_hvcoefficientscoefficient pfc_terms_scale_products_left_hvcoefficientscoefficient pfc_natural_sum_products_left_hvcoefficientscoefficient. ((forall pfc_index_products_left_hvcoefficientscoefficientdiagonal. (exists pfa_gap_products_left_hvcoefficientscoefficientdiagonalbound. pfa_gap_products_left_hvcoefficientscoefficientdiagonalbound + S (pfc_index_products_left_hvcoefficientscoefficientdiagonal) = (S (pfc_index_products_left_hvcoefficients))) -> exists pfc_value_products_left_hvcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_left_hvcoefficientscoefficientdiagonalentry. ff_h_pfp_products_left_hvcoefficientscoefficientdiagonalentry + S (pfc_value_products_left_hvcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_left_hvcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_hvcoefficientscoefficient)) /\ exists ff_q_pfp_products_left_hvcoefficientscoefficientdiagonalentry. pfc_terms_code_products_left_hvcoefficientscoefficient = ff_q_pfp_products_left_hvcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_left_hvcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_hvcoefficientscoefficient) + (pfc_value_products_left_hvcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_left_hvcoefficientscoefficientdiagonalterm pfc_left_products_left_hvcoefficientscoefficientdiagonalterm pfc_right_products_left_hvcoefficientscoefficientdiagonalterm. (((pfc_index_products_left_hvcoefficientscoefficientdiagonal)+pfc_complement_products_left_hvcoefficientscoefficientdiagonalterm=(pfc_index_products_left_hvcoefficients)) /\ ((((((exists pfa_gap_products_left_hvcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_left_hvcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_left_hvcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_products_left_hvcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_left_hvcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_left_hvcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_left_hvcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_products_left_hvcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_products_left_hvcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_left_hvcoefficientscoefficientdiagonal)) * dc) + (pfc_left_products_left_hvcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_hvcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_left_hvcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_products_left_hvcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_left_hvcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_left_hvcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_left_hvcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_left_hvcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_products_left_hvcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_left_hvcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_left_hvcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_left_hvcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_products_left_hvcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_products_left_hvcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_left_hvcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_products_left_hvcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_hvcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_left_hvcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_products_left_hvcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_left_hvcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_left_hvcoefficientscoefficientdiagonal)=pfc_left_products_left_hvcoefficientscoefficientdiagonalterm*pfc_right_products_left_hvcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_left_hvcoefficientscoefficientsum fs_v_pfc_products_left_hvcoefficientscoefficientsum. ((((exists fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_start. fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_left_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_start. fs_u_pfc_products_left_hvcoefficientscoefficientsum = fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_left_hvcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_left_hvcoefficientscoefficient) = S ((S (S (pfc_index_products_left_hvcoefficients))) * fs_v_pfc_products_left_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_left_hvcoefficientscoefficientsum = fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_left_hvcoefficients))) * fs_v_pfc_products_left_hvcoefficientscoefficientsum) + (pfc_natural_sum_products_left_hvcoefficientscoefficient))) /\ forall fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_left_hvcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_left_hvcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps = S (pfc_index_products_left_hvcoefficients)) -> exists fs_a_pfc_products_left_hvcoefficientscoefficientsum_body_steps fs_r_pfc_products_left_hvcoefficientscoefficientsum_body_steps fs_s_pfc_products_left_hvcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_left_hvcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_hvcoefficientscoefficient)) /\ exists fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_left_hvcoefficientscoefficient = fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_hvcoefficientscoefficient) + (fs_a_pfc_products_left_hvcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_left_hvcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_left_hvcoefficientscoefficientsum = fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hvcoefficientscoefficientsum) + (fs_r_pfc_products_left_hvcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_left_hvcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_left_hvcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hvcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_left_hvcoefficientscoefficientsum = fs_q_pfc_products_left_hvcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_left_hvcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hvcoefficientscoefficientsum) + (fs_s_pfc_products_left_hvcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_left_hvcoefficientscoefficientsum_body_steps = fs_r_pfc_products_left_hvcoefficientscoefficientsum_body_steps + fs_a_pfc_products_left_hvcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_left_hvcoefficientscoefficientresiduebound. pfa_gap_products_left_hvcoefficientscoefficientresiduebound + S (pfc_value_products_left_hvcoefficients) = (p)) /\ ((exists pfa_offset_left_products_left_hvcoefficientscoefficientresiduecongruence pfa_offset_right_products_left_hvcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_left_hvcoefficientscoefficient) + (p) * pfa_offset_left_products_left_hvcoefficientscoefficientresiduecongruence = (pfc_value_products_left_hvcoefficients) + (p) * pfa_offset_right_products_left_hvcoefficientscoefficientresiduecongruence))))))))))))))))))
  50. 0050specialize prime_field_polynomial_convolution_at_length_exists (p)
  51. 0051specialize prime_field_polynomial_convolution_at_length_exists (db)
  52. 0052specialize prime_field_polynomial_convolution_at_length_exists (dc)
  53. 0053specialize prime_field_polynomial_convolution_at_length_exists (M)
  54. 0054specialize prime_field_polynomial_convolution_at_length_exists (bb)
  55. 0055specialize prime_field_polynomial_convolution_at_length_exists (bc)
  56. 0056specialize prime_field_polynomial_convolution_at_length_exists (L)
  57. 0057specialize prime_field_polynomial_convolution_at_length_exists (x)
  58. 0058apply prime_field_polynomial_convolution_at_length_exists
  59. 0059exact hp
  60. 0060exact hd
  61. 0061exact hbounds_right_left
  62. 0062exact hlength_witness
  63. 0063cases hv
  64. 0064cases hv_witness
  65. 0065have hw : exists ub uc. ((forall fom_index_pfp_products_left_hwleft. (exists fom_gap_pfp_products_left_hwleft_index_bound. fom_gap_pfp_products_left_hwleft_index_bound + S (fom_index_pfp_products_left_hwleft) = M) -> exists fom_value_pfp_products_left_hwleft. ((((exists fom_beta_height_pfp_products_left_hwleft_entry. fom_beta_height_pfp_products_left_hwleft_entry + S (fom_value_pfp_products_left_hwleft) = S ((S (fom_index_pfp_products_left_hwleft)) * dc)) /\ exists fom_beta_quotient_pfp_products_left_hwleft_entry. db = fom_beta_quotient_pfp_products_left_hwleft_entry * S ((S (fom_index_pfp_products_left_hwleft)) * dc) + (fom_value_pfp_products_left_hwleft))) /\ (exists fom_gap_pfp_products_left_hwleft_value_bound. fom_gap_pfp_products_left_hwleft_value_bound + S (fom_value_pfp_products_left_hwleft) = p))) /\ (((forall fom_index_pfp_products_left_hwright. (exists fom_gap_pfp_products_left_hwright_index_bound. fom_gap_pfp_products_left_hwright_index_bound + S (fom_index_pfp_products_left_hwright) = L) -> exists fom_value_pfp_products_left_hwright. ((((exists fom_beta_height_pfp_products_left_hwright_entry. fom_beta_height_pfp_products_left_hwright_entry + S (fom_value_pfp_products_left_hwright) = S ((S (fom_index_pfp_products_left_hwright)) * cc)) /\ exists fom_beta_quotient_pfp_products_left_hwright_entry. cb = fom_beta_quotient_pfp_products_left_hwright_entry * S ((S (fom_index_pfp_products_left_hwright)) * cc) + (fom_value_pfp_products_left_hwright))) /\ (exists fom_gap_pfp_products_left_hwright_value_bound. fom_gap_pfp_products_left_hwright_value_bound + S (fom_value_pfp_products_left_hwright) = p))) /\ (((((((M)=0 \/ (L)=0) /\ (((x)=0)))) \/ (((~((M)=0)) /\ (((~((L)=0)) /\ (((M)+(L)=S (x)))))))) /\ ((forall pfc_index_products_left_hwcoefficients. (exists pfa_gap_products_left_hwcoefficientsbound. pfa_gap_products_left_hwcoefficientsbound + S (pfc_index_products_left_hwcoefficients) = (x)) -> exists pfc_value_products_left_hwcoefficients. ((((exists ff_h_pfp_products_left_hwcoefficientsentry. ff_h_pfp_products_left_hwcoefficientsentry + S (pfc_value_products_left_hwcoefficients) = S ((S (pfc_index_products_left_hwcoefficients)) * uc)) /\ exists ff_q_pfp_products_left_hwcoefficientsentry. ub = ff_q_pfp_products_left_hwcoefficientsentry * S ((S (pfc_index_products_left_hwcoefficients)) * uc) + (pfc_value_products_left_hwcoefficients))) /\ ((exists pfc_terms_code_products_left_hwcoefficientscoefficient pfc_terms_scale_products_left_hwcoefficientscoefficient pfc_natural_sum_products_left_hwcoefficientscoefficient. ((forall pfc_index_products_left_hwcoefficientscoefficientdiagonal. (exists pfa_gap_products_left_hwcoefficientscoefficientdiagonalbound. pfa_gap_products_left_hwcoefficientscoefficientdiagonalbound + S (pfc_index_products_left_hwcoefficientscoefficientdiagonal) = (S (pfc_index_products_left_hwcoefficients))) -> exists pfc_value_products_left_hwcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_products_left_hwcoefficientscoefficientdiagonalentry. ff_h_pfp_products_left_hwcoefficientscoefficientdiagonalentry + S (pfc_value_products_left_hwcoefficientscoefficientdiagonal) = S ((S (pfc_index_products_left_hwcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_hwcoefficientscoefficient)) /\ exists ff_q_pfp_products_left_hwcoefficientscoefficientdiagonalentry. pfc_terms_code_products_left_hwcoefficientscoefficient = ff_q_pfp_products_left_hwcoefficientscoefficientdiagonalentry * S ((S (pfc_index_products_left_hwcoefficientscoefficientdiagonal)) * pfc_terms_scale_products_left_hwcoefficientscoefficient) + (pfc_value_products_left_hwcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_products_left_hwcoefficientscoefficientdiagonalterm pfc_left_products_left_hwcoefficientscoefficientdiagonalterm pfc_right_products_left_hwcoefficientscoefficientdiagonalterm. (((pfc_index_products_left_hwcoefficientscoefficientdiagonal)+pfc_complement_products_left_hwcoefficientscoefficientdiagonalterm=(pfc_index_products_left_hwcoefficients)) /\ ((((((exists pfa_gap_products_left_hwcoefficientscoefficientdiagonaltermleftinside. pfa_gap_products_left_hwcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_products_left_hwcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_products_left_hwcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_products_left_hwcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_products_left_hwcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_products_left_hwcoefficientscoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_products_left_hwcoefficientscoefficientdiagonaltermleftentry. db = ff_q_pfp_products_left_hwcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_products_left_hwcoefficientscoefficientdiagonal)) * dc) + (pfc_left_products_left_hwcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_hwcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_products_left_hwcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_products_left_hwcoefficientscoefficientdiagonal)) /\ (((pfc_left_products_left_hwcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_products_left_hwcoefficientscoefficientdiagonaltermrightinside. pfa_gap_products_left_hwcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_products_left_hwcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_products_left_hwcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_products_left_hwcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_products_left_hwcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_products_left_hwcoefficientscoefficientdiagonalterm)) * cc)) /\ exists ff_q_pfp_products_left_hwcoefficientscoefficientdiagonaltermrightentry. cb = ff_q_pfp_products_left_hwcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_products_left_hwcoefficientscoefficientdiagonalterm)) * cc) + (pfc_right_products_left_hwcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_products_left_hwcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_products_left_hwcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_products_left_hwcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_products_left_hwcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_products_left_hwcoefficientscoefficientdiagonal)=pfc_left_products_left_hwcoefficientscoefficientdiagonalterm*pfc_right_products_left_hwcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_products_left_hwcoefficientscoefficientsum fs_v_pfc_products_left_hwcoefficientscoefficientsum. ((((exists fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_start. fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_products_left_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_start. fs_u_pfc_products_left_hwcoefficientscoefficientsum = fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_products_left_hwcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_terminal. fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_products_left_hwcoefficientscoefficient) = S ((S (S (pfc_index_products_left_hwcoefficients))) * fs_v_pfc_products_left_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_terminal. fs_u_pfc_products_left_hwcoefficientscoefficientsum = fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_products_left_hwcoefficients))) * fs_v_pfc_products_left_hwcoefficientscoefficientsum) + (pfc_natural_sum_products_left_hwcoefficientscoefficient))) /\ forall fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_products_left_hwcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_products_left_hwcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps = S (pfc_index_products_left_hwcoefficients)) -> exists fs_a_pfc_products_left_hwcoefficientscoefficientsum_body_steps fs_r_pfc_products_left_hwcoefficientscoefficientsum_body_steps fs_s_pfc_products_left_hwcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_products_left_hwcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_hwcoefficientscoefficient)) /\ exists fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_products_left_hwcoefficientscoefficient = fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_products_left_hwcoefficientscoefficient) + (fs_a_pfc_products_left_hwcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_products_left_hwcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_products_left_hwcoefficientscoefficientsum = fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hwcoefficientscoefficientsum) + (fs_r_pfc_products_left_hwcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_products_left_hwcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_products_left_hwcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hwcoefficientscoefficientsum)) /\ exists fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_products_left_hwcoefficientscoefficientsum = fs_q_pfc_products_left_hwcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_products_left_hwcoefficientscoefficientsum_body_steps)) * fs_v_pfc_products_left_hwcoefficientscoefficientsum) + (fs_s_pfc_products_left_hwcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_products_left_hwcoefficientscoefficientsum_body_steps = fs_r_pfc_products_left_hwcoefficientscoefficientsum_body_steps + fs_a_pfc_products_left_hwcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_products_left_hwcoefficientscoefficientresiduebound. pfa_gap_products_left_hwcoefficientscoefficientresiduebound + S (pfc_value_products_left_hwcoefficients) = (p)) /\ ((exists pfa_offset_left_products_left_hwcoefficientscoefficientresiduecongruence pfa_offset_right_products_left_hwcoefficientscoefficientresiduecongruence. (pfc_natural_sum_products_left_hwcoefficientscoefficient) + (p) * pfa_offset_left_products_left_hwcoefficientscoefficientresiduecongruence = (pfc_value_products_left_hwcoefficients) + (p) * pfa_offset_right_products_left_hwcoefficientscoefficientresiduecongruence))))))))))))))))))
  66. 0066specialize prime_field_polynomial_convolution_at_length_exists (p)
  67. 0067specialize prime_field_polynomial_convolution_at_length_exists (db)
  68. 0068specialize prime_field_polynomial_convolution_at_length_exists (dc)
  69. 0069specialize prime_field_polynomial_convolution_at_length_exists (M)
  70. 0070specialize prime_field_polynomial_convolution_at_length_exists (cb)
  71. 0071specialize prime_field_polynomial_convolution_at_length_exists (cc)
  72. 0072specialize prime_field_polynomial_convolution_at_length_exists (L)
  73. 0073specialize prime_field_polynomial_convolution_at_length_exists (x)
  74. 0074apply prime_field_polynomial_convolution_at_length_exists
  75. 0075exact hp
  76. 0076exact hd
  77. 0077exact hbounds_right_right
  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_left_add (p)
  95. 0095specialize prime_field_polynomial_convolution_left_add (ab)
  96. 0096specialize prime_field_polynomial_convolution_left_add (ac)
  97. 0097specialize prime_field_polynomial_convolution_left_add (bb)
  98. 0098specialize prime_field_polynomial_convolution_left_add (bc)
  99. 0099specialize prime_field_polynomial_convolution_left_add (cb)
  100. 0100specialize prime_field_polynomial_convolution_left_add (cc)
  101. 0101specialize prime_field_polynomial_convolution_left_add (L)
  102. 0102specialize prime_field_polynomial_convolution_left_add (db)
  103. 0103specialize prime_field_polynomial_convolution_left_add (dc)
  104. 0104specialize prime_field_polynomial_convolution_left_add (M)
  105. 0105specialize prime_field_polynomial_convolution_left_add (x1)
  106. 0106specialize prime_field_polynomial_convolution_left_add (x2)
  107. 0107specialize prime_field_polynomial_convolution_left_add (x3)
  108. 0108specialize prime_field_polynomial_convolution_left_add (x4)
  109. 0109specialize prime_field_polynomial_convolution_left_add (x5)
  110. 0110specialize prime_field_polynomial_convolution_left_add (x6)
  111. 0111specialize prime_field_polynomial_convolution_left_add (x)
  112. 0112apply prime_field_polynomial_convolution_left_add
  113. 0113exact hs
  114. 0114exact hu_witness_witness
  115. 0115exact hv_witness_witness
  116. 0116exact hw_witness_witness