PX0049

prime_field_convolution_prefix_right_add

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

Every requested ambient output prefix of the three actual right 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_right_source. (exists pfa_gap_prefix_add_right_sourceindex. pfa_gap_prefix_add_right_sourceindex + S (pfp_index_prefix_add_right_source) = (L)) -> exists pfp_left_prefix_add_right_source pfp_right_prefix_add_right_source pfp_value_prefix_add_right_source. ((((exists ff_h_pfp_prefix_add_right_sourceleft. ff_h_pfp_prefix_add_right_sourceleft + S (pfp_left_prefix_add_right_source) = S ((S (pfp_index_prefix_add_right_source)) * ac)) /\ exists ff_q_pfp_prefix_add_right_sourceleft. ab = ff_q_pfp_prefix_add_right_sourceleft * S ((S (pfp_index_prefix_add_right_source)) * ac) + (pfp_left_prefix_add_right_source))) /\ (((((exists ff_h_pfp_prefix_add_right_sourceright. ff_h_pfp_prefix_add_right_sourceright + S (pfp_right_prefix_add_right_source) = S ((S (pfp_index_prefix_add_right_source)) * bc)) /\ exists ff_q_pfp_prefix_add_right_sourceright. bb = ff_q_pfp_prefix_add_right_sourceright * S ((S (pfp_index_prefix_add_right_source)) * bc) + (pfp_right_prefix_add_right_source))) /\ (((((exists ff_h_pfp_prefix_add_right_sourcetarget. ff_h_pfp_prefix_add_right_sourcetarget + S (pfp_value_prefix_add_right_source) = S ((S (pfp_index_prefix_add_right_source)) * cc)) /\ exists ff_q_pfp_prefix_add_right_sourcetarget. cb = ff_q_pfp_prefix_add_right_sourcetarget * S ((S (pfp_index_prefix_add_right_source)) * cc) + (pfp_value_prefix_add_right_source))) /\ ((((exists pfa_gap_prefix_add_right_sourceoperationleft. pfa_gap_prefix_add_right_sourceoperationleft + S (pfp_left_prefix_add_right_source) = (p)) /\ (((exists pfa_gap_prefix_add_right_sourceoperationright. pfa_gap_prefix_add_right_sourceoperationright + S (pfp_right_prefix_add_right_source) = (p)) /\ ((((exists pfa_gap_prefix_add_right_sourceoperationresultbound. pfa_gap_prefix_add_right_sourceoperationresultbound + S (pfp_value_prefix_add_right_source) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_sourceoperationresultcongruence pfa_offset_right_prefix_add_right_sourceoperationresultcongruence. ((pfp_left_prefix_add_right_source) + (pfp_right_prefix_add_right_source)) + (p) * pfa_offset_left_prefix_add_right_sourceoperationresultcongruence = (pfp_value_prefix_add_right_source) + (p) * pfa_offset_right_prefix_add_right_sourceoperationresultcongruence)))))))))))))))) -> (forall pfc_index_prefix_add_right_ub. (exists pfa_gap_prefix_add_right_ubbound. pfa_gap_prefix_add_right_ubbound + S (pfc_index_prefix_add_right_ub) = (N)) -> exists pfc_value_prefix_add_right_ub. ((((exists ff_h_pfp_prefix_add_right_ubentry. ff_h_pfp_prefix_add_right_ubentry + S (pfc_value_prefix_add_right_ub) = S ((S (pfc_index_prefix_add_right_ub)) * uc)) /\ exists ff_q_pfp_prefix_add_right_ubentry. ub = ff_q_pfp_prefix_add_right_ubentry * S ((S (pfc_index_prefix_add_right_ub)) * uc) + (pfc_value_prefix_add_right_ub))) /\ ((exists pfc_terms_code_prefix_add_right_ubcoefficient pfc_terms_scale_prefix_add_right_ubcoefficient pfc_natural_sum_prefix_add_right_ubcoefficient. ((forall pfc_index_prefix_add_right_ubcoefficientdiagonal. (exists pfa_gap_prefix_add_right_ubcoefficientdiagonalbound. pfa_gap_prefix_add_right_ubcoefficientdiagonalbound + S (pfc_index_prefix_add_right_ubcoefficientdiagonal) = (S (pfc_index_prefix_add_right_ub))) -> exists pfc_value_prefix_add_right_ubcoefficientdiagonal. ((((exists ff_h_pfp_prefix_add_right_ubcoefficientdiagonalentry. ff_h_pfp_prefix_add_right_ubcoefficientdiagonalentry + S (pfc_value_prefix_add_right_ubcoefficientdiagonal) = S ((S (pfc_index_prefix_add_right_ubcoefficientdiagonal)) * pfc_terms_scale_prefix_add_right_ubcoefficient)) /\ exists ff_q_pfp_prefix_add_right_ubcoefficientdiagonalentry. pfc_terms_code_prefix_add_right_ubcoefficient = ff_q_pfp_prefix_add_right_ubcoefficientdiagonalentry * S ((S (pfc_index_prefix_add_right_ubcoefficientdiagonal)) * pfc_terms_scale_prefix_add_right_ubcoefficient) + (pfc_value_prefix_add_right_ubcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_add_right_ubcoefficientdiagonalterm pfc_left_prefix_add_right_ubcoefficientdiagonalterm pfc_right_prefix_add_right_ubcoefficientdiagonalterm. (((pfc_index_prefix_add_right_ubcoefficientdiagonal)+pfc_complement_prefix_add_right_ubcoefficientdiagonalterm=(pfc_index_prefix_add_right_ub)) /\ ((((((exists pfa_gap_prefix_add_right_ubcoefficientdiagonaltermleftinside. pfa_gap_prefix_add_right_ubcoefficientdiagonaltermleftinside + S (pfc_index_prefix_add_right_ubcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_add_right_ubcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_add_right_ubcoefficientdiagonaltermleftentry + S (pfc_left_prefix_add_right_ubcoefficientdiagonalterm) = S ((S (pfc_index_prefix_add_right_ubcoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_prefix_add_right_ubcoefficientdiagonaltermleftentry. ab = ff_q_pfp_prefix_add_right_ubcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_add_right_ubcoefficientdiagonal)) * ac) + (pfc_left_prefix_add_right_ubcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_ubcoefficientdiagonaltermleftoutside. pfc_gap_prefix_add_right_ubcoefficientdiagonaltermleftoutside+(L)=(pfc_index_prefix_add_right_ubcoefficientdiagonal)) /\ (((pfc_left_prefix_add_right_ubcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_right_ubcoefficientdiagonaltermrightinside. pfa_gap_prefix_add_right_ubcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_add_right_ubcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_add_right_ubcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_add_right_ubcoefficientdiagonaltermrightentry + S (pfc_right_prefix_add_right_ubcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_add_right_ubcoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_prefix_add_right_ubcoefficientdiagonaltermrightentry. db = ff_q_pfp_prefix_add_right_ubcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_right_ubcoefficientdiagonalterm)) * dc) + (pfc_right_prefix_add_right_ubcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_ubcoefficientdiagonaltermrightoutside. pfc_gap_prefix_add_right_ubcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_prefix_add_right_ubcoefficientdiagonalterm)) /\ (((pfc_right_prefix_add_right_ubcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_right_ubcoefficientdiagonal)=pfc_left_prefix_add_right_ubcoefficientdiagonalterm*pfc_right_prefix_add_right_ubcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_right_ubcoefficientsum fs_v_pfc_prefix_add_right_ubcoefficientsum. ((((exists fs_h_pfc_prefix_add_right_ubcoefficientsum_body_start. fs_h_pfc_prefix_add_right_ubcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_right_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_ubcoefficientsum_body_start. fs_u_pfc_prefix_add_right_ubcoefficientsum = fs_q_pfc_prefix_add_right_ubcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_right_ubcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_right_ubcoefficientsum_body_terminal. fs_h_pfc_prefix_add_right_ubcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_add_right_ubcoefficient) = S ((S (S (pfc_index_prefix_add_right_ub))) * fs_v_pfc_prefix_add_right_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_ubcoefficientsum_body_terminal. fs_u_pfc_prefix_add_right_ubcoefficientsum = fs_q_pfc_prefix_add_right_ubcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_add_right_ub))) * fs_v_pfc_prefix_add_right_ubcoefficientsum) + (pfc_natural_sum_prefix_add_right_ubcoefficient))) /\ forall fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_add_right_ubcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_add_right_ubcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps = S (pfc_index_prefix_add_right_ub)) -> exists fs_a_pfc_prefix_add_right_ubcoefficientsum_body_steps fs_r_pfc_prefix_add_right_ubcoefficientsum_body_steps fs_s_pfc_prefix_add_right_ubcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_add_right_ubcoefficientsum_body_steps_summand. fs_h_pfc_prefix_add_right_ubcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_add_right_ubcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_right_ubcoefficient)) /\ exists fs_q_pfc_prefix_add_right_ubcoefficientsum_body_steps_summand. pfc_terms_code_prefix_add_right_ubcoefficient = fs_q_pfc_prefix_add_right_ubcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_right_ubcoefficient) + (fs_a_pfc_prefix_add_right_ubcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_ubcoefficientsum_body_steps_partial. fs_h_pfc_prefix_add_right_ubcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_add_right_ubcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_ubcoefficientsum_body_steps_partial. fs_u_pfc_prefix_add_right_ubcoefficientsum = fs_q_pfc_prefix_add_right_ubcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_ubcoefficientsum) + (fs_r_pfc_prefix_add_right_ubcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_ubcoefficientsum_body_steps_successor. fs_h_pfc_prefix_add_right_ubcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_add_right_ubcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_ubcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_ubcoefficientsum_body_steps_successor. fs_u_pfc_prefix_add_right_ubcoefficientsum = fs_q_pfc_prefix_add_right_ubcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_right_ubcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_ubcoefficientsum) + (fs_s_pfc_prefix_add_right_ubcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_add_right_ubcoefficientsum_body_steps = fs_r_pfc_prefix_add_right_ubcoefficientsum_body_steps + fs_a_pfc_prefix_add_right_ubcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_right_ubcoefficientresiduebound. pfa_gap_prefix_add_right_ubcoefficientresiduebound + S (pfc_value_prefix_add_right_ub) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_ubcoefficientresiduecongruence pfa_offset_right_prefix_add_right_ubcoefficientresiduecongruence. (pfc_natural_sum_prefix_add_right_ubcoefficient) + (p) * pfa_offset_left_prefix_add_right_ubcoefficientresiduecongruence = (pfc_value_prefix_add_right_ub) + (p) * pfa_offset_right_prefix_add_right_ubcoefficientresiduecongruence)))))))))))) -> (forall pfc_index_prefix_add_right_vb. (exists pfa_gap_prefix_add_right_vbbound. pfa_gap_prefix_add_right_vbbound + S (pfc_index_prefix_add_right_vb) = (N)) -> exists pfc_value_prefix_add_right_vb. ((((exists ff_h_pfp_prefix_add_right_vbentry. ff_h_pfp_prefix_add_right_vbentry + S (pfc_value_prefix_add_right_vb) = S ((S (pfc_index_prefix_add_right_vb)) * vc)) /\ exists ff_q_pfp_prefix_add_right_vbentry. vb = ff_q_pfp_prefix_add_right_vbentry * S ((S (pfc_index_prefix_add_right_vb)) * vc) + (pfc_value_prefix_add_right_vb))) /\ ((exists pfc_terms_code_prefix_add_right_vbcoefficient pfc_terms_scale_prefix_add_right_vbcoefficient pfc_natural_sum_prefix_add_right_vbcoefficient. ((forall pfc_index_prefix_add_right_vbcoefficientdiagonal. (exists pfa_gap_prefix_add_right_vbcoefficientdiagonalbound. pfa_gap_prefix_add_right_vbcoefficientdiagonalbound + S (pfc_index_prefix_add_right_vbcoefficientdiagonal) = (S (pfc_index_prefix_add_right_vb))) -> exists pfc_value_prefix_add_right_vbcoefficientdiagonal. ((((exists ff_h_pfp_prefix_add_right_vbcoefficientdiagonalentry. ff_h_pfp_prefix_add_right_vbcoefficientdiagonalentry + S (pfc_value_prefix_add_right_vbcoefficientdiagonal) = S ((S (pfc_index_prefix_add_right_vbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_right_vbcoefficient)) /\ exists ff_q_pfp_prefix_add_right_vbcoefficientdiagonalentry. pfc_terms_code_prefix_add_right_vbcoefficient = ff_q_pfp_prefix_add_right_vbcoefficientdiagonalentry * S ((S (pfc_index_prefix_add_right_vbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_right_vbcoefficient) + (pfc_value_prefix_add_right_vbcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_add_right_vbcoefficientdiagonalterm pfc_left_prefix_add_right_vbcoefficientdiagonalterm pfc_right_prefix_add_right_vbcoefficientdiagonalterm. (((pfc_index_prefix_add_right_vbcoefficientdiagonal)+pfc_complement_prefix_add_right_vbcoefficientdiagonalterm=(pfc_index_prefix_add_right_vb)) /\ ((((((exists pfa_gap_prefix_add_right_vbcoefficientdiagonaltermleftinside. pfa_gap_prefix_add_right_vbcoefficientdiagonaltermleftinside + S (pfc_index_prefix_add_right_vbcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_add_right_vbcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_add_right_vbcoefficientdiagonaltermleftentry + S (pfc_left_prefix_add_right_vbcoefficientdiagonalterm) = S ((S (pfc_index_prefix_add_right_vbcoefficientdiagonal)) * bc)) /\ exists ff_q_pfp_prefix_add_right_vbcoefficientdiagonaltermleftentry. bb = ff_q_pfp_prefix_add_right_vbcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_add_right_vbcoefficientdiagonal)) * bc) + (pfc_left_prefix_add_right_vbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_vbcoefficientdiagonaltermleftoutside. pfc_gap_prefix_add_right_vbcoefficientdiagonaltermleftoutside+(L)=(pfc_index_prefix_add_right_vbcoefficientdiagonal)) /\ (((pfc_left_prefix_add_right_vbcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_right_vbcoefficientdiagonaltermrightinside. pfa_gap_prefix_add_right_vbcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_add_right_vbcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_add_right_vbcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_add_right_vbcoefficientdiagonaltermrightentry + S (pfc_right_prefix_add_right_vbcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_add_right_vbcoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_prefix_add_right_vbcoefficientdiagonaltermrightentry. db = ff_q_pfp_prefix_add_right_vbcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_right_vbcoefficientdiagonalterm)) * dc) + (pfc_right_prefix_add_right_vbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_vbcoefficientdiagonaltermrightoutside. pfc_gap_prefix_add_right_vbcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_prefix_add_right_vbcoefficientdiagonalterm)) /\ (((pfc_right_prefix_add_right_vbcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_right_vbcoefficientdiagonal)=pfc_left_prefix_add_right_vbcoefficientdiagonalterm*pfc_right_prefix_add_right_vbcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_right_vbcoefficientsum fs_v_pfc_prefix_add_right_vbcoefficientsum. ((((exists fs_h_pfc_prefix_add_right_vbcoefficientsum_body_start. fs_h_pfc_prefix_add_right_vbcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_right_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_vbcoefficientsum_body_start. fs_u_pfc_prefix_add_right_vbcoefficientsum = fs_q_pfc_prefix_add_right_vbcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_right_vbcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_right_vbcoefficientsum_body_terminal. fs_h_pfc_prefix_add_right_vbcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_add_right_vbcoefficient) = S ((S (S (pfc_index_prefix_add_right_vb))) * fs_v_pfc_prefix_add_right_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_vbcoefficientsum_body_terminal. fs_u_pfc_prefix_add_right_vbcoefficientsum = fs_q_pfc_prefix_add_right_vbcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_add_right_vb))) * fs_v_pfc_prefix_add_right_vbcoefficientsum) + (pfc_natural_sum_prefix_add_right_vbcoefficient))) /\ forall fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_add_right_vbcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_add_right_vbcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps = S (pfc_index_prefix_add_right_vb)) -> exists fs_a_pfc_prefix_add_right_vbcoefficientsum_body_steps fs_r_pfc_prefix_add_right_vbcoefficientsum_body_steps fs_s_pfc_prefix_add_right_vbcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_add_right_vbcoefficientsum_body_steps_summand. fs_h_pfc_prefix_add_right_vbcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_add_right_vbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_right_vbcoefficient)) /\ exists fs_q_pfc_prefix_add_right_vbcoefficientsum_body_steps_summand. pfc_terms_code_prefix_add_right_vbcoefficient = fs_q_pfc_prefix_add_right_vbcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_right_vbcoefficient) + (fs_a_pfc_prefix_add_right_vbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_vbcoefficientsum_body_steps_partial. fs_h_pfc_prefix_add_right_vbcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_add_right_vbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_vbcoefficientsum_body_steps_partial. fs_u_pfc_prefix_add_right_vbcoefficientsum = fs_q_pfc_prefix_add_right_vbcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_vbcoefficientsum) + (fs_r_pfc_prefix_add_right_vbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_vbcoefficientsum_body_steps_successor. fs_h_pfc_prefix_add_right_vbcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_add_right_vbcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_vbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_vbcoefficientsum_body_steps_successor. fs_u_pfc_prefix_add_right_vbcoefficientsum = fs_q_pfc_prefix_add_right_vbcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_right_vbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_vbcoefficientsum) + (fs_s_pfc_prefix_add_right_vbcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_add_right_vbcoefficientsum_body_steps = fs_r_pfc_prefix_add_right_vbcoefficientsum_body_steps + fs_a_pfc_prefix_add_right_vbcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_right_vbcoefficientresiduebound. pfa_gap_prefix_add_right_vbcoefficientresiduebound + S (pfc_value_prefix_add_right_vb) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_vbcoefficientresiduecongruence pfa_offset_right_prefix_add_right_vbcoefficientresiduecongruence. (pfc_natural_sum_prefix_add_right_vbcoefficient) + (p) * pfa_offset_left_prefix_add_right_vbcoefficientresiduecongruence = (pfc_value_prefix_add_right_vb) + (p) * pfa_offset_right_prefix_add_right_vbcoefficientresiduecongruence)))))))))))) -> (forall pfc_index_prefix_add_right_wb. (exists pfa_gap_prefix_add_right_wbbound. pfa_gap_prefix_add_right_wbbound + S (pfc_index_prefix_add_right_wb) = (N)) -> exists pfc_value_prefix_add_right_wb. ((((exists ff_h_pfp_prefix_add_right_wbentry. ff_h_pfp_prefix_add_right_wbentry + S (pfc_value_prefix_add_right_wb) = S ((S (pfc_index_prefix_add_right_wb)) * wc)) /\ exists ff_q_pfp_prefix_add_right_wbentry. wb = ff_q_pfp_prefix_add_right_wbentry * S ((S (pfc_index_prefix_add_right_wb)) * wc) + (pfc_value_prefix_add_right_wb))) /\ ((exists pfc_terms_code_prefix_add_right_wbcoefficient pfc_terms_scale_prefix_add_right_wbcoefficient pfc_natural_sum_prefix_add_right_wbcoefficient. ((forall pfc_index_prefix_add_right_wbcoefficientdiagonal. (exists pfa_gap_prefix_add_right_wbcoefficientdiagonalbound. pfa_gap_prefix_add_right_wbcoefficientdiagonalbound + S (pfc_index_prefix_add_right_wbcoefficientdiagonal) = (S (pfc_index_prefix_add_right_wb))) -> exists pfc_value_prefix_add_right_wbcoefficientdiagonal. ((((exists ff_h_pfp_prefix_add_right_wbcoefficientdiagonalentry. ff_h_pfp_prefix_add_right_wbcoefficientdiagonalentry + S (pfc_value_prefix_add_right_wbcoefficientdiagonal) = S ((S (pfc_index_prefix_add_right_wbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_right_wbcoefficient)) /\ exists ff_q_pfp_prefix_add_right_wbcoefficientdiagonalentry. pfc_terms_code_prefix_add_right_wbcoefficient = ff_q_pfp_prefix_add_right_wbcoefficientdiagonalentry * S ((S (pfc_index_prefix_add_right_wbcoefficientdiagonal)) * pfc_terms_scale_prefix_add_right_wbcoefficient) + (pfc_value_prefix_add_right_wbcoefficientdiagonal))) /\ ((exists pfc_complement_prefix_add_right_wbcoefficientdiagonalterm pfc_left_prefix_add_right_wbcoefficientdiagonalterm pfc_right_prefix_add_right_wbcoefficientdiagonalterm. (((pfc_index_prefix_add_right_wbcoefficientdiagonal)+pfc_complement_prefix_add_right_wbcoefficientdiagonalterm=(pfc_index_prefix_add_right_wb)) /\ ((((((exists pfa_gap_prefix_add_right_wbcoefficientdiagonaltermleftinside. pfa_gap_prefix_add_right_wbcoefficientdiagonaltermleftinside + S (pfc_index_prefix_add_right_wbcoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_add_right_wbcoefficientdiagonaltermleftentry. ff_h_pfp_prefix_add_right_wbcoefficientdiagonaltermleftentry + S (pfc_left_prefix_add_right_wbcoefficientdiagonalterm) = S ((S (pfc_index_prefix_add_right_wbcoefficientdiagonal)) * cc)) /\ exists ff_q_pfp_prefix_add_right_wbcoefficientdiagonaltermleftentry. cb = ff_q_pfp_prefix_add_right_wbcoefficientdiagonaltermleftentry * S ((S (pfc_index_prefix_add_right_wbcoefficientdiagonal)) * cc) + (pfc_left_prefix_add_right_wbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_wbcoefficientdiagonaltermleftoutside. pfc_gap_prefix_add_right_wbcoefficientdiagonaltermleftoutside+(L)=(pfc_index_prefix_add_right_wbcoefficientdiagonal)) /\ (((pfc_left_prefix_add_right_wbcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_right_wbcoefficientdiagonaltermrightinside. pfa_gap_prefix_add_right_wbcoefficientdiagonaltermrightinside + S (pfc_complement_prefix_add_right_wbcoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_add_right_wbcoefficientdiagonaltermrightentry. ff_h_pfp_prefix_add_right_wbcoefficientdiagonaltermrightentry + S (pfc_right_prefix_add_right_wbcoefficientdiagonalterm) = S ((S (pfc_complement_prefix_add_right_wbcoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_prefix_add_right_wbcoefficientdiagonaltermrightentry. db = ff_q_pfp_prefix_add_right_wbcoefficientdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_right_wbcoefficientdiagonalterm)) * dc) + (pfc_right_prefix_add_right_wbcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_wbcoefficientdiagonaltermrightoutside. pfc_gap_prefix_add_right_wbcoefficientdiagonaltermrightoutside+(M)=(pfc_complement_prefix_add_right_wbcoefficientdiagonalterm)) /\ (((pfc_right_prefix_add_right_wbcoefficientdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_right_wbcoefficientdiagonal)=pfc_left_prefix_add_right_wbcoefficientdiagonalterm*pfc_right_prefix_add_right_wbcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_right_wbcoefficientsum fs_v_pfc_prefix_add_right_wbcoefficientsum. ((((exists fs_h_pfc_prefix_add_right_wbcoefficientsum_body_start. fs_h_pfc_prefix_add_right_wbcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_right_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_wbcoefficientsum_body_start. fs_u_pfc_prefix_add_right_wbcoefficientsum = fs_q_pfc_prefix_add_right_wbcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_right_wbcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_right_wbcoefficientsum_body_terminal. fs_h_pfc_prefix_add_right_wbcoefficientsum_body_terminal + S (pfc_natural_sum_prefix_add_right_wbcoefficient) = S ((S (S (pfc_index_prefix_add_right_wb))) * fs_v_pfc_prefix_add_right_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_wbcoefficientsum_body_terminal. fs_u_pfc_prefix_add_right_wbcoefficientsum = fs_q_pfc_prefix_add_right_wbcoefficientsum_body_terminal * S ((S (S (pfc_index_prefix_add_right_wb))) * fs_v_pfc_prefix_add_right_wbcoefficientsum) + (pfc_natural_sum_prefix_add_right_wbcoefficient))) /\ forall fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps. (exists fs_lt_pfc_prefix_add_right_wbcoefficientsum_body_steps_bound. fs_lt_pfc_prefix_add_right_wbcoefficientsum_body_steps_bound + S fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps = S (pfc_index_prefix_add_right_wb)) -> exists fs_a_pfc_prefix_add_right_wbcoefficientsum_body_steps fs_r_pfc_prefix_add_right_wbcoefficientsum_body_steps fs_s_pfc_prefix_add_right_wbcoefficientsum_body_steps. ((((exists fs_h_pfc_prefix_add_right_wbcoefficientsum_body_steps_summand. fs_h_pfc_prefix_add_right_wbcoefficientsum_body_steps_summand + S (fs_a_pfc_prefix_add_right_wbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_right_wbcoefficient)) /\ exists fs_q_pfc_prefix_add_right_wbcoefficientsum_body_steps_summand. pfc_terms_code_prefix_add_right_wbcoefficient = fs_q_pfc_prefix_add_right_wbcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps)) * pfc_terms_scale_prefix_add_right_wbcoefficient) + (fs_a_pfc_prefix_add_right_wbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_wbcoefficientsum_body_steps_partial. fs_h_pfc_prefix_add_right_wbcoefficientsum_body_steps_partial + S (fs_r_pfc_prefix_add_right_wbcoefficientsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_wbcoefficientsum_body_steps_partial. fs_u_pfc_prefix_add_right_wbcoefficientsum = fs_q_pfc_prefix_add_right_wbcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_wbcoefficientsum) + (fs_r_pfc_prefix_add_right_wbcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_wbcoefficientsum_body_steps_successor. fs_h_pfc_prefix_add_right_wbcoefficientsum_body_steps_successor + S (fs_s_pfc_prefix_add_right_wbcoefficientsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_wbcoefficientsum)) /\ exists fs_q_pfc_prefix_add_right_wbcoefficientsum_body_steps_successor. fs_u_pfc_prefix_add_right_wbcoefficientsum = fs_q_pfc_prefix_add_right_wbcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_right_wbcoefficientsum_body_steps)) * fs_v_pfc_prefix_add_right_wbcoefficientsum) + (fs_s_pfc_prefix_add_right_wbcoefficientsum_body_steps))) /\ fs_s_pfc_prefix_add_right_wbcoefficientsum_body_steps = fs_r_pfc_prefix_add_right_wbcoefficientsum_body_steps + fs_a_pfc_prefix_add_right_wbcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_right_wbcoefficientresiduebound. pfa_gap_prefix_add_right_wbcoefficientresiduebound + S (pfc_value_prefix_add_right_wb) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_wbcoefficientresiduecongruence pfa_offset_right_prefix_add_right_wbcoefficientresiduecongruence. (pfc_natural_sum_prefix_add_right_wbcoefficient) + (p) * pfa_offset_left_prefix_add_right_wbcoefficientresiduecongruence = (pfc_value_prefix_add_right_wb) + (p) * pfa_offset_right_prefix_add_right_wbcoefficientresiduecongruence)))))))))))) -> (forall pfp_index_prefix_add_right_result. (exists pfa_gap_prefix_add_right_resultindex. pfa_gap_prefix_add_right_resultindex + S (pfp_index_prefix_add_right_result) = (N)) -> exists pfp_left_prefix_add_right_result pfp_right_prefix_add_right_result pfp_value_prefix_add_right_result. ((((exists ff_h_pfp_prefix_add_right_resultleft. ff_h_pfp_prefix_add_right_resultleft + S (pfp_left_prefix_add_right_result) = S ((S (pfp_index_prefix_add_right_result)) * uc)) /\ exists ff_q_pfp_prefix_add_right_resultleft. ub = ff_q_pfp_prefix_add_right_resultleft * S ((S (pfp_index_prefix_add_right_result)) * uc) + (pfp_left_prefix_add_right_result))) /\ (((((exists ff_h_pfp_prefix_add_right_resultright. ff_h_pfp_prefix_add_right_resultright + S (pfp_right_prefix_add_right_result) = S ((S (pfp_index_prefix_add_right_result)) * vc)) /\ exists ff_q_pfp_prefix_add_right_resultright. vb = ff_q_pfp_prefix_add_right_resultright * S ((S (pfp_index_prefix_add_right_result)) * vc) + (pfp_right_prefix_add_right_result))) /\ (((((exists ff_h_pfp_prefix_add_right_resulttarget. ff_h_pfp_prefix_add_right_resulttarget + S (pfp_value_prefix_add_right_result) = S ((S (pfp_index_prefix_add_right_result)) * wc)) /\ exists ff_q_pfp_prefix_add_right_resulttarget. wb = ff_q_pfp_prefix_add_right_resulttarget * S ((S (pfp_index_prefix_add_right_result)) * wc) + (pfp_value_prefix_add_right_result))) /\ ((((exists pfa_gap_prefix_add_right_resultoperationleft. pfa_gap_prefix_add_right_resultoperationleft + S (pfp_left_prefix_add_right_result) = (p)) /\ (((exists pfa_gap_prefix_add_right_resultoperationright. pfa_gap_prefix_add_right_resultoperationright + S (pfp_right_prefix_add_right_result) = (p)) /\ ((((exists pfa_gap_prefix_add_right_resultoperationresultbound. pfa_gap_prefix_add_right_resultoperationresultbound + S (pfp_value_prefix_add_right_result) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_resultoperationresultcongruence pfa_offset_right_prefix_add_right_resultoperationresultcongruence. ((pfp_left_prefix_add_right_result) + (pfp_right_prefix_add_right_result)) + (p) * pfa_offset_left_prefix_add_right_resultoperationresultcongruence = (pfp_value_prefix_add_right_result) + (p) * pfa_offset_right_prefix_add_right_resultoperationresultcongruence))))))))))))))))

Constructive proof overview

Generated structural guide

Every requested ambient output prefix of the three actual right 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,ab,ac,L,db,dc,M,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,bb,bc,L,db,dc,M,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,cb,cc,L,db,dc,M,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_right_add (p)
  3. L53
    specialize prime_field_convolution_coefficient_right_add (ab)
  4. L54
    specialize prime_field_convolution_coefficient_right_add (ac)
  5. L55
    specialize prime_field_convolution_coefficient_right_add (bb)
  6. L56
    specialize prime_field_convolution_coefficient_right_add (bc)
  7. L57
    specialize prime_field_convolution_coefficient_right_add (cb)
  8. L58
    specialize prime_field_convolution_coefficient_right_add (cc)
  9. L59
    specialize prime_field_convolution_coefficient_right_add (L)
  10. L60
    specialize prime_field_convolution_coefficient_right_add (db)
17Use earlier factsL61–70

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

  1. L61
    specialize prime_field_convolution_coefficient_right_add (dc)
  2. L62
    specialize prime_field_convolution_coefficient_right_add (M)
  3. L63
    specialize prime_field_convolution_coefficient_right_add (i)
  4. L64
    specialize prime_field_convolution_coefficient_right_add (x)
  5. L65
    specialize prime_field_convolution_coefficient_right_add (x1)
  6. L66
    specialize prime_field_convolution_coefficient_right_add (x2)
  7. L67
    apply prime_field_convolution_coefficient_right_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_right_hcu. ff_h_pfp_prefix_add_right_hcu + S (r) = S ((S (i)) * uc)) /\ exists ff_q_pfp_prefix_add_right_hcu. ub = ff_q_pfp_prefix_add_right_hcu * S ((S (i)) * uc) + (r))) /\ ((exists pfc_terms_code_prefix_add_right_value_hcu pfc_terms_scale_prefix_add_right_value_hcu pfc_natural_sum_prefix_add_right_value_hcu. ((forall pfc_index_prefix_add_right_value_hcudiagonal. (exists pfa_gap_prefix_add_right_value_hcudiagonalbound. pfa_gap_prefix_add_right_value_hcudiagonalbound + S (pfc_index_prefix_add_right_value_hcudiagonal) = (S (i))) -> exists pfc_value_prefix_add_right_value_hcudiagonal. ((((exists ff_h_pfp_prefix_add_right_value_hcudiagonalentry. ff_h_pfp_prefix_add_right_value_hcudiagonalentry + S (pfc_value_prefix_add_right_value_hcudiagonal) = S ((S (pfc_index_prefix_add_right_value_hcudiagonal)) * pfc_terms_scale_prefix_add_right_value_hcu)) /\ exists ff_q_pfp_prefix_add_right_value_hcudiagonalentry. pfc_terms_code_prefix_add_right_value_hcu = ff_q_pfp_prefix_add_right_value_hcudiagonalentry * S ((S (pfc_index_prefix_add_right_value_hcudiagonal)) * pfc_terms_scale_prefix_add_right_value_hcu) + (pfc_value_prefix_add_right_value_hcudiagonal))) /\ ((exists pfc_complement_prefix_add_right_value_hcudiagonalterm pfc_left_prefix_add_right_value_hcudiagonalterm pfc_right_prefix_add_right_value_hcudiagonalterm. (((pfc_index_prefix_add_right_value_hcudiagonal)+pfc_complement_prefix_add_right_value_hcudiagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_add_right_value_hcudiagonaltermleftinside. pfa_gap_prefix_add_right_value_hcudiagonaltermleftinside + S (pfc_index_prefix_add_right_value_hcudiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_add_right_value_hcudiagonaltermleftentry. ff_h_pfp_prefix_add_right_value_hcudiagonaltermleftentry + S (pfc_left_prefix_add_right_value_hcudiagonalterm) = S ((S (pfc_index_prefix_add_right_value_hcudiagonal)) * ac)) /\ exists ff_q_pfp_prefix_add_right_value_hcudiagonaltermleftentry. ab = ff_q_pfp_prefix_add_right_value_hcudiagonaltermleftentry * S ((S (pfc_index_prefix_add_right_value_hcudiagonal)) * ac) + (pfc_left_prefix_add_right_value_hcudiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_value_hcudiagonaltermleftoutside. pfc_gap_prefix_add_right_value_hcudiagonaltermleftoutside+(L)=(pfc_index_prefix_add_right_value_hcudiagonal)) /\ (((pfc_left_prefix_add_right_value_hcudiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_right_value_hcudiagonaltermrightinside. pfa_gap_prefix_add_right_value_hcudiagonaltermrightinside + S (pfc_complement_prefix_add_right_value_hcudiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_add_right_value_hcudiagonaltermrightentry. ff_h_pfp_prefix_add_right_value_hcudiagonaltermrightentry + S (pfc_right_prefix_add_right_value_hcudiagonalterm) = S ((S (pfc_complement_prefix_add_right_value_hcudiagonalterm)) * dc)) /\ exists ff_q_pfp_prefix_add_right_value_hcudiagonaltermrightentry. db = ff_q_pfp_prefix_add_right_value_hcudiagonaltermrightentry * S ((S (pfc_complement_prefix_add_right_value_hcudiagonalterm)) * dc) + (pfc_right_prefix_add_right_value_hcudiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_value_hcudiagonaltermrightoutside. pfc_gap_prefix_add_right_value_hcudiagonaltermrightoutside+(M)=(pfc_complement_prefix_add_right_value_hcudiagonalterm)) /\ (((pfc_right_prefix_add_right_value_hcudiagonalterm)=0))))) /\ (((pfc_value_prefix_add_right_value_hcudiagonal)=pfc_left_prefix_add_right_value_hcudiagonalterm*pfc_right_prefix_add_right_value_hcudiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_right_value_hcusum fs_v_pfc_prefix_add_right_value_hcusum. ((((exists fs_h_pfc_prefix_add_right_value_hcusum_body_start. fs_h_pfc_prefix_add_right_value_hcusum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_right_value_hcusum)) /\ exists fs_q_pfc_prefix_add_right_value_hcusum_body_start. fs_u_pfc_prefix_add_right_value_hcusum = fs_q_pfc_prefix_add_right_value_hcusum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_right_value_hcusum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcusum_body_terminal. fs_h_pfc_prefix_add_right_value_hcusum_body_terminal + S (pfc_natural_sum_prefix_add_right_value_hcu) = S ((S (S (i))) * fs_v_pfc_prefix_add_right_value_hcusum)) /\ exists fs_q_pfc_prefix_add_right_value_hcusum_body_terminal. fs_u_pfc_prefix_add_right_value_hcusum = fs_q_pfc_prefix_add_right_value_hcusum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_add_right_value_hcusum) + (pfc_natural_sum_prefix_add_right_value_hcu))) /\ forall fs_i_pfc_prefix_add_right_value_hcusum_body_steps. (exists fs_lt_pfc_prefix_add_right_value_hcusum_body_steps_bound. fs_lt_pfc_prefix_add_right_value_hcusum_body_steps_bound + S fs_i_pfc_prefix_add_right_value_hcusum_body_steps = S (i)) -> exists fs_a_pfc_prefix_add_right_value_hcusum_body_steps fs_r_pfc_prefix_add_right_value_hcusum_body_steps fs_s_pfc_prefix_add_right_value_hcusum_body_steps. ((((exists fs_h_pfc_prefix_add_right_value_hcusum_body_steps_summand. fs_h_pfc_prefix_add_right_value_hcusum_body_steps_summand + S (fs_a_pfc_prefix_add_right_value_hcusum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_value_hcusum_body_steps)) * pfc_terms_scale_prefix_add_right_value_hcu)) /\ exists fs_q_pfc_prefix_add_right_value_hcusum_body_steps_summand. pfc_terms_code_prefix_add_right_value_hcu = fs_q_pfc_prefix_add_right_value_hcusum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_right_value_hcusum_body_steps)) * pfc_terms_scale_prefix_add_right_value_hcu) + (fs_a_pfc_prefix_add_right_value_hcusum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcusum_body_steps_partial. fs_h_pfc_prefix_add_right_value_hcusum_body_steps_partial + S (fs_r_pfc_prefix_add_right_value_hcusum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcusum)) /\ exists fs_q_pfc_prefix_add_right_value_hcusum_body_steps_partial. fs_u_pfc_prefix_add_right_value_hcusum = fs_q_pfc_prefix_add_right_value_hcusum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_right_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcusum) + (fs_r_pfc_prefix_add_right_value_hcusum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcusum_body_steps_successor. fs_h_pfc_prefix_add_right_value_hcusum_body_steps_successor + S (fs_s_pfc_prefix_add_right_value_hcusum_body_steps) = S ((S (S fs_i_pfc_prefix_add_right_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcusum)) /\ exists fs_q_pfc_prefix_add_right_value_hcusum_body_steps_successor. fs_u_pfc_prefix_add_right_value_hcusum = fs_q_pfc_prefix_add_right_value_hcusum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_right_value_hcusum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcusum) + (fs_s_pfc_prefix_add_right_value_hcusum_body_steps))) /\ fs_s_pfc_prefix_add_right_value_hcusum_body_steps = fs_r_pfc_prefix_add_right_value_hcusum_body_steps + fs_a_pfc_prefix_add_right_value_hcusum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_right_value_hcuresiduebound. pfa_gap_prefix_add_right_value_hcuresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_value_hcuresiduecongruence pfa_offset_right_prefix_add_right_value_hcuresiduecongruence. (pfc_natural_sum_prefix_add_right_value_hcu) + (p) * pfa_offset_left_prefix_add_right_value_hcuresiduecongruence = (r) + (p) * pfa_offset_right_prefix_add_right_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_right_hcv. ff_h_pfp_prefix_add_right_hcv + S (r) = S ((S (i)) * vc)) /\ exists ff_q_pfp_prefix_add_right_hcv. vb = ff_q_pfp_prefix_add_right_hcv * S ((S (i)) * vc) + (r))) /\ ((exists pfc_terms_code_prefix_add_right_value_hcv pfc_terms_scale_prefix_add_right_value_hcv pfc_natural_sum_prefix_add_right_value_hcv. ((forall pfc_index_prefix_add_right_value_hcvdiagonal. (exists pfa_gap_prefix_add_right_value_hcvdiagonalbound. pfa_gap_prefix_add_right_value_hcvdiagonalbound + S (pfc_index_prefix_add_right_value_hcvdiagonal) = (S (i))) -> exists pfc_value_prefix_add_right_value_hcvdiagonal. ((((exists ff_h_pfp_prefix_add_right_value_hcvdiagonalentry. ff_h_pfp_prefix_add_right_value_hcvdiagonalentry + S (pfc_value_prefix_add_right_value_hcvdiagonal) = S ((S (pfc_index_prefix_add_right_value_hcvdiagonal)) * pfc_terms_scale_prefix_add_right_value_hcv)) /\ exists ff_q_pfp_prefix_add_right_value_hcvdiagonalentry. pfc_terms_code_prefix_add_right_value_hcv = ff_q_pfp_prefix_add_right_value_hcvdiagonalentry * S ((S (pfc_index_prefix_add_right_value_hcvdiagonal)) * pfc_terms_scale_prefix_add_right_value_hcv) + (pfc_value_prefix_add_right_value_hcvdiagonal))) /\ ((exists pfc_complement_prefix_add_right_value_hcvdiagonalterm pfc_left_prefix_add_right_value_hcvdiagonalterm pfc_right_prefix_add_right_value_hcvdiagonalterm. (((pfc_index_prefix_add_right_value_hcvdiagonal)+pfc_complement_prefix_add_right_value_hcvdiagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_add_right_value_hcvdiagonaltermleftinside. pfa_gap_prefix_add_right_value_hcvdiagonaltermleftinside + S (pfc_index_prefix_add_right_value_hcvdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_add_right_value_hcvdiagonaltermleftentry. ff_h_pfp_prefix_add_right_value_hcvdiagonaltermleftentry + S (pfc_left_prefix_add_right_value_hcvdiagonalterm) = S ((S (pfc_index_prefix_add_right_value_hcvdiagonal)) * bc)) /\ exists ff_q_pfp_prefix_add_right_value_hcvdiagonaltermleftentry. bb = ff_q_pfp_prefix_add_right_value_hcvdiagonaltermleftentry * S ((S (pfc_index_prefix_add_right_value_hcvdiagonal)) * bc) + (pfc_left_prefix_add_right_value_hcvdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_value_hcvdiagonaltermleftoutside. pfc_gap_prefix_add_right_value_hcvdiagonaltermleftoutside+(L)=(pfc_index_prefix_add_right_value_hcvdiagonal)) /\ (((pfc_left_prefix_add_right_value_hcvdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_right_value_hcvdiagonaltermrightinside. pfa_gap_prefix_add_right_value_hcvdiagonaltermrightinside + S (pfc_complement_prefix_add_right_value_hcvdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_add_right_value_hcvdiagonaltermrightentry. ff_h_pfp_prefix_add_right_value_hcvdiagonaltermrightentry + S (pfc_right_prefix_add_right_value_hcvdiagonalterm) = S ((S (pfc_complement_prefix_add_right_value_hcvdiagonalterm)) * dc)) /\ exists ff_q_pfp_prefix_add_right_value_hcvdiagonaltermrightentry. db = ff_q_pfp_prefix_add_right_value_hcvdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_right_value_hcvdiagonalterm)) * dc) + (pfc_right_prefix_add_right_value_hcvdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_value_hcvdiagonaltermrightoutside. pfc_gap_prefix_add_right_value_hcvdiagonaltermrightoutside+(M)=(pfc_complement_prefix_add_right_value_hcvdiagonalterm)) /\ (((pfc_right_prefix_add_right_value_hcvdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_right_value_hcvdiagonal)=pfc_left_prefix_add_right_value_hcvdiagonalterm*pfc_right_prefix_add_right_value_hcvdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_right_value_hcvsum fs_v_pfc_prefix_add_right_value_hcvsum. ((((exists fs_h_pfc_prefix_add_right_value_hcvsum_body_start. fs_h_pfc_prefix_add_right_value_hcvsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_right_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcvsum_body_start. fs_u_pfc_prefix_add_right_value_hcvsum = fs_q_pfc_prefix_add_right_value_hcvsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_right_value_hcvsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcvsum_body_terminal. fs_h_pfc_prefix_add_right_value_hcvsum_body_terminal + S (pfc_natural_sum_prefix_add_right_value_hcv) = S ((S (S (i))) * fs_v_pfc_prefix_add_right_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcvsum_body_terminal. fs_u_pfc_prefix_add_right_value_hcvsum = fs_q_pfc_prefix_add_right_value_hcvsum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_add_right_value_hcvsum) + (pfc_natural_sum_prefix_add_right_value_hcv))) /\ forall fs_i_pfc_prefix_add_right_value_hcvsum_body_steps. (exists fs_lt_pfc_prefix_add_right_value_hcvsum_body_steps_bound. fs_lt_pfc_prefix_add_right_value_hcvsum_body_steps_bound + S fs_i_pfc_prefix_add_right_value_hcvsum_body_steps = S (i)) -> exists fs_a_pfc_prefix_add_right_value_hcvsum_body_steps fs_r_pfc_prefix_add_right_value_hcvsum_body_steps fs_s_pfc_prefix_add_right_value_hcvsum_body_steps. ((((exists fs_h_pfc_prefix_add_right_value_hcvsum_body_steps_summand. fs_h_pfc_prefix_add_right_value_hcvsum_body_steps_summand + S (fs_a_pfc_prefix_add_right_value_hcvsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_value_hcvsum_body_steps)) * pfc_terms_scale_prefix_add_right_value_hcv)) /\ exists fs_q_pfc_prefix_add_right_value_hcvsum_body_steps_summand. pfc_terms_code_prefix_add_right_value_hcv = fs_q_pfc_prefix_add_right_value_hcvsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_right_value_hcvsum_body_steps)) * pfc_terms_scale_prefix_add_right_value_hcv) + (fs_a_pfc_prefix_add_right_value_hcvsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcvsum_body_steps_partial. fs_h_pfc_prefix_add_right_value_hcvsum_body_steps_partial + S (fs_r_pfc_prefix_add_right_value_hcvsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcvsum_body_steps_partial. fs_u_pfc_prefix_add_right_value_hcvsum = fs_q_pfc_prefix_add_right_value_hcvsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_right_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcvsum) + (fs_r_pfc_prefix_add_right_value_hcvsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcvsum_body_steps_successor. fs_h_pfc_prefix_add_right_value_hcvsum_body_steps_successor + S (fs_s_pfc_prefix_add_right_value_hcvsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_right_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcvsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcvsum_body_steps_successor. fs_u_pfc_prefix_add_right_value_hcvsum = fs_q_pfc_prefix_add_right_value_hcvsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_right_value_hcvsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcvsum) + (fs_s_pfc_prefix_add_right_value_hcvsum_body_steps))) /\ fs_s_pfc_prefix_add_right_value_hcvsum_body_steps = fs_r_pfc_prefix_add_right_value_hcvsum_body_steps + fs_a_pfc_prefix_add_right_value_hcvsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_right_value_hcvresiduebound. pfa_gap_prefix_add_right_value_hcvresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_value_hcvresiduecongruence pfa_offset_right_prefix_add_right_value_hcvresiduecongruence. (pfc_natural_sum_prefix_add_right_value_hcv) + (p) * pfa_offset_left_prefix_add_right_value_hcvresiduecongruence = (r) + (p) * pfa_offset_right_prefix_add_right_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_right_hcw. ff_h_pfp_prefix_add_right_hcw + S (r) = S ((S (i)) * wc)) /\ exists ff_q_pfp_prefix_add_right_hcw. wb = ff_q_pfp_prefix_add_right_hcw * S ((S (i)) * wc) + (r))) /\ ((exists pfc_terms_code_prefix_add_right_value_hcw pfc_terms_scale_prefix_add_right_value_hcw pfc_natural_sum_prefix_add_right_value_hcw. ((forall pfc_index_prefix_add_right_value_hcwdiagonal. (exists pfa_gap_prefix_add_right_value_hcwdiagonalbound. pfa_gap_prefix_add_right_value_hcwdiagonalbound + S (pfc_index_prefix_add_right_value_hcwdiagonal) = (S (i))) -> exists pfc_value_prefix_add_right_value_hcwdiagonal. ((((exists ff_h_pfp_prefix_add_right_value_hcwdiagonalentry. ff_h_pfp_prefix_add_right_value_hcwdiagonalentry + S (pfc_value_prefix_add_right_value_hcwdiagonal) = S ((S (pfc_index_prefix_add_right_value_hcwdiagonal)) * pfc_terms_scale_prefix_add_right_value_hcw)) /\ exists ff_q_pfp_prefix_add_right_value_hcwdiagonalentry. pfc_terms_code_prefix_add_right_value_hcw = ff_q_pfp_prefix_add_right_value_hcwdiagonalentry * S ((S (pfc_index_prefix_add_right_value_hcwdiagonal)) * pfc_terms_scale_prefix_add_right_value_hcw) + (pfc_value_prefix_add_right_value_hcwdiagonal))) /\ ((exists pfc_complement_prefix_add_right_value_hcwdiagonalterm pfc_left_prefix_add_right_value_hcwdiagonalterm pfc_right_prefix_add_right_value_hcwdiagonalterm. (((pfc_index_prefix_add_right_value_hcwdiagonal)+pfc_complement_prefix_add_right_value_hcwdiagonalterm=(i)) /\ ((((((exists pfa_gap_prefix_add_right_value_hcwdiagonaltermleftinside. pfa_gap_prefix_add_right_value_hcwdiagonaltermleftinside + S (pfc_index_prefix_add_right_value_hcwdiagonal) = (L)) /\ ((((exists ff_h_pfp_prefix_add_right_value_hcwdiagonaltermleftentry. ff_h_pfp_prefix_add_right_value_hcwdiagonaltermleftentry + S (pfc_left_prefix_add_right_value_hcwdiagonalterm) = S ((S (pfc_index_prefix_add_right_value_hcwdiagonal)) * cc)) /\ exists ff_q_pfp_prefix_add_right_value_hcwdiagonaltermleftentry. cb = ff_q_pfp_prefix_add_right_value_hcwdiagonaltermleftentry * S ((S (pfc_index_prefix_add_right_value_hcwdiagonal)) * cc) + (pfc_left_prefix_add_right_value_hcwdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_value_hcwdiagonaltermleftoutside. pfc_gap_prefix_add_right_value_hcwdiagonaltermleftoutside+(L)=(pfc_index_prefix_add_right_value_hcwdiagonal)) /\ (((pfc_left_prefix_add_right_value_hcwdiagonalterm)=0))))) /\ ((((((exists pfa_gap_prefix_add_right_value_hcwdiagonaltermrightinside. pfa_gap_prefix_add_right_value_hcwdiagonaltermrightinside + S (pfc_complement_prefix_add_right_value_hcwdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_prefix_add_right_value_hcwdiagonaltermrightentry. ff_h_pfp_prefix_add_right_value_hcwdiagonaltermrightentry + S (pfc_right_prefix_add_right_value_hcwdiagonalterm) = S ((S (pfc_complement_prefix_add_right_value_hcwdiagonalterm)) * dc)) /\ exists ff_q_pfp_prefix_add_right_value_hcwdiagonaltermrightentry. db = ff_q_pfp_prefix_add_right_value_hcwdiagonaltermrightentry * S ((S (pfc_complement_prefix_add_right_value_hcwdiagonalterm)) * dc) + (pfc_right_prefix_add_right_value_hcwdiagonalterm)))))) \/ (((exists pfc_gap_prefix_add_right_value_hcwdiagonaltermrightoutside. pfc_gap_prefix_add_right_value_hcwdiagonaltermrightoutside+(M)=(pfc_complement_prefix_add_right_value_hcwdiagonalterm)) /\ (((pfc_right_prefix_add_right_value_hcwdiagonalterm)=0))))) /\ (((pfc_value_prefix_add_right_value_hcwdiagonal)=pfc_left_prefix_add_right_value_hcwdiagonalterm*pfc_right_prefix_add_right_value_hcwdiagonalterm))))))))))) /\ (((exists fs_u_pfc_prefix_add_right_value_hcwsum fs_v_pfc_prefix_add_right_value_hcwsum. ((((exists fs_h_pfc_prefix_add_right_value_hcwsum_body_start. fs_h_pfc_prefix_add_right_value_hcwsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_prefix_add_right_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcwsum_body_start. fs_u_pfc_prefix_add_right_value_hcwsum = fs_q_pfc_prefix_add_right_value_hcwsum_body_start * S ((S (0)) * fs_v_pfc_prefix_add_right_value_hcwsum) + (0))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcwsum_body_terminal. fs_h_pfc_prefix_add_right_value_hcwsum_body_terminal + S (pfc_natural_sum_prefix_add_right_value_hcw) = S ((S (S (i))) * fs_v_pfc_prefix_add_right_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcwsum_body_terminal. fs_u_pfc_prefix_add_right_value_hcwsum = fs_q_pfc_prefix_add_right_value_hcwsum_body_terminal * S ((S (S (i))) * fs_v_pfc_prefix_add_right_value_hcwsum) + (pfc_natural_sum_prefix_add_right_value_hcw))) /\ forall fs_i_pfc_prefix_add_right_value_hcwsum_body_steps. (exists fs_lt_pfc_prefix_add_right_value_hcwsum_body_steps_bound. fs_lt_pfc_prefix_add_right_value_hcwsum_body_steps_bound + S fs_i_pfc_prefix_add_right_value_hcwsum_body_steps = S (i)) -> exists fs_a_pfc_prefix_add_right_value_hcwsum_body_steps fs_r_pfc_prefix_add_right_value_hcwsum_body_steps fs_s_pfc_prefix_add_right_value_hcwsum_body_steps. ((((exists fs_h_pfc_prefix_add_right_value_hcwsum_body_steps_summand. fs_h_pfc_prefix_add_right_value_hcwsum_body_steps_summand + S (fs_a_pfc_prefix_add_right_value_hcwsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_value_hcwsum_body_steps)) * pfc_terms_scale_prefix_add_right_value_hcw)) /\ exists fs_q_pfc_prefix_add_right_value_hcwsum_body_steps_summand. pfc_terms_code_prefix_add_right_value_hcw = fs_q_pfc_prefix_add_right_value_hcwsum_body_steps_summand * S ((S (fs_i_pfc_prefix_add_right_value_hcwsum_body_steps)) * pfc_terms_scale_prefix_add_right_value_hcw) + (fs_a_pfc_prefix_add_right_value_hcwsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcwsum_body_steps_partial. fs_h_pfc_prefix_add_right_value_hcwsum_body_steps_partial + S (fs_r_pfc_prefix_add_right_value_hcwsum_body_steps) = S ((S (fs_i_pfc_prefix_add_right_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcwsum_body_steps_partial. fs_u_pfc_prefix_add_right_value_hcwsum = fs_q_pfc_prefix_add_right_value_hcwsum_body_steps_partial * S ((S (fs_i_pfc_prefix_add_right_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcwsum) + (fs_r_pfc_prefix_add_right_value_hcwsum_body_steps))) /\ ((((exists fs_h_pfc_prefix_add_right_value_hcwsum_body_steps_successor. fs_h_pfc_prefix_add_right_value_hcwsum_body_steps_successor + S (fs_s_pfc_prefix_add_right_value_hcwsum_body_steps) = S ((S (S fs_i_pfc_prefix_add_right_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcwsum)) /\ exists fs_q_pfc_prefix_add_right_value_hcwsum_body_steps_successor. fs_u_pfc_prefix_add_right_value_hcwsum = fs_q_pfc_prefix_add_right_value_hcwsum_body_steps_successor * S ((S (S fs_i_pfc_prefix_add_right_value_hcwsum_body_steps)) * fs_v_pfc_prefix_add_right_value_hcwsum) + (fs_s_pfc_prefix_add_right_value_hcwsum_body_steps))) /\ fs_s_pfc_prefix_add_right_value_hcwsum_body_steps = fs_r_pfc_prefix_add_right_value_hcwsum_body_steps + fs_a_pfc_prefix_add_right_value_hcwsum_body_steps)))))) /\ ((((exists pfa_gap_prefix_add_right_value_hcwresiduebound. pfa_gap_prefix_add_right_value_hcwresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_prefix_add_right_value_hcwresiduecongruence pfa_offset_right_prefix_add_right_value_hcwresiduecongruence. (pfc_natural_sum_prefix_add_right_value_hcw) + (p) * pfa_offset_left_prefix_add_right_value_hcwresiduecongruence = (r) + (p) * pfa_offset_right_prefix_add_right_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_right_add (p)
  53. 0053specialize prime_field_convolution_coefficient_right_add (ab)
  54. 0054specialize prime_field_convolution_coefficient_right_add (ac)
  55. 0055specialize prime_field_convolution_coefficient_right_add (bb)
  56. 0056specialize prime_field_convolution_coefficient_right_add (bc)
  57. 0057specialize prime_field_convolution_coefficient_right_add (cb)
  58. 0058specialize prime_field_convolution_coefficient_right_add (cc)
  59. 0059specialize prime_field_convolution_coefficient_right_add (L)
  60. 0060specialize prime_field_convolution_coefficient_right_add (db)
  61. 0061specialize prime_field_convolution_coefficient_right_add (dc)
  62. 0062specialize prime_field_convolution_coefficient_right_add (M)
  63. 0063specialize prime_field_convolution_coefficient_right_add (i)
  64. 0064specialize prime_field_convolution_coefficient_right_add (x)
  65. 0065specialize prime_field_convolution_coefficient_right_add (x1)
  66. 0066specialize prime_field_convolution_coefficient_right_add (x2)
  67. 0067apply prime_field_convolution_coefficient_right_add
  68. 0068exact hs
  69. 0069exact hcu_witness_right
  70. 0070exact hcv_witness_right
  71. 0071exact hcw_witness_right