PX0048

prime_field_convolution_prefix_left_add

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

Every requested ambient output prefix of the three actual left products satisfies actual coefficientwise addition, including N=0 and prefixes extending past product support.

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 ub uc vb vc wb wc N. (forall pfp_index_prefix_add_left_source. (exists pfa_gap_prefix_add_left_sourceindex. pfa_gap_prefix_add_left_sourceindex + S (pfp_index_prefix_add_left_source) = (L)) -> exists pfp_left_prefix_add_left_source pfp_right_prefix_add_left_source pfp_value_prefix_add_left_source. ((((exists ff_h_pfp_prefix_add_left_sourceleft. ff_h_pfp_prefix_add_left_sourceleft + S (pfp_left_prefix_add_left_source) = S ((S (pfp_index_prefix_add_left_source)) * ac)) /\ exists ff_q_pfp_prefix_add_left_sourceleft. ab = ff_q_pfp_prefix_add_left_sourceleft * S ((S (pfp_index_prefix_add_left_source)) * ac) + (pfp_left_prefix_add_left_source))) /\ (((((exists ff_h_pfp_prefix_add_left_sourceright. ff_h_pfp_prefix_add_left_sourceright + S (pfp_right_prefix_add_left_source) = S ((S (pfp_index_prefix_add_left_source)) * bc)) /\ exists ff_q_pfp_prefix_add_left_sourceright. bb = ff_q_pfp_prefix_add_left_sourceright * S ((S (pfp_index_prefix_add_left_source)) * bc) + (pfp_right_prefix_add_left_source))) /\ (((((exists ff_h_pfp_prefix_add_left_sourcetarget. ff_h_pfp_prefix_add_left_sourcetarget + S (pfp_value_prefix_add_left_source) = S ((S (pfp_index_prefix_add_left_source)) * cc)) /\ exists ff_q_pfp_prefix_add_left_sourcetarget. cb = ff_q_pfp_prefix_add_left_sourcetarget * S ((S (pfp_index_prefix_add_left_source)) * cc) + (pfp_value_prefix_add_left_source))) /\ ((((exists pfa_gap_prefix_add_left_sourceoperationleft. pfa_gap_prefix_add_left_sourceoperationleft + S (pfp_left_prefix_add_left_source) = (p)) /\ (((exists pfa_gap_prefix_add_left_sourceoperationright. pfa_gap_prefix_add_left_sourceoperationright + S (pfp_right_prefix_add_left_source) = (p)) /\ ((((exists pfa_gap_prefix_add_left_sourceoperationresultbound. pfa_gap_prefix_add_left_sourceoperationresultbound + S (pfp_value_prefix_add_left_source) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_sourceoperationresultcongruence pfa_offset_right_prefix_add_left_sourceoperationresultcongruence. ((pfp_left_prefix_add_left_source) + (pfp_right_prefix_add_left_source)) + (p) * pfa_offset_left_prefix_add_left_sourceoperationresultcongruence = (pfp_value_prefix_add_left_source) + (p) * pfa_offset_right_prefix_add_left_sourceoperationresultcongruence)))))))))))))))) -> (forall pfc_index_prefix_add_left_ub. (exists pfa_gap_prefix_add_left_ubbound. pfa_gap_prefix_add_left_ubbound + S (pfc_index_prefix_add_left_ub) = (N)) -> exists pfc_value_prefix_add_left_ub. ((((exists ff_h_pfp_prefix_add_left_ubentry. ff_h_pfp_prefix_add_left_ubentry + S (pfc_value_prefix_add_left_ub) = S ((S (pfc_index_prefix_add_left_ub)) * uc)) /\ exists ff_q_pfp_prefix_add_left_ubentry. ub = ff_q_pfp_prefix_add_left_ubentry * S ((S (pfc_index_prefix_add_left_ub)) * uc) + (pfc_value_prefix_add_left_ub))) /\ ((exists pfc_terms_code_prefix_add_left_ubcoefficient pfc_terms_scale_prefix_add_left_ubcoefficient pfc_natural_sum_prefix_add_left_ubcoefficient. ((forall pfc_index_prefix_add_left_ubcoefficientdiagonal. (exists pfa_gap_prefix_add_left_ubcoefficientdiagonalbound. pfa_gap_prefix_add_left_ubcoefficientdiagonalbound + S (pfc_index_prefix_add_left_ubcoefficientdiagonal) = (S (pfc_index_prefix_add_left_ub))) -> exists pfc_value_prefix_add_left_ubcoefficientdiagonal. ((((exists ff_h_pfp_prefix_add_left_ubcoefficientdiagonalentry. ff_h_pfp_prefix_add_left_ubcoefficientdiagonalentry + S (pfc_value_prefix_add_left_ubcoefficientdiagonal) = S ((S (pfc_index_prefix_add_left_ubcoefficientdiagonal)) * pfc_terms_scale_prefix_add_left_ubcoefficient)) /\ exists ff_q_pfp_prefix_add_left_ubcoefficientdiagonalentry. pfc_terms_code_prefix_add_left_ubcoefficient = ff_q_pfp_prefix_add_left_ubcoefficientdiagonalentry * S ((S (pfc_index_prefix_add_left_ubcoefficientdiagonal)) * pfc_terms_scale_prefix_add_left_ubcoefficient) + (pfc_value_prefix_add_left_ubcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_add_left_ubcoefficientdiagonalterm pfc_left_prefix_add_left_ubcoefficientdiagonalterm pfc_right_prefix_add_left_ubcoefficientdiagonalterm. (((pfc_index_prefix_add_left_ubcoefficientdiagonal)+pfc_complement_prefix_add_left_ubcoefficientdiagonalterm=(pfc_index_prefix_add_left_ub)) /\ ((((((exists pfa_gap_prefix_add_left_ubcoefficientdiagonaltermleftinside. pfa_gap_prefix_add_left_ubcoefficientdiagonaltermleftinside + S (pfc_index_prefix_add_left_ubcoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_prefix_add_left_ubcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_add_left_ubcoefficientdiagonaltermleftentry + S (pfc_left_prefix_add_left_ubcoefficientdiagonalterm) = S ((S (pfc_index_prefix_add_left_ubcoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_prefix_add_left_ubcoefficientdiagonaltermleftentry. db = ff_q_pfp_prefix_add_left_ubcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_add_left_ubcoefficientdiagonal)) * dc) + (pfc_left_prefix_add_left_ubcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_ubcoefficientdiagonaltermleftoutside. pfc_gap_prefix_add_left_ubcoefficientdiagonaltermleftoutside+(M)=(pfc_index_prefix_add_left_ubcoefficientdiagonal)) /\ (((pfc_left_prefix_add_left_ubcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_left_ubcoefficientdiagonaltermrightinside. pfa_gap_prefix_add_left_ubcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_add_left_ubcoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_prefix_add_left_ubcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_add_left_ubcoefficientdiagonaltermrightentry + S (pfc_right_prefix_add_left_ubcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_add_left_ubcoefficientdiagonalterm)) * ac)) /\ exists ff_q_pfp_prefix_add_left_ubcoefficientdiagonaltermrightentry. ab = ff_q_pfp_prefix_add_left_ubcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_left_ubcoefficientdiagonalterm)) * ac) + (pfc_right_prefix_add_left_ubcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_ubcoefficientdiagonaltermrightoutside. pfc_gap_prefix_add_left_ubcoefficientdiagonaltermrightoutside+(L)=(pfc_complement_prefix_add_left_ubcoefficientdiagonalterm)) /\ (((pfc_right_prefix_add_left_ubcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_left_ubcoefficientdiagonal)=pfc_left_prefix_add_left_ubcoefficientdiagonalterm*pfc_right_prefix_add_left_ubcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_left_ubcoefficientsum fs_v_pfc_prefix_add_left_ubcoefficientsum. ((((exists fs_h_pfc_prefix_add_left_ubcoefficientsum_body_start. fs_h_pfc_prefix_add_left_ubcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_left_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_ubcoefficientsum_body_start. fs_u_pfc_prefix_add_left_ubcoefficientsum = fs_q_pfc_prefix_add_left_ubcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_left_ubcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_left_ubcoefficientsum_body_terminal. fs_h_pfc_prefix_add_left_ubcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_add_left_ubcoefficient) = S ((S (S (pfc_index_prefix_add_left_ub))) * fs_v_pfc_prefix_add_left_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_ubcoefficientsum_body_terminal. fs_u_pfc_prefix_add_left_ubcoefficientsum = fs_q_pfc_prefix_add_left_ubcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_add_left_ub))) * fs_v_pfc_prefix_add_left_ubcoefficientsum) + (pfc_natural_sum_prefix_add_left_ubcoefficient))) /\ forall fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_add_left_ubcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_add_left_ubcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps = S (pfc_index_prefix_add_left_ub)) -> exists fs_a_pfc_prefix_add_left_ubcoefficientsum_body_steps fs_r_pfc_prefix_add_left_ubcoefficientsum_body_steps fs_s_pfc_prefix_add_left_ubcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_add_left_ubcoefficientsum_body_steps_summand. fs_h_pfc_prefix_add_left_ubcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_add_left_ubcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_left_ubcoefficient)) /\ exists fs_q_pfc_prefix_add_left_ubcoefficientsum_body_steps_summand. pfc_terms_code_prefix_add_left_ubcoefficient = fs_q_pfc_prefix_add_left_ubcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_left_ubcoefficient) + (fs_a_pfc_prefix_add_left_ubcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_ubcoefficientsum_body_steps_partial. fs_h_pfc_prefix_add_left_ubcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_add_left_ubcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_ubcoefficientsum_body_steps_partial. fs_u_pfc_prefix_add_left_ubcoefficientsum = fs_q_pfc_prefix_add_left_ubcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_ubcoefficientsum) + (fs_r_pfc_prefix_add_left_ubcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_ubcoefficientsum_body_steps_successor. fs_h_pfc_prefix_add_left_ubcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_add_left_ubcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_ubcoefficientsum_body_steps_successor. fs_u_pfc_prefix_add_left_ubcoefficientsum = fs_q_pfc_prefix_add_left_ubcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_left_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_ubcoefficientsum) + (fs_s_pfc_prefix_add_left_ubcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_add_left_ubcoefficientsum_body_steps = fs_r_pfc_prefix_add_left_ubcoefficientsum_body_steps + fs_a_pfc_prefix_add_left_ubcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_left_ubcoefficientresiduebound. pfa_gap_prefix_add_left_ubcoefficientresiduebound + S (pfc_value_prefix_add_left_ub) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_ubcoefficientresiduecongruence pfa_offset_right_prefix_add_left_ubcoefficientresiduecongruence. (pfc_natural_sum_prefix_add_left_ubcoefficient) + (p) * pfa_offset_left_prefix_add_left_ubcoefficientresiduecongruence = (pfc_value_prefix_add_left_ub) + (p) * pfa_offset_right_prefix_add_left_ubcoefficientresiduecongruence)))))))))))) -> (forall pfc_index_prefix_add_left_vb. (exists pfa_gap_prefix_add_left_vbbound. pfa_gap_prefix_add_left_vbbound + S (pfc_index_prefix_add_left_vb) = (N)) -> exists pfc_value_prefix_add_left_vb. ((((exists ff_h_pfp_prefix_add_left_vbentry. ff_h_pfp_prefix_add_left_vbentry + S (pfc_value_prefix_add_left_vb) = S ((S (pfc_index_prefix_add_left_vb)) * vc)) /\ exists ff_q_pfp_prefix_add_left_vbentry. vb = ff_q_pfp_prefix_add_left_vbentry * S ((S (pfc_index_prefix_add_left_vb)) * vc) + (pfc_value_prefix_add_left_vb))) /\ ((exists pfc_terms_code_prefix_add_left_vbcoefficient pfc_terms_scale_prefix_add_left_vbcoefficient pfc_natural_sum_prefix_add_left_vbcoefficient. ((forall pfc_index_prefix_add_left_vbcoefficientdiagonal. (exists pfa_gap_prefix_add_left_vbcoefficientdiagonalbound. pfa_gap_prefix_add_left_vbcoefficientdiagonalbound + S (pfc_index_prefix_add_left_vbcoefficientdiagonal) = (S (pfc_index_prefix_add_left_vb))) -> exists pfc_value_prefix_add_left_vbcoefficientdiagonal. ((((exists ff_h_pfp_prefix_add_left_vbcoefficientdiagonalentry. ff_h_pfp_prefix_add_left_vbcoefficientdiagonalentry + S (pfc_value_prefix_add_left_vbcoefficientdiagonal) = S ((S (pfc_index_prefix_add_left_vbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_left_vbcoefficient)) /\ exists ff_q_pfp_prefix_add_left_vbcoefficientdiagonalentry. pfc_terms_code_prefix_add_left_vbcoefficient = ff_q_pfp_prefix_add_left_vbcoefficientdiagonalentry * S ((S (pfc_index_prefix_add_left_vbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_left_vbcoefficient) + (pfc_value_prefix_add_left_vbcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_add_left_vbcoefficientdiagonalterm pfc_left_prefix_add_left_vbcoefficientdiagonalterm pfc_right_prefix_add_left_vbcoefficientdiagonalterm. (((pfc_index_prefix_add_left_vbcoefficientdiagonal)+pfc_complement_prefix_add_left_vbcoefficientdiagonalterm=(pfc_index_prefix_add_left_vb)) /\ ((((((exists pfa_gap_prefix_add_left_vbcoefficientdiagonaltermleftinside. pfa_gap_prefix_add_left_vbcoefficientdiagonaltermleftinside + S (pfc_index_prefix_add_left_vbcoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_prefix_add_left_vbcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_add_left_vbcoefficientdiagonaltermleftentry + S (pfc_left_prefix_add_left_vbcoefficientdiagonalterm) = S ((S (pfc_index_prefix_add_left_vbcoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_prefix_add_left_vbcoefficientdiagonaltermleftentry. db = ff_q_pfp_prefix_add_left_vbcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_add_left_vbcoefficientdiagonal)) * dc) + (pfc_left_prefix_add_left_vbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_vbcoefficientdiagonaltermleftoutside. pfc_gap_prefix_add_left_vbcoefficientdiagonaltermleftoutside+(M)=(pfc_index_prefix_add_left_vbcoefficientdiagonal)) /\ (((pfc_left_prefix_add_left_vbcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_left_vbcoefficientdiagonaltermrightinside. pfa_gap_prefix_add_left_vbcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_add_left_vbcoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_prefix_add_left_vbcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_add_left_vbcoefficientdiagonaltermrightentry + S (pfc_right_prefix_add_left_vbcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_add_left_vbcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_prefix_add_left_vbcoefficientdiagonaltermrightentry. bb = ff_q_pfp_prefix_add_left_vbcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_left_vbcoefficientdiagonalterm)) * bc) + (pfc_right_prefix_add_left_vbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_vbcoefficientdiagonaltermrightoutside. pfc_gap_prefix_add_left_vbcoefficientdiagonaltermrightoutside+(L)=(pfc_complement_prefix_add_left_vbcoefficientdiagonalterm)) /\ (((pfc_right_prefix_add_left_vbcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_left_vbcoefficientdiagonal)=pfc_left_prefix_add_left_vbcoefficientdiagonalterm*pfc_right_prefix_add_left_vbcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_left_vbcoefficientsum fs_v_pfc_prefix_add_left_vbcoefficientsum. ((((exists fs_h_pfc_prefix_add_left_vbcoefficientsum_body_start. fs_h_pfc_prefix_add_left_vbcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_left_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_vbcoefficientsum_body_start. fs_u_pfc_prefix_add_left_vbcoefficientsum = fs_q_pfc_prefix_add_left_vbcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_left_vbcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_left_vbcoefficientsum_body_terminal. fs_h_pfc_prefix_add_left_vbcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_add_left_vbcoefficient) = S ((S (S (pfc_index_prefix_add_left_vb))) * fs_v_pfc_prefix_add_left_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_vbcoefficientsum_body_terminal. fs_u_pfc_prefix_add_left_vbcoefficientsum = fs_q_pfc_prefix_add_left_vbcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_add_left_vb))) * fs_v_pfc_prefix_add_left_vbcoefficientsum) + (pfc_natural_sum_prefix_add_left_vbcoefficient))) /\ forall fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_add_left_vbcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_add_left_vbcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps = S (pfc_index_prefix_add_left_vb)) -> exists fs_a_pfc_prefix_add_left_vbcoefficientsum_body_steps fs_r_pfc_prefix_add_left_vbcoefficientsum_body_steps fs_s_pfc_prefix_add_left_vbcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_add_left_vbcoefficientsum_body_steps_summand. fs_h_pfc_prefix_add_left_vbcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_add_left_vbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_left_vbcoefficient)) /\ exists fs_q_pfc_prefix_add_left_vbcoefficientsum_body_steps_summand. pfc_terms_code_prefix_add_left_vbcoefficient = fs_q_pfc_prefix_add_left_vbcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_left_vbcoefficient) + (fs_a_pfc_prefix_add_left_vbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_vbcoefficientsum_body_steps_partial. fs_h_pfc_prefix_add_left_vbcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_add_left_vbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_vbcoefficientsum_body_steps_partial. fs_u_pfc_prefix_add_left_vbcoefficientsum = fs_q_pfc_prefix_add_left_vbcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_vbcoefficientsum) + (fs_r_pfc_prefix_add_left_vbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_vbcoefficientsum_body_steps_successor. fs_h_pfc_prefix_add_left_vbcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_add_left_vbcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_vbcoefficientsum_body_steps_successor. fs_u_pfc_prefix_add_left_vbcoefficientsum = fs_q_pfc_prefix_add_left_vbcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_left_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_vbcoefficientsum) + (fs_s_pfc_prefix_add_left_vbcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_add_left_vbcoefficientsum_body_steps = fs_r_pfc_prefix_add_left_vbcoefficientsum_body_steps + fs_a_pfc_prefix_add_left_vbcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_left_vbcoefficientresiduebound. pfa_gap_prefix_add_left_vbcoefficientresiduebound + S (pfc_value_prefix_add_left_vb) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_vbcoefficientresiduecongruence pfa_offset_right_prefix_add_left_vbcoefficientresiduecongruence. (pfc_natural_sum_prefix_add_left_vbcoefficient) + (p) * pfa_offset_left_prefix_add_left_vbcoefficientresiduecongruence = (pfc_value_prefix_add_left_vb) + (p) * pfa_offset_right_prefix_add_left_vbcoefficientresiduecongruence)))))))))))) -> (forall pfc_index_prefix_add_left_wb. (exists pfa_gap_prefix_add_left_wbbound. pfa_gap_prefix_add_left_wbbound + S (pfc_index_prefix_add_left_wb) = (N)) -> exists pfc_value_prefix_add_left_wb. ((((exists ff_h_pfp_prefix_add_left_wbentry. ff_h_pfp_prefix_add_left_wbentry + S (pfc_value_prefix_add_left_wb) = S ((S (pfc_index_prefix_add_left_wb)) * wc)) /\ exists ff_q_pfp_prefix_add_left_wbentry. wb = ff_q_pfp_prefix_add_left_wbentry * S ((S (pfc_index_prefix_add_left_wb)) * wc) + (pfc_value_prefix_add_left_wb))) /\ ((exists pfc_terms_code_prefix_add_left_wbcoefficient pfc_terms_scale_prefix_add_left_wbcoefficient pfc_natural_sum_prefix_add_left_wbcoefficient. ((forall pfc_index_prefix_add_left_wbcoefficientdiagonal. (exists pfa_gap_prefix_add_left_wbcoefficientdiagonalbound. pfa_gap_prefix_add_left_wbcoefficientdiagonalbound + S (pfc_index_prefix_add_left_wbcoefficientdiagonal) = (S (pfc_index_prefix_add_left_wb))) -> exists pfc_value_prefix_add_left_wbcoefficientdiagonal. ((((exists ff_h_pfp_prefix_add_left_wbcoefficientdiagonalentry. ff_h_pfp_prefix_add_left_wbcoefficientdiagonalentry + S (pfc_value_prefix_add_left_wbcoefficientdiagonal) = S ((S (pfc_index_prefix_add_left_wbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_left_wbcoefficient)) /\ exists ff_q_pfp_prefix_add_left_wbcoefficientdiagonalentry. pfc_terms_code_prefix_add_left_wbcoefficient = ff_q_pfp_prefix_add_left_wbcoefficientdiagonalentry * S ((S (pfc_index_prefix_add_left_wbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_left_wbcoefficient) + (pfc_value_prefix_add_left_wbcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_add_left_wbcoefficientdiagonalterm pfc_left_prefix_add_left_wbcoefficientdiagonalterm pfc_right_prefix_add_left_wbcoefficientdiagonalterm. (((pfc_index_prefix_add_left_wbcoefficientdiagonal)+pfc_complement_prefix_add_left_wbcoefficientdiagonalterm=(pfc_index_prefix_add_left_wb)) /\ ((((((exists pfa_gap_prefix_add_left_wbcoefficientdiagonaltermleftinside. pfa_gap_prefix_add_left_wbcoefficientdiagonaltermleftinside + S (pfc_index_prefix_add_left_wbcoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_prefix_add_left_wbcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_add_left_wbcoefficientdiagonaltermleftentry + S (pfc_left_prefix_add_left_wbcoefficientdiagonalterm) = S ((S (pfc_index_prefix_add_left_wbcoefficientdiagonal)) * dc)) /\ exists ff_q_pfp_prefix_add_left_wbcoefficientdiagonaltermleftentry. db = ff_q_pfp_prefix_add_left_wbcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_add_left_wbcoefficientdiagonal)) * dc) + (pfc_left_prefix_add_left_wbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_wbcoefficientdiagonaltermleftoutside. pfc_gap_prefix_add_left_wbcoefficientdiagonaltermleftoutside+(M)=(pfc_index_prefix_add_left_wbcoefficientdiagonal)) /\ (((pfc_left_prefix_add_left_wbcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_left_wbcoefficientdiagonaltermrightinside. pfa_gap_prefix_add_left_wbcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_add_left_wbcoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_prefix_add_left_wbcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_add_left_wbcoefficientdiagonaltermrightentry + S (pfc_right_prefix_add_left_wbcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_add_left_wbcoefficientdiagonalterm)) * cc)) /\ exists ff_q_pfp_prefix_add_left_wbcoefficientdiagonaltermrightentry. cb = ff_q_pfp_prefix_add_left_wbcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_left_wbcoefficientdiagonalterm)) * cc) + (pfc_right_prefix_add_left_wbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_wbcoefficientdiagonaltermrightoutside. pfc_gap_prefix_add_left_wbcoefficientdiagonaltermrightoutside+(L)=(pfc_complement_prefix_add_left_wbcoefficientdiagonalterm)) /\ (((pfc_right_prefix_add_left_wbcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_left_wbcoefficientdiagonal)=pfc_left_prefix_add_left_wbcoefficientdiagonalterm*pfc_right_prefix_add_left_wbcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_left_wbcoefficientsum fs_v_pfc_prefix_add_left_wbcoefficientsum. ((((exists fs_h_pfc_prefix_add_left_wbcoefficientsum_body_start. fs_h_pfc_prefix_add_left_wbcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_left_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_wbcoefficientsum_body_start. fs_u_pfc_prefix_add_left_wbcoefficientsum = fs_q_pfc_prefix_add_left_wbcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_left_wbcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_left_wbcoefficientsum_body_terminal. fs_h_pfc_prefix_add_left_wbcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_add_left_wbcoefficient) = S ((S (S (pfc_index_prefix_add_left_wb))) * fs_v_pfc_prefix_add_left_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_wbcoefficientsum_body_terminal. fs_u_pfc_prefix_add_left_wbcoefficientsum = fs_q_pfc_prefix_add_left_wbcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_add_left_wb))) * fs_v_pfc_prefix_add_left_wbcoefficientsum) + (pfc_natural_sum_prefix_add_left_wbcoefficient))) /\ forall fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_add_left_wbcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_add_left_wbcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps = S (pfc_index_prefix_add_left_wb)) -> exists fs_a_pfc_prefix_add_left_wbcoefficientsum_body_steps fs_r_pfc_prefix_add_left_wbcoefficientsum_body_steps fs_s_pfc_prefix_add_left_wbcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_add_left_wbcoefficientsum_body_steps_summand. fs_h_pfc_prefix_add_left_wbcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_add_left_wbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_left_wbcoefficient)) /\ exists fs_q_pfc_prefix_add_left_wbcoefficientsum_body_steps_summand. pfc_terms_code_prefix_add_left_wbcoefficient = fs_q_pfc_prefix_add_left_wbcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_left_wbcoefficient) + (fs_a_pfc_prefix_add_left_wbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_wbcoefficientsum_body_steps_partial. fs_h_pfc_prefix_add_left_wbcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_add_left_wbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_wbcoefficientsum_body_steps_partial. fs_u_pfc_prefix_add_left_wbcoefficientsum = fs_q_pfc_prefix_add_left_wbcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_wbcoefficientsum) + (fs_r_pfc_prefix_add_left_wbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_wbcoefficientsum_body_steps_successor. fs_h_pfc_prefix_add_left_wbcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_add_left_wbcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_left_wbcoefficientsum_body_steps_successor. fs_u_pfc_prefix_add_left_wbcoefficientsum = fs_q_pfc_prefix_add_left_wbcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_left_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_left_wbcoefficientsum) + (fs_s_pfc_prefix_add_left_wbcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_add_left_wbcoefficientsum_body_steps = fs_r_pfc_prefix_add_left_wbcoefficientsum_body_steps + fs_a_pfc_prefix_add_left_wbcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_left_wbcoefficientresiduebound. pfa_gap_prefix_add_left_wbcoefficientresiduebound + S (pfc_value_prefix_add_left_wb) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_wbcoefficientresiduecongruence pfa_offset_right_prefix_add_left_wbcoefficientresiduecongruence. (pfc_natural_sum_prefix_add_left_wbcoefficient) + (p) * pfa_offset_left_prefix_add_left_wbcoefficientresiduecongruence = (pfc_value_prefix_add_left_wb) + (p) * pfa_offset_right_prefix_add_left_wbcoefficientresiduecongruence)))))))))))) -> (forall pfp_index_prefix_add_left_result. (exists pfa_gap_prefix_add_left_resultindex. pfa_gap_prefix_add_left_resultindex + S (pfp_index_prefix_add_left_result) = (N)) -> exists pfp_left_prefix_add_left_result pfp_right_prefix_add_left_result pfp_value_prefix_add_left_result. ((((exists ff_h_pfp_prefix_add_left_resultleft. ff_h_pfp_prefix_add_left_resultleft + S (pfp_left_prefix_add_left_result) = S ((S (pfp_index_prefix_add_left_result)) * uc)) /\ exists ff_q_pfp_prefix_add_left_resultleft. ub = ff_q_pfp_prefix_add_left_resultleft * S ((S (pfp_index_prefix_add_left_result)) * uc) + (pfp_left_prefix_add_left_result))) /\ (((((exists ff_h_pfp_prefix_add_left_resultright. ff_h_pfp_prefix_add_left_resultright + S (pfp_right_prefix_add_left_result) = S ((S (pfp_index_prefix_add_left_result)) * vc)) /\ exists ff_q_pfp_prefix_add_left_resultright. vb = ff_q_pfp_prefix_add_left_resultright * S ((S (pfp_index_prefix_add_left_result)) * vc) + (pfp_right_prefix_add_left_result))) /\ (((((exists ff_h_pfp_prefix_add_left_resulttarget. ff_h_pfp_prefix_add_left_resulttarget + S (pfp_value_prefix_add_left_result) = S ((S (pfp_index_prefix_add_left_result)) * wc)) /\ exists ff_q_pfp_prefix_add_left_resulttarget. wb = ff_q_pfp_prefix_add_left_resulttarget * S ((S (pfp_index_prefix_add_left_result)) * wc) + (pfp_value_prefix_add_left_result))) /\ ((((exists pfa_gap_prefix_add_left_resultoperationleft. pfa_gap_prefix_add_left_resultoperationleft + S (pfp_left_prefix_add_left_result) = (p)) /\ (((exists pfa_gap_prefix_add_left_resultoperationright. pfa_gap_prefix_add_left_resultoperationright + S (pfp_right_prefix_add_left_result) = (p)) /\ ((((exists pfa_gap_prefix_add_left_resultoperationresultbound. pfa_gap_prefix_add_left_resultoperationresultbound + S (pfp_value_prefix_add_left_result) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_resultoperationresultcongruence pfa_offset_right_prefix_add_left_resultoperationresultcongruence. ((pfp_left_prefix_add_left_result) + (pfp_right_prefix_add_left_result)) + (p) * pfa_offset_left_prefix_add_left_resultoperationresultcongruence = (pfp_value_prefix_add_left_result) + (p) * pfa_offset_right_prefix_add_left_resultoperationresultcongruence))))))))))))))))

Constructive proof overview

Generated structural guide

Every requested ambient output prefix of the three actual left products satisfies actual coefficientwise addition, including N=0 and prefixes extending past product support.

The unchanged tactic script uses 1 declared prerequisite and contains 71 exact native proof lines.

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

Proof neighborhood

Direct dependencies

Direct dependents

Formal native tactic body

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

Read the argument

Proof checkpoints

71 script commands · 18 reading checkpoints · 3 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

Named ingredients (1)

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

01Fix variables and assumptionsL1–10

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

  1. L1
    intro p
  2. L2
    intro 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–20

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

  1. L11
    intro M
  2. L12
    intro ub
  3. L13
    intro uc
  4. L14
    intro vb
  5. L15
    intro vc
  6. L16
    intro wb
  7. L17
    intro wc
  8. L18
    intro N
  9. L19
    intro hs
  10. L20
    intro hu
03Fix variables and assumptionsL21–24

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

  1. L21
    intro hv
  2. L22
    intro hw
  3. L23
    intro i
  4. L24
    intro hi
04Establish hcuL25–28

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

  1. L25
    have hcu : ∃ r. BetaAt(ub,uc,i,r) ∧ FpConvolutionCoefficient(p,db,dc,M,ab,ac,L,i,r)Definitions: FpConvolutionCoefficientBetaAt
  2. L26
    specialize hu (i)
  3. L27
    apply hu
  4. L28
    exact hi
05Separate the logical casesL29–30

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

  1. L29
    cases hcu
  2. L30
    cases hcu_witness
06Establish hcvL31–34

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

  1. L31
    have hcv : ∃ r. BetaAt(vb,vc,i,r) ∧ FpConvolutionCoefficient(p,db,dc,M,bb,bc,L,i,r)Definitions: FpConvolutionCoefficientBetaAt
  2. L32
    specialize hv (i)
  3. L33
    apply hv
  4. L34
    exact hi
07Separate the logical casesL35–36

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

  1. L35
    cases hcv
  2. L36
    cases hcv_witness
08Establish hcwL37–40

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

  1. L37
    have hcw : ∃ r. BetaAt(wb,wc,i,r) ∧ FpConvolutionCoefficient(p,db,dc,M,cb,cc,L,i,r)Definitions: FpConvolutionCoefficientBetaAt
  2. L38
    specialize hw (i)
  3. L39
    apply hw
  4. L40
    exact hi
09Separate the logical casesL41–42

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

  1. L41
    cases hcw
  2. L42
    cases hcw_witness
10Construct an explicit witnessL43–45

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

  1. L43
    exists x
  2. L44
    exists x1
  3. L45
    exists x2
11Separate the logical casesL46–46

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

  1. L46
    split
12Use earlier factsL47–47

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

  1. L47
    exact hcu_witness_left
13Separate the logical casesL48–48

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

  1. L48
    split
14Use earlier factsL49–49

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

  1. L49
    exact hcv_witness_left
15Separate the logical casesL50–50

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

  1. L50
    split
16Use earlier factsL51–60

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

  1. L51
    exact hcw_witness_left
  2. L52
    specialize prime_field_convolution_coefficient_left_add (p)
  3. L53
    specialize prime_field_convolution_coefficient_left_add (ab)
  4. L54
    specialize prime_field_convolution_coefficient_left_add (ac)
  5. L55
    specialize prime_field_convolution_coefficient_left_add (bb)
  6. L56
    specialize prime_field_convolution_coefficient_left_add (bc)
  7. L57
    specialize prime_field_convolution_coefficient_left_add (cb)
  8. L58
    specialize prime_field_convolution_coefficient_left_add (cc)
  9. L59
    specialize prime_field_convolution_coefficient_left_add (L)
  10. L60
    specialize prime_field_convolution_coefficient_left_add (db)
17Use earlier factsL61–70

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

  1. L61
    specialize prime_field_convolution_coefficient_left_add (dc)
  2. L62
    specialize prime_field_convolution_coefficient_left_add (M)
  3. L63
    specialize prime_field_convolution_coefficient_left_add (i)
  4. L64
    specialize prime_field_convolution_coefficient_left_add (x)
  5. L65
    specialize prime_field_convolution_coefficient_left_add (x1)
  6. L66
    specialize prime_field_convolution_coefficient_left_add (x2)
  7. L67
    apply prime_field_convolution_coefficient_left_add
  8. L68
    exact hs
  9. L69
    exact hcu_witness_right
  10. L70
    exact hcv_witness_right
18Use earlier factsL71–71

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

  1. L71
    exact hcw_witness_right

Library-wide reading audit

Original exact command ledger · 71 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 ub
  13. 0013intro uc
  14. 0014intro vb
  15. 0015intro vc
  16. 0016intro wb
  17. 0017intro wc
  18. 0018intro N
  19. 0019intro hs
  20. 0020intro hu
  21. 0021intro hv
  22. 0022intro hw
  23. 0023intro i
  24. 0024intro hi
  25. 0025have hcu : exists r. ((((exists ff_h_pfp_prefix_add_left_hcu. ff_h_pfp_prefix_add_left_hcu + S (r) = S ((S (i)) * uc)) /\ exists ff_q_pfp_prefix_add_left_hcu. ub = ff_q_pfp_prefix_add_left_hcu * S ((S (i)) * uc) + (r))) /\ ((exists pfc_terms_code_prefix_add_left_value_hcu pfc_terms_scale_prefix_add_left_value_hcu pfc_natural_sum_prefix_add_left_value_hcu. ((forall pfc_index_prefix_add_left_value_hcudiagonal. (exists pfa_gap_prefix_add_left_value_hcudiagonalbound. pfa_gap_prefix_add_left_value_hcudiagonalbound + S (pfc_index_prefix_add_left_value_hcudiagonal) = (S (i))) -> exists pfc_value_prefix_add_left_value_hcudiagonal. ((((exists ff_h_pfp_prefix_add_left_value_hcudiagonalentry. ff_h_pfp_prefix_add_left_value_hcudiagonalentry + S (pfc_value_prefix_add_left_value_hcudiagonal) = S ((S (pfc_index_prefix_add_left_value_hcudiagonal)) * pfc_terms_scale_prefix_add_left_value_hcu)) /\ exists ff_q_pfp_prefix_add_left_value_hcudiagonalentry. pfc_terms_code_prefix_add_left_value_hcu = ff_q_pfp_prefix_add_left_value_hcudiagonalentry * S ((S (pfc_index_prefix_add_left_value_hcudiagonal)) * pfc_terms_scale_prefix_add_left_value_hcu) + (pfc_value_prefix_add_left_value_hcudiagonal))) /\ ((exists pfc_complement_prefix_add_left_value_hcudiagonalterm pfc_left_prefix_add_left_value_hcudiagonalterm pfc_right_prefix_add_left_value_hcudiagonalterm. (((pfc_index_prefix_add_left_value_hcudiagonal)+pfc_complement_prefix_add_left_value_hcudiagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_add_left_value_hcudiagonaltermleftinside. pfa_gap_prefix_add_left_value_hcudiagonaltermleftinside + S (pfc_index_prefix_add_left_value_hcudiagonal) = (M)) /\ ((((exists ff_h_pfp_prefix_add_left_value_hcudiagonaltermleftentry. ff_h_pfp_prefix_add_left_value_hcudiagonaltermleftentry + S (pfc_left_prefix_add_left_value_hcudiagonalterm) = S ((S (pfc_index_prefix_add_left_value_hcudiagonal)) * dc)) /\ exists ff_q_pfp_prefix_add_left_value_hcudiagonaltermleftentry. db = ff_q_pfp_prefix_add_left_value_hcudiagonaltermleftentry * S ((S (pfc_index_prefix_add_left_value_hcudiagonal)) * dc) + (pfc_left_prefix_add_left_value_hcudiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_value_hcudiagonaltermleftoutside. pfc_gap_prefix_add_left_value_hcudiagonaltermleftoutside+(M)=(pfc_index_prefix_add_left_value_hcudiagonal)) /\ (((pfc_left_prefix_add_left_value_hcudiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_left_value_hcudiagonaltermrightinside. pfa_gap_prefix_add_left_value_hcudiagonaltermrightinside + S (pfc_complement_prefix_add_left_value_hcudiagonalterm) = (L)) /\ ((((exists ff_h_pfp_prefix_add_left_value_hcudiagonaltermrightentry. ff_h_pfp_prefix_add_left_value_hcudiagonaltermrightentry + S (pfc_right_prefix_add_left_value_hcudiagonalterm) = S ((S (pfc_complement_prefix_add_left_value_hcudiagonalterm)) * ac)) /\ exists ff_q_pfp_prefix_add_left_value_hcudiagonaltermrightentry. ab = ff_q_pfp_prefix_add_left_value_hcudiagonaltermrightentry * S ((S (pfc_complement_prefix_add_left_value_hcudiagonalterm)) * ac) + (pfc_right_prefix_add_left_value_hcudiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_value_hcudiagonaltermrightoutside. pfc_gap_prefix_add_left_value_hcudiagonaltermrightoutside+(L)=(pfc_complement_prefix_add_left_value_hcudiagonalterm)) /\ (((pfc_right_prefix_add_left_value_hcudiagonalterm)=0))))) /\ (((pfc_value_prefix_add_left_value_hcudiagonal)=pfc_left_prefix_add_left_value_hcudiagonalterm*pfc_right_prefix_add_left_value_hcudiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_left_value_hcusum fs_v_pfc_prefix_add_left_value_hcusum. ((((exists fs_h_pfc_prefix_add_left_value_hcusum_body_start. fs_h_pfc_prefix_add_left_value_hcusum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_left_value_hcusum)) /\ exists fs_q_pfc_prefix_add_left_value_hcusum_body_start. fs_u_pfc_prefix_add_left_value_hcusum = fs_q_pfc_prefix_add_left_value_hcusum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_left_value_hcusum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcusum_body_terminal. fs_h_pfc_prefix_add_left_value_hcusum_body_terminal + S (pfc_natural_sum_prefix_add_left_value_hcu) = S ((S (S (i))) * fs_v_pfc_prefix_add_left_value_hcusum)) /\ exists fs_q_pfc_prefix_add_left_value_hcusum_body_terminal. fs_u_pfc_prefix_add_left_value_hcusum = fs_q_pfc_prefix_add_left_value_hcusum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_add_left_value_hcusum) + (pfc_natural_sum_prefix_add_left_value_hcu))) /\ forall fs_i_pfc_prefix_add_left_value_hcusum_body_steps. (exists fs_lt_pfc_prefix_add_left_value_hcusum_body_steps_bound. fs_lt_pfc_prefix_add_left_value_hcusum_body_steps_bound + S fs_i_pfc_prefix_add_left_value_hcusum_body_steps = S (i)) -> exists fs_a_pfc_prefix_add_left_value_hcusum_body_steps fs_r_pfc_prefix_add_left_value_hcusum_body_steps fs_s_pfc_prefix_add_left_value_hcusum_body_steps. ((((exists fs_h_pfc_prefix_add_left_value_hcusum_body_steps_summand. fs_h_pfc_prefix_add_left_value_hcusum_body_steps_summand + S (fs_a_pfc_prefix_add_left_value_hcusum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_value_hcusum_body_steps)) * pfc_terms_scale_prefix_add_left_value_hcu)) /\ exists fs_q_pfc_prefix_add_left_value_hcusum_body_steps_summand. pfc_terms_code_prefix_add_left_value_hcu = fs_q_pfc_prefix_add_left_value_hcusum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_left_value_hcusum_body_steps)) * pfc_terms_scale_prefix_add_left_value_hcu) + (fs_a_pfc_prefix_add_left_value_hcusum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcusum_body_steps_partial. fs_h_pfc_prefix_add_left_value_hcusum_body_steps_partial + S (fs_r_pfc_prefix_add_left_value_hcusum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcusum)) /\ exists fs_q_pfc_prefix_add_left_value_hcusum_body_steps_partial. fs_u_pfc_prefix_add_left_value_hcusum = fs_q_pfc_prefix_add_left_value_hcusum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_left_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcusum) + (fs_r_pfc_prefix_add_left_value_hcusum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcusum_body_steps_successor. fs_h_pfc_prefix_add_left_value_hcusum_body_steps_successor + S (fs_s_pfc_prefix_add_left_value_hcusum_body_steps) = S ((S (S fs_i_pfc_prefix_add_left_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcusum)) /\ exists fs_q_pfc_prefix_add_left_value_hcusum_body_steps_successor. fs_u_pfc_prefix_add_left_value_hcusum = fs_q_pfc_prefix_add_left_value_hcusum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_left_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcusum) + (fs_s_pfc_prefix_add_left_value_hcusum_body_steps))) /\ fs_s_pfc_prefix_add_left_value_hcusum_body_steps = fs_r_pfc_prefix_add_left_value_hcusum_body_steps + fs_a_pfc_prefix_add_left_value_hcusum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_left_value_hcuresiduebound. pfa_gap_prefix_add_left_value_hcuresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_value_hcuresiduecongruence pfa_offset_right_prefix_add_left_value_hcuresiduecongruence. (pfc_natural_sum_prefix_add_left_value_hcu) + (p) * pfa_offset_left_prefix_add_left_value_hcuresiduecongruence = (r) + (p) * pfa_offset_right_prefix_add_left_value_hcuresiduecongruence)))))))))))
  26. 0026specialize hu (i)
  27. 0027apply hu
  28. 0028exact hi
  29. 0029cases hcu
  30. 0030cases hcu_witness
  31. 0031have hcv : exists r. ((((exists ff_h_pfp_prefix_add_left_hcv. ff_h_pfp_prefix_add_left_hcv + S (r) = S ((S (i)) * vc)) /\ exists ff_q_pfp_prefix_add_left_hcv. vb = ff_q_pfp_prefix_add_left_hcv * S ((S (i)) * vc) + (r))) /\ ((exists pfc_terms_code_prefix_add_left_value_hcv pfc_terms_scale_prefix_add_left_value_hcv pfc_natural_sum_prefix_add_left_value_hcv. ((forall pfc_index_prefix_add_left_value_hcvdiagonal. (exists pfa_gap_prefix_add_left_value_hcvdiagonalbound. pfa_gap_prefix_add_left_value_hcvdiagonalbound + S (pfc_index_prefix_add_left_value_hcvdiagonal) = (S (i))) -> exists pfc_value_prefix_add_left_value_hcvdiagonal. ((((exists ff_h_pfp_prefix_add_left_value_hcvdiagonalentry. ff_h_pfp_prefix_add_left_value_hcvdiagonalentry + S (pfc_value_prefix_add_left_value_hcvdiagonal) = S ((S (pfc_index_prefix_add_left_value_hcvdiagonal)) * pfc_terms_scale_prefix_add_left_value_hcv)) /\ exists ff_q_pfp_prefix_add_left_value_hcvdiagonalentry. pfc_terms_code_prefix_add_left_value_hcv = ff_q_pfp_prefix_add_left_value_hcvdiagonalentry * S ((S (pfc_index_prefix_add_left_value_hcvdiagonal)) * pfc_terms_scale_prefix_add_left_value_hcv) + (pfc_value_prefix_add_left_value_hcvdiagonal))) /\ ((exists pfc_complement_prefix_add_left_value_hcvdiagonalterm pfc_left_prefix_add_left_value_hcvdiagonalterm pfc_right_prefix_add_left_value_hcvdiagonalterm. (((pfc_index_prefix_add_left_value_hcvdiagonal)+pfc_complement_prefix_add_left_value_hcvdiagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_add_left_value_hcvdiagonaltermleftinside. pfa_gap_prefix_add_left_value_hcvdiagonaltermleftinside + S (pfc_index_prefix_add_left_value_hcvdiagonal) = (M)) /\ ((((exists ff_h_pfp_prefix_add_left_value_hcvdiagonaltermleftentry. ff_h_pfp_prefix_add_left_value_hcvdiagonaltermleftentry + S (pfc_left_prefix_add_left_value_hcvdiagonalterm) = S ((S (pfc_index_prefix_add_left_value_hcvdiagonal)) * dc)) /\ exists ff_q_pfp_prefix_add_left_value_hcvdiagonaltermleftentry. db = ff_q_pfp_prefix_add_left_value_hcvdiagonaltermleftentry * S ((S (pfc_index_prefix_add_left_value_hcvdiagonal)) * dc) + (pfc_left_prefix_add_left_value_hcvdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_value_hcvdiagonaltermleftoutside. pfc_gap_prefix_add_left_value_hcvdiagonaltermleftoutside+(M)=(pfc_index_prefix_add_left_value_hcvdiagonal)) /\ (((pfc_left_prefix_add_left_value_hcvdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_left_value_hcvdiagonaltermrightinside. pfa_gap_prefix_add_left_value_hcvdiagonaltermrightinside + S (pfc_complement_prefix_add_left_value_hcvdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_prefix_add_left_value_hcvdiagonaltermrightentry. ff_h_pfp_prefix_add_left_value_hcvdiagonaltermrightentry + S (pfc_right_prefix_add_left_value_hcvdiagonalterm) = S ((S (pfc_complement_prefix_add_left_value_hcvdiagonalterm)) * bc)) /\ exists ff_q_pfp_prefix_add_left_value_hcvdiagonaltermrightentry. bb = ff_q_pfp_prefix_add_left_value_hcvdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_left_value_hcvdiagonalterm)) * bc) + (pfc_right_prefix_add_left_value_hcvdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_value_hcvdiagonaltermrightoutside. pfc_gap_prefix_add_left_value_hcvdiagonaltermrightoutside+(L)=(pfc_complement_prefix_add_left_value_hcvdiagonalterm)) /\ (((pfc_right_prefix_add_left_value_hcvdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_left_value_hcvdiagonal)=pfc_left_prefix_add_left_value_hcvdiagonalterm*pfc_right_prefix_add_left_value_hcvdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_left_value_hcvsum fs_v_pfc_prefix_add_left_value_hcvsum. ((((exists fs_h_pfc_prefix_add_left_value_hcvsum_body_start. fs_h_pfc_prefix_add_left_value_hcvsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_left_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcvsum_body_start. fs_u_pfc_prefix_add_left_value_hcvsum = fs_q_pfc_prefix_add_left_value_hcvsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_left_value_hcvsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcvsum_body_terminal. fs_h_pfc_prefix_add_left_value_hcvsum_body_terminal + S (pfc_natural_sum_prefix_add_left_value_hcv) = S ((S (S (i))) * fs_v_pfc_prefix_add_left_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcvsum_body_terminal. fs_u_pfc_prefix_add_left_value_hcvsum = fs_q_pfc_prefix_add_left_value_hcvsum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_add_left_value_hcvsum) + (pfc_natural_sum_prefix_add_left_value_hcv))) /\ forall fs_i_pfc_prefix_add_left_value_hcvsum_body_steps. (exists fs_lt_pfc_prefix_add_left_value_hcvsum_body_steps_bound. fs_lt_pfc_prefix_add_left_value_hcvsum_body_steps_bound + S fs_i_pfc_prefix_add_left_value_hcvsum_body_steps = S (i)) -> exists fs_a_pfc_prefix_add_left_value_hcvsum_body_steps fs_r_pfc_prefix_add_left_value_hcvsum_body_steps fs_s_pfc_prefix_add_left_value_hcvsum_body_steps. ((((exists fs_h_pfc_prefix_add_left_value_hcvsum_body_steps_summand. fs_h_pfc_prefix_add_left_value_hcvsum_body_steps_summand + S (fs_a_pfc_prefix_add_left_value_hcvsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_value_hcvsum_body_steps)) * pfc_terms_scale_prefix_add_left_value_hcv)) /\ exists fs_q_pfc_prefix_add_left_value_hcvsum_body_steps_summand. pfc_terms_code_prefix_add_left_value_hcv = fs_q_pfc_prefix_add_left_value_hcvsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_left_value_hcvsum_body_steps)) * pfc_terms_scale_prefix_add_left_value_hcv) + (fs_a_pfc_prefix_add_left_value_hcvsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcvsum_body_steps_partial. fs_h_pfc_prefix_add_left_value_hcvsum_body_steps_partial + S (fs_r_pfc_prefix_add_left_value_hcvsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcvsum_body_steps_partial. fs_u_pfc_prefix_add_left_value_hcvsum = fs_q_pfc_prefix_add_left_value_hcvsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_left_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcvsum) + (fs_r_pfc_prefix_add_left_value_hcvsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcvsum_body_steps_successor. fs_h_pfc_prefix_add_left_value_hcvsum_body_steps_successor + S (fs_s_pfc_prefix_add_left_value_hcvsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_left_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcvsum_body_steps_successor. fs_u_pfc_prefix_add_left_value_hcvsum = fs_q_pfc_prefix_add_left_value_hcvsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_left_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcvsum) + (fs_s_pfc_prefix_add_left_value_hcvsum_body_steps))) /\ fs_s_pfc_prefix_add_left_value_hcvsum_body_steps = fs_r_pfc_prefix_add_left_value_hcvsum_body_steps + fs_a_pfc_prefix_add_left_value_hcvsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_left_value_hcvresiduebound. pfa_gap_prefix_add_left_value_hcvresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_value_hcvresiduecongruence pfa_offset_right_prefix_add_left_value_hcvresiduecongruence. (pfc_natural_sum_prefix_add_left_value_hcv) + (p) * pfa_offset_left_prefix_add_left_value_hcvresiduecongruence = (r) + (p) * pfa_offset_right_prefix_add_left_value_hcvresiduecongruence)))))))))))
  32. 0032specialize hv (i)
  33. 0033apply hv
  34. 0034exact hi
  35. 0035cases hcv
  36. 0036cases hcv_witness
  37. 0037have hcw : exists r. ((((exists ff_h_pfp_prefix_add_left_hcw. ff_h_pfp_prefix_add_left_hcw + S (r) = S ((S (i)) * wc)) /\ exists ff_q_pfp_prefix_add_left_hcw. wb = ff_q_pfp_prefix_add_left_hcw * S ((S (i)) * wc) + (r))) /\ ((exists pfc_terms_code_prefix_add_left_value_hcw pfc_terms_scale_prefix_add_left_value_hcw pfc_natural_sum_prefix_add_left_value_hcw. ((forall pfc_index_prefix_add_left_value_hcwdiagonal. (exists pfa_gap_prefix_add_left_value_hcwdiagonalbound. pfa_gap_prefix_add_left_value_hcwdiagonalbound + S (pfc_index_prefix_add_left_value_hcwdiagonal) = (S (i))) -> exists pfc_value_prefix_add_left_value_hcwdiagonal. ((((exists ff_h_pfp_prefix_add_left_value_hcwdiagonalentry. ff_h_pfp_prefix_add_left_value_hcwdiagonalentry + S (pfc_value_prefix_add_left_value_hcwdiagonal) = S ((S (pfc_index_prefix_add_left_value_hcwdiagonal)) * pfc_terms_scale_prefix_add_left_value_hcw)) /\ exists ff_q_pfp_prefix_add_left_value_hcwdiagonalentry. pfc_terms_code_prefix_add_left_value_hcw = ff_q_pfp_prefix_add_left_value_hcwdiagonalentry * S ((S (pfc_index_prefix_add_left_value_hcwdiagonal)) * pfc_terms_scale_prefix_add_left_value_hcw) + (pfc_value_prefix_add_left_value_hcwdiagonal))) /\ ((exists pfc_complement_prefix_add_left_value_hcwdiagonalterm pfc_left_prefix_add_left_value_hcwdiagonalterm pfc_right_prefix_add_left_value_hcwdiagonalterm. (((pfc_index_prefix_add_left_value_hcwdiagonal)+pfc_complement_prefix_add_left_value_hcwdiagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_add_left_value_hcwdiagonaltermleftinside. pfa_gap_prefix_add_left_value_hcwdiagonaltermleftinside + S (pfc_index_prefix_add_left_value_hcwdiagonal) = (M)) /\ ((((exists ff_h_pfp_prefix_add_left_value_hcwdiagonaltermleftentry. ff_h_pfp_prefix_add_left_value_hcwdiagonaltermleftentry + S (pfc_left_prefix_add_left_value_hcwdiagonalterm) = S ((S (pfc_index_prefix_add_left_value_hcwdiagonal)) * dc)) /\ exists ff_q_pfp_prefix_add_left_value_hcwdiagonaltermleftentry. db = ff_q_pfp_prefix_add_left_value_hcwdiagonaltermleftentry * S ((S (pfc_index_prefix_add_left_value_hcwdiagonal)) * dc) + (pfc_left_prefix_add_left_value_hcwdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_value_hcwdiagonaltermleftoutside. pfc_gap_prefix_add_left_value_hcwdiagonaltermleftoutside+(M)=(pfc_index_prefix_add_left_value_hcwdiagonal)) /\ (((pfc_left_prefix_add_left_value_hcwdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_left_value_hcwdiagonaltermrightinside. pfa_gap_prefix_add_left_value_hcwdiagonaltermrightinside + S (pfc_complement_prefix_add_left_value_hcwdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_prefix_add_left_value_hcwdiagonaltermrightentry. ff_h_pfp_prefix_add_left_value_hcwdiagonaltermrightentry + S (pfc_right_prefix_add_left_value_hcwdiagonalterm) = S ((S (pfc_complement_prefix_add_left_value_hcwdiagonalterm)) * cc)) /\ exists ff_q_pfp_prefix_add_left_value_hcwdiagonaltermrightentry. cb = ff_q_pfp_prefix_add_left_value_hcwdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_left_value_hcwdiagonalterm)) * cc) + (pfc_right_prefix_add_left_value_hcwdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_left_value_hcwdiagonaltermrightoutside. pfc_gap_prefix_add_left_value_hcwdiagonaltermrightoutside+(L)=(pfc_complement_prefix_add_left_value_hcwdiagonalterm)) /\ (((pfc_right_prefix_add_left_value_hcwdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_left_value_hcwdiagonal)=pfc_left_prefix_add_left_value_hcwdiagonalterm*pfc_right_prefix_add_left_value_hcwdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_left_value_hcwsum fs_v_pfc_prefix_add_left_value_hcwsum. ((((exists fs_h_pfc_prefix_add_left_value_hcwsum_body_start. fs_h_pfc_prefix_add_left_value_hcwsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_left_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcwsum_body_start. fs_u_pfc_prefix_add_left_value_hcwsum = fs_q_pfc_prefix_add_left_value_hcwsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_left_value_hcwsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcwsum_body_terminal. fs_h_pfc_prefix_add_left_value_hcwsum_body_terminal + S (pfc_natural_sum_prefix_add_left_value_hcw) = S ((S (S (i))) * fs_v_pfc_prefix_add_left_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcwsum_body_terminal. fs_u_pfc_prefix_add_left_value_hcwsum = fs_q_pfc_prefix_add_left_value_hcwsum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_add_left_value_hcwsum) + (pfc_natural_sum_prefix_add_left_value_hcw))) /\ forall fs_i_pfc_prefix_add_left_value_hcwsum_body_steps. (exists fs_lt_pfc_prefix_add_left_value_hcwsum_body_steps_bound. fs_lt_pfc_prefix_add_left_value_hcwsum_body_steps_bound + S fs_i_pfc_prefix_add_left_value_hcwsum_body_steps = S (i)) -> exists fs_a_pfc_prefix_add_left_value_hcwsum_body_steps fs_r_pfc_prefix_add_left_value_hcwsum_body_steps fs_s_pfc_prefix_add_left_value_hcwsum_body_steps. ((((exists fs_h_pfc_prefix_add_left_value_hcwsum_body_steps_summand. fs_h_pfc_prefix_add_left_value_hcwsum_body_steps_summand + S (fs_a_pfc_prefix_add_left_value_hcwsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_value_hcwsum_body_steps)) * pfc_terms_scale_prefix_add_left_value_hcw)) /\ exists fs_q_pfc_prefix_add_left_value_hcwsum_body_steps_summand. pfc_terms_code_prefix_add_left_value_hcw = fs_q_pfc_prefix_add_left_value_hcwsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_left_value_hcwsum_body_steps)) * pfc_terms_scale_prefix_add_left_value_hcw) + (fs_a_pfc_prefix_add_left_value_hcwsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcwsum_body_steps_partial. fs_h_pfc_prefix_add_left_value_hcwsum_body_steps_partial + S (fs_r_pfc_prefix_add_left_value_hcwsum_body_steps) = S ((S (fs_i_pfc_prefix_add_left_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcwsum_body_steps_partial. fs_u_pfc_prefix_add_left_value_hcwsum = fs_q_pfc_prefix_add_left_value_hcwsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_left_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcwsum) + (fs_r_pfc_prefix_add_left_value_hcwsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_left_value_hcwsum_body_steps_successor. fs_h_pfc_prefix_add_left_value_hcwsum_body_steps_successor + S (fs_s_pfc_prefix_add_left_value_hcwsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_left_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_left_value_hcwsum_body_steps_successor. fs_u_pfc_prefix_add_left_value_hcwsum = fs_q_pfc_prefix_add_left_value_hcwsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_left_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_left_value_hcwsum) + (fs_s_pfc_prefix_add_left_value_hcwsum_body_steps))) /\ fs_s_pfc_prefix_add_left_value_hcwsum_body_steps = fs_r_pfc_prefix_add_left_value_hcwsum_body_steps + fs_a_pfc_prefix_add_left_value_hcwsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_left_value_hcwresiduebound. pfa_gap_prefix_add_left_value_hcwresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_add_left_value_hcwresiduecongruence pfa_offset_right_prefix_add_left_value_hcwresiduecongruence. (pfc_natural_sum_prefix_add_left_value_hcw) + (p) * pfa_offset_left_prefix_add_left_value_hcwresiduecongruence = (r) + (p) * pfa_offset_right_prefix_add_left_value_hcwresiduecongruence)))))))))))
  38. 0038specialize hw (i)
  39. 0039apply hw
  40. 0040exact hi
  41. 0041cases hcw
  42. 0042cases hcw_witness
  43. 0043exists x
  44. 0044exists x1
  45. 0045exists x2
  46. 0046split
  47. 0047exact hcu_witness_left
  48. 0048split
  49. 0049exact hcv_witness_left
  50. 0050split
  51. 0051exact hcw_witness_left
  52. 0052specialize prime_field_convolution_coefficient_left_add (p)
  53. 0053specialize prime_field_convolution_coefficient_left_add (ab)
  54. 0054specialize prime_field_convolution_coefficient_left_add (ac)
  55. 0055specialize prime_field_convolution_coefficient_left_add (bb)
  56. 0056specialize prime_field_convolution_coefficient_left_add (bc)
  57. 0057specialize prime_field_convolution_coefficient_left_add (cb)
  58. 0058specialize prime_field_convolution_coefficient_left_add (cc)
  59. 0059specialize prime_field_convolution_coefficient_left_add (L)
  60. 0060specialize prime_field_convolution_coefficient_left_add (db)
  61. 0061specialize prime_field_convolution_coefficient_left_add (dc)
  62. 0062specialize prime_field_convolution_coefficient_left_add (M)
  63. 0063specialize prime_field_convolution_coefficient_left_add (i)
  64. 0064specialize prime_field_convolution_coefficient_left_add (x)
  65. 0065specialize prime_field_convolution_coefficient_left_add (x1)
  66. 0066specialize prime_field_convolution_coefficient_left_add (x2)
  67. 0067apply prime_field_convolution_coefficient_left_add
  68. 0068exact hs
  69. 0069exact hcu_witness_right
  70. 0070exact hcv_witness_right
  71. 0071exact hcw_witness_right