PG000A

prime_field_polynomial_convolution_shift_right_nonempty

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

For actual nonempty factors, the shifted product is exactly a trailing-zero extension of the original decoded product, at its proved successor length.

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 L bb bc M cb cc N BB BC db dc K. (~(p=0)) -> (~(L=0)) -> (~(M=0)) -> (((forall mdr_i_pfp_shift_product_factorprefix mdr_a_pfp_shift_product_factorprefix. (exists mdr_gap_pfp_shift_product_factorprefixb. mdr_gap_pfp_shift_product_factorprefixb + S (mdr_i_pfp_shift_product_factorprefix) = (M)) -> (((exists ff_h_mdr_pfp_shift_product_factorprefixo. ff_h_mdr_pfp_shift_product_factorprefixo + S (mdr_a_pfp_shift_product_factorprefix) = S ((S (mdr_i_pfp_shift_product_factorprefix)) * bc)) /\ exists ff_q_mdr_pfp_shift_product_factorprefixo. bb = ff_q_mdr_pfp_shift_product_factorprefixo * S ((S (mdr_i_pfp_shift_product_factorprefix)) * bc) + (mdr_a_pfp_shift_product_factorprefix))) -> (((exists ff_h_mdr_pfp_shift_product_factorprefixn. ff_h_mdr_pfp_shift_product_factorprefixn + S (mdr_a_pfp_shift_product_factorprefix) = S ((S (mdr_i_pfp_shift_product_factorprefix)) * BC)) /\ exists ff_q_mdr_pfp_shift_product_factorprefixn. BB = ff_q_mdr_pfp_shift_product_factorprefixn * S ((S (mdr_i_pfp_shift_product_factorprefix)) * BC) + (mdr_a_pfp_shift_product_factorprefix)))) /\ ((((exists ff_h_pfp_shift_product_factorlast. ff_h_pfp_shift_product_factorlast + S (0) = S ((S (M)) * BC)) /\ exists ff_q_pfp_shift_product_factorlast. BB = ff_q_pfp_shift_product_factorlast * S ((S (M)) * BC) + (0)))))) -> (((forall fom_index_pfp_shift_product_oldleft. (exists fom_gap_pfp_shift_product_oldleft_index_bound. fom_gap_pfp_shift_product_oldleft_index_bound + S (fom_index_pfp_shift_product_oldleft) = L) -> exists fom_value_pfp_shift_product_oldleft. ((((exists fom_beta_height_pfp_shift_product_oldleft_entry. fom_beta_height_pfp_shift_product_oldleft_entry + S (fom_value_pfp_shift_product_oldleft) = S ((S (fom_index_pfp_shift_product_oldleft)) * ac)) /\ exists fom_beta_quotient_pfp_shift_product_oldleft_entry. ab = fom_beta_quotient_pfp_shift_product_oldleft_entry * S ((S (fom_index_pfp_shift_product_oldleft)) * ac) + (fom_value_pfp_shift_product_oldleft))) /\ (exists fom_gap_pfp_shift_product_oldleft_value_bound. fom_gap_pfp_shift_product_oldleft_value_bound + S (fom_value_pfp_shift_product_oldleft) = p))) /\ (((forall fom_index_pfp_shift_product_oldright. (exists fom_gap_pfp_shift_product_oldright_index_bound. fom_gap_pfp_shift_product_oldright_index_bound + S (fom_index_pfp_shift_product_oldright) = M) -> exists fom_value_pfp_shift_product_oldright. ((((exists fom_beta_height_pfp_shift_product_oldright_entry. fom_beta_height_pfp_shift_product_oldright_entry + S (fom_value_pfp_shift_product_oldright) = S ((S (fom_index_pfp_shift_product_oldright)) * bc)) /\ exists fom_beta_quotient_pfp_shift_product_oldright_entry. bb = fom_beta_quotient_pfp_shift_product_oldright_entry * S ((S (fom_index_pfp_shift_product_oldright)) * bc) + (fom_value_pfp_shift_product_oldright))) /\ (exists fom_gap_pfp_shift_product_oldright_value_bound. fom_gap_pfp_shift_product_oldright_value_bound + S (fom_value_pfp_shift_product_oldright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_shift_product_oldcoefficients. (exists pfa_gap_shift_product_oldcoefficientsbound. pfa_gap_shift_product_oldcoefficientsbound + S (pfc_index_shift_product_oldcoefficients) = (N)) -> exists pfc_value_shift_product_oldcoefficients. ((((exists ff_h_pfp_shift_product_oldcoefficientsentry. ff_h_pfp_shift_product_oldcoefficientsentry + S (pfc_value_shift_product_oldcoefficients) = S ((S (pfc_index_shift_product_oldcoefficients)) * cc)) /\ exists ff_q_pfp_shift_product_oldcoefficientsentry. cb = ff_q_pfp_shift_product_oldcoefficientsentry * S ((S (pfc_index_shift_product_oldcoefficients)) * cc) + (pfc_value_shift_product_oldcoefficients))) /\ ((exists pfc_terms_code_shift_product_oldcoefficientscoefficient pfc_terms_scale_shift_product_oldcoefficientscoefficient pfc_natural_sum_shift_product_oldcoefficientscoefficient. ((forall pfc_index_shift_product_oldcoefficientscoefficientdiagonal. (exists pfa_gap_shift_product_oldcoefficientscoefficientdiagonalbound. pfa_gap_shift_product_oldcoefficientscoefficientdiagonalbound + S (pfc_index_shift_product_oldcoefficientscoefficientdiagonal) = (S (pfc_index_shift_product_oldcoefficients))) -> exists pfc_value_shift_product_oldcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_shift_product_oldcoefficientscoefficientdiagonalentry. ff_h_pfp_shift_product_oldcoefficientscoefficientdiagonalentry + S (pfc_value_shift_product_oldcoefficientscoefficientdiagonal) = S ((S (pfc_index_shift_product_oldcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_product_oldcoefficientscoefficient)) /\ exists ff_q_pfp_shift_product_oldcoefficientscoefficientdiagonalentry. pfc_terms_code_shift_product_oldcoefficientscoefficient = ff_q_pfp_shift_product_oldcoefficientscoefficientdiagonalentry * S ((S (pfc_index_shift_product_oldcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_product_oldcoefficientscoefficient) + (pfc_value_shift_product_oldcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_shift_product_oldcoefficientscoefficientdiagonalterm pfc_left_shift_product_oldcoefficientscoefficientdiagonalterm pfc_right_shift_product_oldcoefficientscoefficientdiagonalterm. (((pfc_index_shift_product_oldcoefficientscoefficientdiagonal)+pfc_complement_shift_product_oldcoefficientscoefficientdiagonalterm=(pfc_index_shift_product_oldcoefficients)) /\ ((((((exists pfa_gap_shift_product_oldcoefficientscoefficientdiagonaltermleftinside. pfa_gap_shift_product_oldcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_shift_product_oldcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_oldcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_shift_product_oldcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_shift_product_oldcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_shift_product_oldcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_oldcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_product_oldcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_shift_product_oldcoefficientscoefficientdiagonal)) * ac) + (pfc_left_shift_product_oldcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_oldcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_shift_product_oldcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_product_oldcoefficientscoefficientdiagonal)) /\ (((pfc_left_shift_product_oldcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_oldcoefficientscoefficientdiagonaltermrightinside. pfa_gap_shift_product_oldcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_shift_product_oldcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_shift_product_oldcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_shift_product_oldcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_shift_product_oldcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_shift_product_oldcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_shift_product_oldcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_shift_product_oldcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_product_oldcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_shift_product_oldcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_oldcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_shift_product_oldcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_shift_product_oldcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_shift_product_oldcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_product_oldcoefficientscoefficientdiagonal)=pfc_left_shift_product_oldcoefficientscoefficientdiagonalterm*pfc_right_shift_product_oldcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_oldcoefficientscoefficientsum fs_v_pfc_shift_product_oldcoefficientscoefficientsum. ((((exists fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_start. fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_start. fs_u_pfc_shift_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_terminal. fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_shift_product_oldcoefficientscoefficient) = S ((S (S (pfc_index_shift_product_oldcoefficients))) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_terminal. fs_u_pfc_shift_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_shift_product_oldcoefficients))) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum) + (pfc_natural_sum_shift_product_oldcoefficientscoefficient))) /\ forall fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps = S (pfc_index_shift_product_oldcoefficients)) -> exists fs_a_pfc_shift_product_oldcoefficientscoefficientsum_body_steps fs_r_pfc_shift_product_oldcoefficientscoefficientsum_body_steps fs_s_pfc_shift_product_oldcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_shift_product_oldcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_product_oldcoefficientscoefficient)) /\ exists fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_shift_product_oldcoefficientscoefficient = fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_product_oldcoefficientscoefficient) + (fs_a_pfc_shift_product_oldcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_shift_product_oldcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_shift_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum) + (fs_r_pfc_shift_product_oldcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_shift_product_oldcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_shift_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum) + (fs_s_pfc_shift_product_oldcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_shift_product_oldcoefficientscoefficientsum_body_steps = fs_r_pfc_shift_product_oldcoefficientscoefficientsum_body_steps + fs_a_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_oldcoefficientscoefficientresiduebound. pfa_gap_shift_product_oldcoefficientscoefficientresiduebound + S (pfc_value_shift_product_oldcoefficients) = (p)) /\ ((exists pfa_offset_left_shift_product_oldcoefficientscoefficientresiduecongruence pfa_offset_right_shift_product_oldcoefficientscoefficientresiduecongruence. (pfc_natural_sum_shift_product_oldcoefficientscoefficient) + (p) * pfa_offset_left_shift_product_oldcoefficientscoefficientresiduecongruence = (pfc_value_shift_product_oldcoefficients) + (p) * pfa_offset_right_shift_product_oldcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_shift_product_newleft. (exists fom_gap_pfp_shift_product_newleft_index_bound. fom_gap_pfp_shift_product_newleft_index_bound + S (fom_index_pfp_shift_product_newleft) = L) -> exists fom_value_pfp_shift_product_newleft. ((((exists fom_beta_height_pfp_shift_product_newleft_entry. fom_beta_height_pfp_shift_product_newleft_entry + S (fom_value_pfp_shift_product_newleft) = S ((S (fom_index_pfp_shift_product_newleft)) * ac)) /\ exists fom_beta_quotient_pfp_shift_product_newleft_entry. ab = fom_beta_quotient_pfp_shift_product_newleft_entry * S ((S (fom_index_pfp_shift_product_newleft)) * ac) + (fom_value_pfp_shift_product_newleft))) /\ (exists fom_gap_pfp_shift_product_newleft_value_bound. fom_gap_pfp_shift_product_newleft_value_bound + S (fom_value_pfp_shift_product_newleft) = p))) /\ (((forall fom_index_pfp_shift_product_newright. (exists fom_gap_pfp_shift_product_newright_index_bound. fom_gap_pfp_shift_product_newright_index_bound + S (fom_index_pfp_shift_product_newright) = S M) -> exists fom_value_pfp_shift_product_newright. ((((exists fom_beta_height_pfp_shift_product_newright_entry. fom_beta_height_pfp_shift_product_newright_entry + S (fom_value_pfp_shift_product_newright) = S ((S (fom_index_pfp_shift_product_newright)) * BC)) /\ exists fom_beta_quotient_pfp_shift_product_newright_entry. BB = fom_beta_quotient_pfp_shift_product_newright_entry * S ((S (fom_index_pfp_shift_product_newright)) * BC) + (fom_value_pfp_shift_product_newright))) /\ (exists fom_gap_pfp_shift_product_newright_value_bound. fom_gap_pfp_shift_product_newright_value_bound + S (fom_value_pfp_shift_product_newright) = p))) /\ (((((((L)=0 \/ (S M)=0) /\ (((K)=0)))) \/ (((~((L)=0)) /\ (((~((S M)=0)) /\ (((L)+(S M)=S (K)))))))) /\ ((forall pfc_index_shift_product_newcoefficients. (exists pfa_gap_shift_product_newcoefficientsbound. pfa_gap_shift_product_newcoefficientsbound + S (pfc_index_shift_product_newcoefficients) = (K)) -> exists pfc_value_shift_product_newcoefficients. ((((exists ff_h_pfp_shift_product_newcoefficientsentry. ff_h_pfp_shift_product_newcoefficientsentry + S (pfc_value_shift_product_newcoefficients) = S ((S (pfc_index_shift_product_newcoefficients)) * dc)) /\ exists ff_q_pfp_shift_product_newcoefficientsentry. db = ff_q_pfp_shift_product_newcoefficientsentry * S ((S (pfc_index_shift_product_newcoefficients)) * dc) + (pfc_value_shift_product_newcoefficients))) /\ ((exists pfc_terms_code_shift_product_newcoefficientscoefficient pfc_terms_scale_shift_product_newcoefficientscoefficient pfc_natural_sum_shift_product_newcoefficientscoefficient. ((forall pfc_index_shift_product_newcoefficientscoefficientdiagonal. (exists pfa_gap_shift_product_newcoefficientscoefficientdiagonalbound. pfa_gap_shift_product_newcoefficientscoefficientdiagonalbound + S (pfc_index_shift_product_newcoefficientscoefficientdiagonal) = (S (pfc_index_shift_product_newcoefficients))) -> exists pfc_value_shift_product_newcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_shift_product_newcoefficientscoefficientdiagonalentry. ff_h_pfp_shift_product_newcoefficientscoefficientdiagonalentry + S (pfc_value_shift_product_newcoefficientscoefficientdiagonal) = S ((S (pfc_index_shift_product_newcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_product_newcoefficientscoefficient)) /\ exists ff_q_pfp_shift_product_newcoefficientscoefficientdiagonalentry. pfc_terms_code_shift_product_newcoefficientscoefficient = ff_q_pfp_shift_product_newcoefficientscoefficientdiagonalentry * S ((S (pfc_index_shift_product_newcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_product_newcoefficientscoefficient) + (pfc_value_shift_product_newcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_shift_product_newcoefficientscoefficientdiagonalterm pfc_left_shift_product_newcoefficientscoefficientdiagonalterm pfc_right_shift_product_newcoefficientscoefficientdiagonalterm. (((pfc_index_shift_product_newcoefficientscoefficientdiagonal)+pfc_complement_shift_product_newcoefficientscoefficientdiagonalterm=(pfc_index_shift_product_newcoefficients)) /\ ((((((exists pfa_gap_shift_product_newcoefficientscoefficientdiagonaltermleftinside. pfa_gap_shift_product_newcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_shift_product_newcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_newcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_shift_product_newcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_shift_product_newcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_shift_product_newcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_newcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_product_newcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_shift_product_newcoefficientscoefficientdiagonal)) * ac) + (pfc_left_shift_product_newcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_newcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_shift_product_newcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_product_newcoefficientscoefficientdiagonal)) /\ (((pfc_left_shift_product_newcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_newcoefficientscoefficientdiagonaltermrightinside. pfa_gap_shift_product_newcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_shift_product_newcoefficientscoefficientdiagonalterm) = (S M)) /\ ((((exists ff_h_pfp_shift_product_newcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_shift_product_newcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_shift_product_newcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_shift_product_newcoefficientscoefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_shift_product_newcoefficientscoefficientdiagonaltermrightentry. BB = ff_q_pfp_shift_product_newcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_product_newcoefficientscoefficientdiagonalterm)) * BC) + (pfc_right_shift_product_newcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_newcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_shift_product_newcoefficientscoefficientdiagonaltermrightoutside+(S M)=(pfc_complement_shift_product_newcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_shift_product_newcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_product_newcoefficientscoefficientdiagonal)=pfc_left_shift_product_newcoefficientscoefficientdiagonalterm*pfc_right_shift_product_newcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_newcoefficientscoefficientsum fs_v_pfc_shift_product_newcoefficientscoefficientsum. ((((exists fs_h_pfc_shift_product_newcoefficientscoefficientsum_body_start. fs_h_pfc_shift_product_newcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_product_newcoefficientscoefficientsum_body_start. fs_u_pfc_shift_product_newcoefficientscoefficientsum = fs_q_pfc_shift_product_newcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_newcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_newcoefficientscoefficientsum_body_terminal. fs_h_pfc_shift_product_newcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_shift_product_newcoefficientscoefficient) = S ((S (S (pfc_index_shift_product_newcoefficients))) * fs_v_pfc_shift_product_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_product_newcoefficientscoefficientsum_body_terminal. fs_u_pfc_shift_product_newcoefficientscoefficientsum = fs_q_pfc_shift_product_newcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_shift_product_newcoefficients))) * fs_v_pfc_shift_product_newcoefficientscoefficientsum) + (pfc_natural_sum_shift_product_newcoefficientscoefficient))) /\ forall fs_i_pfc_shift_product_newcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_shift_product_newcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_shift_product_newcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_shift_product_newcoefficientscoefficientsum_body_steps = S (pfc_index_shift_product_newcoefficients)) -> exists fs_a_pfc_shift_product_newcoefficientscoefficientsum_body_steps fs_r_pfc_shift_product_newcoefficientscoefficientsum_body_steps fs_s_pfc_shift_product_newcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_shift_product_newcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_shift_product_newcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_shift_product_newcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_newcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_product_newcoefficientscoefficient)) /\ exists fs_q_pfc_shift_product_newcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_shift_product_newcoefficientscoefficient = fs_q_pfc_shift_product_newcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_newcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_product_newcoefficientscoefficient) + (fs_a_pfc_shift_product_newcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_newcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_shift_product_newcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_shift_product_newcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_product_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_product_newcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_shift_product_newcoefficientscoefficientsum = fs_q_pfc_shift_product_newcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_product_newcoefficientscoefficientsum) + (fs_r_pfc_shift_product_newcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_newcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_shift_product_newcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_shift_product_newcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_product_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_product_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_product_newcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_shift_product_newcoefficientscoefficientsum = fs_q_pfc_shift_product_newcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_product_newcoefficientscoefficientsum) + (fs_s_pfc_shift_product_newcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_shift_product_newcoefficientscoefficientsum_body_steps = fs_r_pfc_shift_product_newcoefficientscoefficientsum_body_steps + fs_a_pfc_shift_product_newcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_newcoefficientscoefficientresiduebound. pfa_gap_shift_product_newcoefficientscoefficientresiduebound + S (pfc_value_shift_product_newcoefficients) = (p)) /\ ((exists pfa_offset_left_shift_product_newcoefficientscoefficientresiduecongruence pfa_offset_right_shift_product_newcoefficientscoefficientresiduecongruence. (pfc_natural_sum_shift_product_newcoefficientscoefficient) + (p) * pfa_offset_left_shift_product_newcoefficientscoefficientresiduecongruence = (pfc_value_shift_product_newcoefficients) + (p) * pfa_offset_right_shift_product_newcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((K=S N) /\ ((((forall mdr_i_pfp_shift_product_resultprefix mdr_a_pfp_shift_product_resultprefix. (exists mdr_gap_pfp_shift_product_resultprefixb. mdr_gap_pfp_shift_product_resultprefixb + S (mdr_i_pfp_shift_product_resultprefix) = (N)) -> (((exists ff_h_mdr_pfp_shift_product_resultprefixo. ff_h_mdr_pfp_shift_product_resultprefixo + S (mdr_a_pfp_shift_product_resultprefix) = S ((S (mdr_i_pfp_shift_product_resultprefix)) * cc)) /\ exists ff_q_mdr_pfp_shift_product_resultprefixo. cb = ff_q_mdr_pfp_shift_product_resultprefixo * S ((S (mdr_i_pfp_shift_product_resultprefix)) * cc) + (mdr_a_pfp_shift_product_resultprefix))) -> (((exists ff_h_mdr_pfp_shift_product_resultprefixn. ff_h_mdr_pfp_shift_product_resultprefixn + S (mdr_a_pfp_shift_product_resultprefix) = S ((S (mdr_i_pfp_shift_product_resultprefix)) * dc)) /\ exists ff_q_mdr_pfp_shift_product_resultprefixn. db = ff_q_mdr_pfp_shift_product_resultprefixn * S ((S (mdr_i_pfp_shift_product_resultprefix)) * dc) + (mdr_a_pfp_shift_product_resultprefix)))) /\ ((((exists ff_h_pfp_shift_product_resultlast. ff_h_pfp_shift_product_resultlast + S (0) = S ((S (N)) * dc)) /\ exists ff_q_pfp_shift_product_resultlast. db = ff_q_pfp_shift_product_resultlast * S ((S (N)) * dc) + (0)))))))))

Constructive proof overview

Generated structural guide

For actual nonempty factors, the shifted product is exactly a trailing-zero extension of the original decoded product, at its proved successor length.

The unchanged tactic script uses 7 declared prerequisites and contains 156 exact native proof lines.

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

Proof neighborhood

Direct dependencies

PG0009 polynomial_product_length_shift_right_nonempty prime_field_convolution_prefix_entry Alpha theorem; checked-use authorized PG0008 prime_field_convolution_coefficient_shift_right_iff le_succ Alpha theorem; checked-use authorized prime_field_convolution_coefficient_functional Alpha theorem; checked-use authorized le_refl Alpha theorem; checked-use authorized prime_field_polynomial_convolution_outside_zero Alpha theorem; checked-use authorized

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

156 script commands · 34 reading checkpoints · 11 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 (2)

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 L
  5. L5
    intro bb
  6. L6
    intro bc
  7. L7
    intro M
  8. L8
    intro cb
  9. L9
    intro cc
  10. L10
    intro N
02Fix variables and assumptionsL11–20

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

  1. L11
    intro BB
  2. L12
    intro BC
  3. L13
    intro db
  4. L14
    intro dc
  5. L15
    intro K
  6. L16
    intro hp
  7. L17
    intro hL
  8. L18
    intro hM
  9. L19
    intro hs
  10. L20
    intro hc
03Fix variables and assumptionsL21–21

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

  1. L21
    intro hd
04Establish hwholeL22–23

Establish this local claim before using it. It is not an additional assumption.

  1. L22
    have hwhole : FpPolyProduct(p,ab,ac,L,bb,bc,M,cb,cc,N)Definitions: FpPolyProduct
  2. L23
    exact hc
05Separate the logical casesL24–29

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

  1. L24
    cases hc
  2. L25
    cases hc_right
  3. L26
    cases hc_right_right
  4. L27
    cases hd
  5. L28
    cases hd_right
  6. L29
    cases hd_right_right
06Establish hkL30–39

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

  1. L30
    have hk : K=S N
  2. L31
    specialize polynomial_product_length_shift_right_nonempty (L)
  3. L32
    specialize polynomial_product_length_shift_right_nonempty (M)
  4. L33
    specialize polynomial_product_length_shift_right_nonempty (N)
  5. L34
    specialize polynomial_product_length_shift_right_nonempty (K)
  6. L35
    apply polynomial_product_length_shift_right_nonempty
  7. L36
    exact hc_right_right_left
  8. L37
    exact hL
  9. L38
    exact hM
  10. L39
    exact hd_right_right_left
07Separate the logical casesL40–40

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

  1. L40
    split
08Use earlier factsL41–41

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

  1. L41
    exact hk
09Separate the logical casesL42–42

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

  1. L42
    split
10Fix variables and assumptionsL43–46

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

  1. L43
    intro i
  2. L44
    intro a
  3. L45
    intro hi
  4. L46
    intro ha
11Establish hcaL47–56

Establish this local claim before using it. It is not an additional assumption.

  1. L47
    have hca : FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,i,a)Definitions: FpConvolutionCoefficient
  2. L48
    specialize prime_field_convolution_prefix_entry (p)
  3. L49
    specialize prime_field_convolution_prefix_entry (ab)
  4. L50
    specialize prime_field_convolution_prefix_entry (ac)
  5. L51
    specialize prime_field_convolution_prefix_entry (L)
  6. L52
    specialize prime_field_convolution_prefix_entry (bb)
  7. L53
    specialize prime_field_convolution_prefix_entry (bc)
  8. L54
    specialize prime_field_convolution_prefix_entry (M)
  9. L55
    specialize prime_field_convolution_prefix_entry (cb)
  10. L56
    specialize prime_field_convolution_prefix_entry (cc)
12Use earlier factsL57–63

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

  1. L57
    specialize prime_field_convolution_prefix_entry (N)
  2. L58
    specialize prime_field_convolution_prefix_entry (i)
  3. L59
    specialize prime_field_convolution_prefix_entry (a)
  4. L60
    apply prime_field_convolution_prefix_entry
  5. L61
    exact hc_right_right_right
  6. L62
    exact hi
  7. L63
    exact ha
13Establish hdaL64–64

Establish this local claim before using it. It is not an additional assumption.

  1. L64
    have hda : FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,a)Definitions: FpConvolutionCoefficient
14Establish hiffL65–74

Establish this local claim before using it. It is not an additional assumption.

  1. L65
    have hiff : (FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,i,a) → FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,a)) ∧ (FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,a) → FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,i,a))Definitions: FpConvolutionCoefficient
  2. L66
    specialize prime_field_convolution_coefficient_shift_right_iff (p)
  3. L67
    specialize prime_field_convolution_coefficient_shift_right_iff (ab)
  4. L68
    specialize prime_field_convolution_coefficient_shift_right_iff (ac)
  5. L69
    specialize prime_field_convolution_coefficient_shift_right_iff (L)
  6. L70
    specialize prime_field_convolution_coefficient_shift_right_iff (bb)
  7. L71
    specialize prime_field_convolution_coefficient_shift_right_iff (bc)
  8. L72
    specialize prime_field_convolution_coefficient_shift_right_iff (M)
  9. L73
    specialize prime_field_convolution_coefficient_shift_right_iff (BB)
  10. L74
    specialize prime_field_convolution_coefficient_shift_right_iff (BC)
15Use earlier factsL75–78

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

  1. L75
    specialize prime_field_convolution_coefficient_shift_right_iff (i)
  2. L76
    specialize prime_field_convolution_coefficient_shift_right_iff (a)
  3. L77
    apply prime_field_convolution_coefficient_shift_right_iff
  4. L78
    exact hs
16Separate the logical casesL79–79

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

  1. L79
    cases hiff
17Use earlier factsL80–81

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

  1. L80
    apply hiff_left
  2. L81
    exact hca
18Establish hvL82–89

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

  1. L82
    have hv : ∃ r. BetaAt(db,dc,i,r) ∧ FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,i,r)Definitions: FpConvolutionCoefficientBetaAt
  2. L83
    specialize hd_right_right_right (i)
  3. L84
    apply hd_right_right_right
  4. L85
    rewrite hk
  5. L86
    specialize le_succ (S i)
  6. L87
    specialize le_succ (N)
  7. L88
    apply le_succ
  8. L89
    exact hi
19Separate the logical casesL90–91

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

  1. L90
    cases hv
  2. L91
    cases hv_witness
20Establish heqL92–101

Establish this local claim before using it. It is not an additional assumption.

  1. L92
    have heq : a=x
  2. L93
    specialize prime_field_convolution_coefficient_functional (p)
  3. L94
    specialize prime_field_convolution_coefficient_functional (ab)
  4. L95
    specialize prime_field_convolution_coefficient_functional (ac)
  5. L96
    specialize prime_field_convolution_coefficient_functional (L)
  6. L97
    specialize prime_field_convolution_coefficient_functional (BB)
  7. L98
    specialize prime_field_convolution_coefficient_functional (BC)
  8. L99
    specialize prime_field_convolution_coefficient_functional (S M)
  9. L100
    specialize prime_field_convolution_coefficient_functional (i)
  10. L101
    specialize prime_field_convolution_coefficient_functional (a)
21Use earlier factsL102–105

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

  1. L102
    specialize prime_field_convolution_coefficient_functional (x)
  2. L103
    apply prime_field_convolution_coefficient_functional
  3. L104
    exact hda
  4. L105
    exact hv_witness_right
22Calculate and transport equalitiesL106–107

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L106
    rewrite heq
  2. L107
    rewrite heq
23Use earlier factsL108–108

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

  1. L108
    exact hv_witness_left
24Establish hvL109–114

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

  1. L109
    have hv : ∃ r. BetaAt(db,dc,N,r) ∧ FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,N,r)Definitions: FpConvolutionCoefficientBetaAt
  2. L110
    specialize hd_right_right_right (N)
  3. L111
    apply hd_right_right_right
  4. L112
    rewrite hk
  5. L113
    specialize le_refl (S N)
  6. L114
    apply le_refl
25Separate the logical casesL115–116

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

  1. L115
    cases hv
  2. L116
    cases hv_witness
26Establish hcoL117–117

Establish this local claim before using it. It is not an additional assumption.

  1. L117
    have hco : FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,N,x)Definitions: FpConvolutionCoefficient
27Establish hiffL118–127

Establish this local claim before using it. It is not an additional assumption.

  1. L118
    have hiff : (FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,N,x) → FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,N,x)) ∧ (FpConvolutionCoefficient(p,ab,ac,L,BB,BC,S M,N,x) → FpConvolutionCoefficient(p,ab,ac,L,bb,bc,M,N,x))Definitions: FpConvolutionCoefficient
  2. L119
    specialize prime_field_convolution_coefficient_shift_right_iff (p)
  3. L120
    specialize prime_field_convolution_coefficient_shift_right_iff (ab)
  4. L121
    specialize prime_field_convolution_coefficient_shift_right_iff (ac)
  5. L122
    specialize prime_field_convolution_coefficient_shift_right_iff (L)
  6. L123
    specialize prime_field_convolution_coefficient_shift_right_iff (bb)
  7. L124
    specialize prime_field_convolution_coefficient_shift_right_iff (bc)
  8. L125
    specialize prime_field_convolution_coefficient_shift_right_iff (M)
  9. L126
    specialize prime_field_convolution_coefficient_shift_right_iff (BB)
  10. L127
    specialize prime_field_convolution_coefficient_shift_right_iff (BC)
28Use earlier factsL128–131

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

  1. L128
    specialize prime_field_convolution_coefficient_shift_right_iff (N)
  2. L129
    specialize prime_field_convolution_coefficient_shift_right_iff (x)
  3. L130
    apply prime_field_convolution_coefficient_shift_right_iff
  4. L131
    exact hs
29Separate the logical casesL132–132

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

  1. L132
    cases hiff
30Use earlier factsL133–134

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

  1. L133
    apply hiff_right
  2. L134
    exact hv_witness_right
31Establish hzL135–144

Establish this local claim before using it. It is not an additional assumption.

  1. L135
    have hz : x=0
  2. L136
    specialize prime_field_polynomial_convolution_outside_zero (p)
  3. L137
    specialize prime_field_polynomial_convolution_outside_zero (ab)
  4. L138
    specialize prime_field_polynomial_convolution_outside_zero (ac)
  5. L139
    specialize prime_field_polynomial_convolution_outside_zero (L)
  6. L140
    specialize prime_field_polynomial_convolution_outside_zero (bb)
  7. L141
    specialize prime_field_polynomial_convolution_outside_zero (bc)
  8. L142
    specialize prime_field_polynomial_convolution_outside_zero (M)
  9. L143
    specialize prime_field_polynomial_convolution_outside_zero (cb)
  10. L144
    specialize prime_field_polynomial_convolution_outside_zero (cc)
32Use earlier factsL145–153

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

  1. L145
    specialize prime_field_polynomial_convolution_outside_zero (N)
  2. L146
    specialize prime_field_polynomial_convolution_outside_zero (N)
  3. L147
    specialize prime_field_polynomial_convolution_outside_zero (x)
  4. L148
    apply prime_field_polynomial_convolution_outside_zero
  5. L149
    exact hp
  6. L150
    exact hwhole
  7. L151
    specialize le_refl (N)
  8. L152
    apply le_refl
  9. L153
    exact hco
33Calculate and transport equalitiesL154–155

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L154
    rewrite hz at hv_witness_left
  2. L155
    rewrite hz at hv_witness_left
34Use earlier factsL156–156

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

  1. L156
    exact hv_witness_left

Library-wide reading audit

Original exact command ledger · 156 lines
  1. 0001intro p
  2. 0002intro ab
  3. 0003intro ac
  4. 0004intro L
  5. 0005intro bb
  6. 0006intro bc
  7. 0007intro M
  8. 0008intro cb
  9. 0009intro cc
  10. 0010intro N
  11. 0011intro BB
  12. 0012intro BC
  13. 0013intro db
  14. 0014intro dc
  15. 0015intro K
  16. 0016intro hp
  17. 0017intro hL
  18. 0018intro hM
  19. 0019intro hs
  20. 0020intro hc
  21. 0021intro hd
  22. 0022have hwhole : ((forall fom_index_pfp_shift_product_oldleft. (exists fom_gap_pfp_shift_product_oldleft_index_bound. fom_gap_pfp_shift_product_oldleft_index_bound + S (fom_index_pfp_shift_product_oldleft) = L) -> exists fom_value_pfp_shift_product_oldleft. ((((exists fom_beta_height_pfp_shift_product_oldleft_entry. fom_beta_height_pfp_shift_product_oldleft_entry + S (fom_value_pfp_shift_product_oldleft) = S ((S (fom_index_pfp_shift_product_oldleft)) * ac)) /\ exists fom_beta_quotient_pfp_shift_product_oldleft_entry. ab = fom_beta_quotient_pfp_shift_product_oldleft_entry * S ((S (fom_index_pfp_shift_product_oldleft)) * ac) + (fom_value_pfp_shift_product_oldleft))) /\ (exists fom_gap_pfp_shift_product_oldleft_value_bound. fom_gap_pfp_shift_product_oldleft_value_bound + S (fom_value_pfp_shift_product_oldleft) = p))) /\ (((forall fom_index_pfp_shift_product_oldright. (exists fom_gap_pfp_shift_product_oldright_index_bound. fom_gap_pfp_shift_product_oldright_index_bound + S (fom_index_pfp_shift_product_oldright) = M) -> exists fom_value_pfp_shift_product_oldright. ((((exists fom_beta_height_pfp_shift_product_oldright_entry. fom_beta_height_pfp_shift_product_oldright_entry + S (fom_value_pfp_shift_product_oldright) = S ((S (fom_index_pfp_shift_product_oldright)) * bc)) /\ exists fom_beta_quotient_pfp_shift_product_oldright_entry. bb = fom_beta_quotient_pfp_shift_product_oldright_entry * S ((S (fom_index_pfp_shift_product_oldright)) * bc) + (fom_value_pfp_shift_product_oldright))) /\ (exists fom_gap_pfp_shift_product_oldright_value_bound. fom_gap_pfp_shift_product_oldright_value_bound + S (fom_value_pfp_shift_product_oldright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_shift_product_oldcoefficients. (exists pfa_gap_shift_product_oldcoefficientsbound. pfa_gap_shift_product_oldcoefficientsbound + S (pfc_index_shift_product_oldcoefficients) = (N)) -> exists pfc_value_shift_product_oldcoefficients. ((((exists ff_h_pfp_shift_product_oldcoefficientsentry. ff_h_pfp_shift_product_oldcoefficientsentry + S (pfc_value_shift_product_oldcoefficients) = S ((S (pfc_index_shift_product_oldcoefficients)) * cc)) /\ exists ff_q_pfp_shift_product_oldcoefficientsentry. cb = ff_q_pfp_shift_product_oldcoefficientsentry * S ((S (pfc_index_shift_product_oldcoefficients)) * cc) + (pfc_value_shift_product_oldcoefficients))) /\ ((exists pfc_terms_code_shift_product_oldcoefficientscoefficient pfc_terms_scale_shift_product_oldcoefficientscoefficient pfc_natural_sum_shift_product_oldcoefficientscoefficient. ((forall pfc_index_shift_product_oldcoefficientscoefficientdiagonal. (exists pfa_gap_shift_product_oldcoefficientscoefficientdiagonalbound. pfa_gap_shift_product_oldcoefficientscoefficientdiagonalbound + S (pfc_index_shift_product_oldcoefficientscoefficientdiagonal) = (S (pfc_index_shift_product_oldcoefficients))) -> exists pfc_value_shift_product_oldcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_shift_product_oldcoefficientscoefficientdiagonalentry. ff_h_pfp_shift_product_oldcoefficientscoefficientdiagonalentry + S (pfc_value_shift_product_oldcoefficientscoefficientdiagonal) = S ((S (pfc_index_shift_product_oldcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_product_oldcoefficientscoefficient)) /\ exists ff_q_pfp_shift_product_oldcoefficientscoefficientdiagonalentry. pfc_terms_code_shift_product_oldcoefficientscoefficient = ff_q_pfp_shift_product_oldcoefficientscoefficientdiagonalentry * S ((S (pfc_index_shift_product_oldcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_product_oldcoefficientscoefficient) + (pfc_value_shift_product_oldcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_shift_product_oldcoefficientscoefficientdiagonalterm pfc_left_shift_product_oldcoefficientscoefficientdiagonalterm pfc_right_shift_product_oldcoefficientscoefficientdiagonalterm. (((pfc_index_shift_product_oldcoefficientscoefficientdiagonal)+pfc_complement_shift_product_oldcoefficientscoefficientdiagonalterm=(pfc_index_shift_product_oldcoefficients)) /\ ((((((exists pfa_gap_shift_product_oldcoefficientscoefficientdiagonaltermleftinside. pfa_gap_shift_product_oldcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_shift_product_oldcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_oldcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_shift_product_oldcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_shift_product_oldcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_shift_product_oldcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_oldcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_product_oldcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_shift_product_oldcoefficientscoefficientdiagonal)) * ac) + (pfc_left_shift_product_oldcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_oldcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_shift_product_oldcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_product_oldcoefficientscoefficientdiagonal)) /\ (((pfc_left_shift_product_oldcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_oldcoefficientscoefficientdiagonaltermrightinside. pfa_gap_shift_product_oldcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_shift_product_oldcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_shift_product_oldcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_shift_product_oldcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_shift_product_oldcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_shift_product_oldcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_shift_product_oldcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_shift_product_oldcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_product_oldcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_shift_product_oldcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_oldcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_shift_product_oldcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_shift_product_oldcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_shift_product_oldcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_product_oldcoefficientscoefficientdiagonal)=pfc_left_shift_product_oldcoefficientscoefficientdiagonalterm*pfc_right_shift_product_oldcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_oldcoefficientscoefficientsum fs_v_pfc_shift_product_oldcoefficientscoefficientsum. ((((exists fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_start. fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_start. fs_u_pfc_shift_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_terminal. fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_shift_product_oldcoefficientscoefficient) = S ((S (S (pfc_index_shift_product_oldcoefficients))) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_terminal. fs_u_pfc_shift_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_shift_product_oldcoefficients))) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum) + (pfc_natural_sum_shift_product_oldcoefficientscoefficient))) /\ forall fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps = S (pfc_index_shift_product_oldcoefficients)) -> exists fs_a_pfc_shift_product_oldcoefficientscoefficientsum_body_steps fs_r_pfc_shift_product_oldcoefficientscoefficientsum_body_steps fs_s_pfc_shift_product_oldcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_shift_product_oldcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_product_oldcoefficientscoefficient)) /\ exists fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_shift_product_oldcoefficientscoefficient = fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_product_oldcoefficientscoefficient) + (fs_a_pfc_shift_product_oldcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_shift_product_oldcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_shift_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum) + (fs_r_pfc_shift_product_oldcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_shift_product_oldcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_shift_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_product_oldcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_product_oldcoefficientscoefficientsum) + (fs_s_pfc_shift_product_oldcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_shift_product_oldcoefficientscoefficientsum_body_steps = fs_r_pfc_shift_product_oldcoefficientscoefficientsum_body_steps + fs_a_pfc_shift_product_oldcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_oldcoefficientscoefficientresiduebound. pfa_gap_shift_product_oldcoefficientscoefficientresiduebound + S (pfc_value_shift_product_oldcoefficients) = (p)) /\ ((exists pfa_offset_left_shift_product_oldcoefficientscoefficientresiduecongruence pfa_offset_right_shift_product_oldcoefficientscoefficientresiduecongruence. (pfc_natural_sum_shift_product_oldcoefficientscoefficient) + (p) * pfa_offset_left_shift_product_oldcoefficientscoefficientresiduecongruence = (pfc_value_shift_product_oldcoefficients) + (p) * pfa_offset_right_shift_product_oldcoefficientscoefficientresiduecongruence))))))))))))))))))
  23. 0023exact hc
  24. 0024cases hc
  25. 0025cases hc_right
  26. 0026cases hc_right_right
  27. 0027cases hd
  28. 0028cases hd_right
  29. 0029cases hd_right_right
  30. 0030have hk : K=S N
  31. 0031specialize polynomial_product_length_shift_right_nonempty (L)
  32. 0032specialize polynomial_product_length_shift_right_nonempty (M)
  33. 0033specialize polynomial_product_length_shift_right_nonempty (N)
  34. 0034specialize polynomial_product_length_shift_right_nonempty (K)
  35. 0035apply polynomial_product_length_shift_right_nonempty
  36. 0036exact hc_right_right_left
  37. 0037exact hL
  38. 0038exact hM
  39. 0039exact hd_right_right_left
  40. 0040split
  41. 0041exact hk
  42. 0042split
  43. 0043intro i
  44. 0044intro a
  45. 0045intro hi
  46. 0046intro ha
  47. 0047have hca : exists pfc_terms_code_shift_product_source_coefficient pfc_terms_scale_shift_product_source_coefficient pfc_natural_sum_shift_product_source_coefficient. ((forall pfc_index_shift_product_source_coefficientdiagonal. (exists pfa_gap_shift_product_source_coefficientdiagonalbound. pfa_gap_shift_product_source_coefficientdiagonalbound + S (pfc_index_shift_product_source_coefficientdiagonal) = (S (i))) -> exists pfc_value_shift_product_source_coefficientdiagonal. ((((exists ff_h_pfp_shift_product_source_coefficientdiagonalentry. ff_h_pfp_shift_product_source_coefficientdiagonalentry + S (pfc_value_shift_product_source_coefficientdiagonal) = S ((S (pfc_index_shift_product_source_coefficientdiagonal)) * pfc_terms_scale_shift_product_source_coefficient)) /\ exists ff_q_pfp_shift_product_source_coefficientdiagonalentry. pfc_terms_code_shift_product_source_coefficient = ff_q_pfp_shift_product_source_coefficientdiagonalentry * S ((S (pfc_index_shift_product_source_coefficientdiagonal)) * pfc_terms_scale_shift_product_source_coefficient) + (pfc_value_shift_product_source_coefficientdiagonal))) /\ ((exists pfc_complement_shift_product_source_coefficientdiagonalterm pfc_left_shift_product_source_coefficientdiagonalterm pfc_right_shift_product_source_coefficientdiagonalterm. (((pfc_index_shift_product_source_coefficientdiagonal)+pfc_complement_shift_product_source_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_shift_product_source_coefficientdiagonaltermleftinside. pfa_gap_shift_product_source_coefficientdiagonaltermleftinside + S (pfc_index_shift_product_source_coefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_source_coefficientdiagonaltermleftentry. ff_h_pfp_shift_product_source_coefficientdiagonaltermleftentry + S (pfc_left_shift_product_source_coefficientdiagonalterm) = S ((S (pfc_index_shift_product_source_coefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_source_coefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_product_source_coefficientdiagonaltermleftentry * S ((S (pfc_index_shift_product_source_coefficientdiagonal)) * ac) + (pfc_left_shift_product_source_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_source_coefficientdiagonaltermleftoutside. pfc_gap_shift_product_source_coefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_product_source_coefficientdiagonal)) /\ (((pfc_left_shift_product_source_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_source_coefficientdiagonaltermrightinside. pfa_gap_shift_product_source_coefficientdiagonaltermrightinside + S (pfc_complement_shift_product_source_coefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_shift_product_source_coefficientdiagonaltermrightentry. ff_h_pfp_shift_product_source_coefficientdiagonaltermrightentry + S (pfc_right_shift_product_source_coefficientdiagonalterm) = S ((S (pfc_complement_shift_product_source_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_shift_product_source_coefficientdiagonaltermrightentry. bb = ff_q_pfp_shift_product_source_coefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_product_source_coefficientdiagonalterm)) * bc) + (pfc_right_shift_product_source_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_source_coefficientdiagonaltermrightoutside. pfc_gap_shift_product_source_coefficientdiagonaltermrightoutside+(M)=(pfc_complement_shift_product_source_coefficientdiagonalterm)) /\ (((pfc_right_shift_product_source_coefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_product_source_coefficientdiagonal)=pfc_left_shift_product_source_coefficientdiagonalterm*pfc_right_shift_product_source_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_source_coefficientsum fs_v_pfc_shift_product_source_coefficientsum. ((((exists fs_h_pfc_shift_product_source_coefficientsum_body_start. fs_h_pfc_shift_product_source_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_source_coefficientsum)) /\ exists fs_q_pfc_shift_product_source_coefficientsum_body_start. fs_u_pfc_shift_product_source_coefficientsum = fs_q_pfc_shift_product_source_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_source_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_source_coefficientsum_body_terminal. fs_h_pfc_shift_product_source_coefficientsum_body_terminal + S (pfc_natural_sum_shift_product_source_coefficient) = S ((S (S (i))) * fs_v_pfc_shift_product_source_coefficientsum)) /\ exists fs_q_pfc_shift_product_source_coefficientsum_body_terminal. fs_u_pfc_shift_product_source_coefficientsum = fs_q_pfc_shift_product_source_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_shift_product_source_coefficientsum) + (pfc_natural_sum_shift_product_source_coefficient))) /\ forall fs_i_pfc_shift_product_source_coefficientsum_body_steps. (exists fs_lt_pfc_shift_product_source_coefficientsum_body_steps_bound. fs_lt_pfc_shift_product_source_coefficientsum_body_steps_bound + S fs_i_pfc_shift_product_source_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_shift_product_source_coefficientsum_body_steps fs_r_pfc_shift_product_source_coefficientsum_body_steps fs_s_pfc_shift_product_source_coefficientsum_body_steps. ((((exists fs_h_pfc_shift_product_source_coefficientsum_body_steps_summand. fs_h_pfc_shift_product_source_coefficientsum_body_steps_summand + S (fs_a_pfc_shift_product_source_coefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_source_coefficientsum_body_steps)) * pfc_terms_scale_shift_product_source_coefficient)) /\ exists fs_q_pfc_shift_product_source_coefficientsum_body_steps_summand. pfc_terms_code_shift_product_source_coefficient = fs_q_pfc_shift_product_source_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_source_coefficientsum_body_steps)) * pfc_terms_scale_shift_product_source_coefficient) + (fs_a_pfc_shift_product_source_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_source_coefficientsum_body_steps_partial. fs_h_pfc_shift_product_source_coefficientsum_body_steps_partial + S (fs_r_pfc_shift_product_source_coefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_source_coefficientsum_body_steps)) * fs_v_pfc_shift_product_source_coefficientsum)) /\ exists fs_q_pfc_shift_product_source_coefficientsum_body_steps_partial. fs_u_pfc_shift_product_source_coefficientsum = fs_q_pfc_shift_product_source_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_source_coefficientsum_body_steps)) * fs_v_pfc_shift_product_source_coefficientsum) + (fs_r_pfc_shift_product_source_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_source_coefficientsum_body_steps_successor. fs_h_pfc_shift_product_source_coefficientsum_body_steps_successor + S (fs_s_pfc_shift_product_source_coefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_product_source_coefficientsum_body_steps)) * fs_v_pfc_shift_product_source_coefficientsum)) /\ exists fs_q_pfc_shift_product_source_coefficientsum_body_steps_successor. fs_u_pfc_shift_product_source_coefficientsum = fs_q_pfc_shift_product_source_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_source_coefficientsum_body_steps)) * fs_v_pfc_shift_product_source_coefficientsum) + (fs_s_pfc_shift_product_source_coefficientsum_body_steps))) /\ fs_s_pfc_shift_product_source_coefficientsum_body_steps = fs_r_pfc_shift_product_source_coefficientsum_body_steps + fs_a_pfc_shift_product_source_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_source_coefficientresiduebound. pfa_gap_shift_product_source_coefficientresiduebound + S (a) = (p)) /\ ((exists pfa_offset_left_shift_product_source_coefficientresiduecongruence pfa_offset_right_shift_product_source_coefficientresiduecongruence. (pfc_natural_sum_shift_product_source_coefficient) + (p) * pfa_offset_left_shift_product_source_coefficientresiduecongruence = (a) + (p) * pfa_offset_right_shift_product_source_coefficientresiduecongruence))))))))
  48. 0048specialize prime_field_convolution_prefix_entry (p)
  49. 0049specialize prime_field_convolution_prefix_entry (ab)
  50. 0050specialize prime_field_convolution_prefix_entry (ac)
  51. 0051specialize prime_field_convolution_prefix_entry (L)
  52. 0052specialize prime_field_convolution_prefix_entry (bb)
  53. 0053specialize prime_field_convolution_prefix_entry (bc)
  54. 0054specialize prime_field_convolution_prefix_entry (M)
  55. 0055specialize prime_field_convolution_prefix_entry (cb)
  56. 0056specialize prime_field_convolution_prefix_entry (cc)
  57. 0057specialize prime_field_convolution_prefix_entry (N)
  58. 0058specialize prime_field_convolution_prefix_entry (i)
  59. 0059specialize prime_field_convolution_prefix_entry (a)
  60. 0060apply prime_field_convolution_prefix_entry
  61. 0061exact hc_right_right_right
  62. 0062exact hi
  63. 0063exact ha
  64. 0064have hda : exists pfc_terms_code_shift_product_transported_coefficient pfc_terms_scale_shift_product_transported_coefficient pfc_natural_sum_shift_product_transported_coefficient. ((forall pfc_index_shift_product_transported_coefficientdiagonal. (exists pfa_gap_shift_product_transported_coefficientdiagonalbound. pfa_gap_shift_product_transported_coefficientdiagonalbound + S (pfc_index_shift_product_transported_coefficientdiagonal) = (S (i))) -> exists pfc_value_shift_product_transported_coefficientdiagonal. ((((exists ff_h_pfp_shift_product_transported_coefficientdiagonalentry. ff_h_pfp_shift_product_transported_coefficientdiagonalentry + S (pfc_value_shift_product_transported_coefficientdiagonal) = S ((S (pfc_index_shift_product_transported_coefficientdiagonal)) * pfc_terms_scale_shift_product_transported_coefficient)) /\ exists ff_q_pfp_shift_product_transported_coefficientdiagonalentry. pfc_terms_code_shift_product_transported_coefficient = ff_q_pfp_shift_product_transported_coefficientdiagonalentry * S ((S (pfc_index_shift_product_transported_coefficientdiagonal)) * pfc_terms_scale_shift_product_transported_coefficient) + (pfc_value_shift_product_transported_coefficientdiagonal))) /\ ((exists pfc_complement_shift_product_transported_coefficientdiagonalterm pfc_left_shift_product_transported_coefficientdiagonalterm pfc_right_shift_product_transported_coefficientdiagonalterm. (((pfc_index_shift_product_transported_coefficientdiagonal)+pfc_complement_shift_product_transported_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_shift_product_transported_coefficientdiagonaltermleftinside. pfa_gap_shift_product_transported_coefficientdiagonaltermleftinside + S (pfc_index_shift_product_transported_coefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_transported_coefficientdiagonaltermleftentry. ff_h_pfp_shift_product_transported_coefficientdiagonaltermleftentry + S (pfc_left_shift_product_transported_coefficientdiagonalterm) = S ((S (pfc_index_shift_product_transported_coefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_transported_coefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_product_transported_coefficientdiagonaltermleftentry * S ((S (pfc_index_shift_product_transported_coefficientdiagonal)) * ac) + (pfc_left_shift_product_transported_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_transported_coefficientdiagonaltermleftoutside. pfc_gap_shift_product_transported_coefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_product_transported_coefficientdiagonal)) /\ (((pfc_left_shift_product_transported_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_transported_coefficientdiagonaltermrightinside. pfa_gap_shift_product_transported_coefficientdiagonaltermrightinside + S (pfc_complement_shift_product_transported_coefficientdiagonalterm) = (S M)) /\ ((((exists ff_h_pfp_shift_product_transported_coefficientdiagonaltermrightentry. ff_h_pfp_shift_product_transported_coefficientdiagonaltermrightentry + S (pfc_right_shift_product_transported_coefficientdiagonalterm) = S ((S (pfc_complement_shift_product_transported_coefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_shift_product_transported_coefficientdiagonaltermrightentry. BB = ff_q_pfp_shift_product_transported_coefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_product_transported_coefficientdiagonalterm)) * BC) + (pfc_right_shift_product_transported_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_transported_coefficientdiagonaltermrightoutside. pfc_gap_shift_product_transported_coefficientdiagonaltermrightoutside+(S M)=(pfc_complement_shift_product_transported_coefficientdiagonalterm)) /\ (((pfc_right_shift_product_transported_coefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_product_transported_coefficientdiagonal)=pfc_left_shift_product_transported_coefficientdiagonalterm*pfc_right_shift_product_transported_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_transported_coefficientsum fs_v_pfc_shift_product_transported_coefficientsum. ((((exists fs_h_pfc_shift_product_transported_coefficientsum_body_start. fs_h_pfc_shift_product_transported_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_transported_coefficientsum)) /\ exists fs_q_pfc_shift_product_transported_coefficientsum_body_start. fs_u_pfc_shift_product_transported_coefficientsum = fs_q_pfc_shift_product_transported_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_transported_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_transported_coefficientsum_body_terminal. fs_h_pfc_shift_product_transported_coefficientsum_body_terminal + S (pfc_natural_sum_shift_product_transported_coefficient) = S ((S (S (i))) * fs_v_pfc_shift_product_transported_coefficientsum)) /\ exists fs_q_pfc_shift_product_transported_coefficientsum_body_terminal. fs_u_pfc_shift_product_transported_coefficientsum = fs_q_pfc_shift_product_transported_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_shift_product_transported_coefficientsum) + (pfc_natural_sum_shift_product_transported_coefficient))) /\ forall fs_i_pfc_shift_product_transported_coefficientsum_body_steps. (exists fs_lt_pfc_shift_product_transported_coefficientsum_body_steps_bound. fs_lt_pfc_shift_product_transported_coefficientsum_body_steps_bound + S fs_i_pfc_shift_product_transported_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_shift_product_transported_coefficientsum_body_steps fs_r_pfc_shift_product_transported_coefficientsum_body_steps fs_s_pfc_shift_product_transported_coefficientsum_body_steps. ((((exists fs_h_pfc_shift_product_transported_coefficientsum_body_steps_summand. fs_h_pfc_shift_product_transported_coefficientsum_body_steps_summand + S (fs_a_pfc_shift_product_transported_coefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_transported_coefficientsum_body_steps)) * pfc_terms_scale_shift_product_transported_coefficient)) /\ exists fs_q_pfc_shift_product_transported_coefficientsum_body_steps_summand. pfc_terms_code_shift_product_transported_coefficient = fs_q_pfc_shift_product_transported_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_transported_coefficientsum_body_steps)) * pfc_terms_scale_shift_product_transported_coefficient) + (fs_a_pfc_shift_product_transported_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_transported_coefficientsum_body_steps_partial. fs_h_pfc_shift_product_transported_coefficientsum_body_steps_partial + S (fs_r_pfc_shift_product_transported_coefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_transported_coefficientsum_body_steps)) * fs_v_pfc_shift_product_transported_coefficientsum)) /\ exists fs_q_pfc_shift_product_transported_coefficientsum_body_steps_partial. fs_u_pfc_shift_product_transported_coefficientsum = fs_q_pfc_shift_product_transported_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_transported_coefficientsum_body_steps)) * fs_v_pfc_shift_product_transported_coefficientsum) + (fs_r_pfc_shift_product_transported_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_transported_coefficientsum_body_steps_successor. fs_h_pfc_shift_product_transported_coefficientsum_body_steps_successor + S (fs_s_pfc_shift_product_transported_coefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_product_transported_coefficientsum_body_steps)) * fs_v_pfc_shift_product_transported_coefficientsum)) /\ exists fs_q_pfc_shift_product_transported_coefficientsum_body_steps_successor. fs_u_pfc_shift_product_transported_coefficientsum = fs_q_pfc_shift_product_transported_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_transported_coefficientsum_body_steps)) * fs_v_pfc_shift_product_transported_coefficientsum) + (fs_s_pfc_shift_product_transported_coefficientsum_body_steps))) /\ fs_s_pfc_shift_product_transported_coefficientsum_body_steps = fs_r_pfc_shift_product_transported_coefficientsum_body_steps + fs_a_pfc_shift_product_transported_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_transported_coefficientresiduebound. pfa_gap_shift_product_transported_coefficientresiduebound + S (a) = (p)) /\ ((exists pfa_offset_left_shift_product_transported_coefficientresiduecongruence pfa_offset_right_shift_product_transported_coefficientresiduecongruence. (pfc_natural_sum_shift_product_transported_coefficient) + (p) * pfa_offset_left_shift_product_transported_coefficientresiduecongruence = (a) + (p) * pfa_offset_right_shift_product_transported_coefficientresiduecongruence))))))))
  65. 0065have hiff : (((exists pfc_terms_code_shift_product_transport_old pfc_terms_scale_shift_product_transport_old pfc_natural_sum_shift_product_transport_old. ((forall pfc_index_shift_product_transport_olddiagonal. (exists pfa_gap_shift_product_transport_olddiagonalbound. pfa_gap_shift_product_transport_olddiagonalbound + S (pfc_index_shift_product_transport_olddiagonal) = (S (i))) -> exists pfc_value_shift_product_transport_olddiagonal. ((((exists ff_h_pfp_shift_product_transport_olddiagonalentry. ff_h_pfp_shift_product_transport_olddiagonalentry + S (pfc_value_shift_product_transport_olddiagonal) = S ((S (pfc_index_shift_product_transport_olddiagonal)) * pfc_terms_scale_shift_product_transport_old)) /\ exists ff_q_pfp_shift_product_transport_olddiagonalentry. pfc_terms_code_shift_product_transport_old = ff_q_pfp_shift_product_transport_olddiagonalentry * S ((S (pfc_index_shift_product_transport_olddiagonal)) * pfc_terms_scale_shift_product_transport_old) + (pfc_value_shift_product_transport_olddiagonal))) /\ ((exists pfc_complement_shift_product_transport_olddiagonalterm pfc_left_shift_product_transport_olddiagonalterm pfc_right_shift_product_transport_olddiagonalterm. (((pfc_index_shift_product_transport_olddiagonal)+pfc_complement_shift_product_transport_olddiagonalterm=(i)) /\ ((((((exists pfa_gap_shift_product_transport_olddiagonaltermleftinside. pfa_gap_shift_product_transport_olddiagonaltermleftinside + S (pfc_index_shift_product_transport_olddiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_transport_olddiagonaltermleftentry. ff_h_pfp_shift_product_transport_olddiagonaltermleftentry + S (pfc_left_shift_product_transport_olddiagonalterm) = S ((S (pfc_index_shift_product_transport_olddiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_transport_olddiagonaltermleftentry. ab = ff_q_pfp_shift_product_transport_olddiagonaltermleftentry * S ((S (pfc_index_shift_product_transport_olddiagonal)) * ac) + (pfc_left_shift_product_transport_olddiagonalterm)))))) \/ (((exists pfc_gap_shift_product_transport_olddiagonaltermleftoutside. pfc_gap_shift_product_transport_olddiagonaltermleftoutside+(L)=(pfc_index_shift_product_transport_olddiagonal)) /\ (((pfc_left_shift_product_transport_olddiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_transport_olddiagonaltermrightinside. pfa_gap_shift_product_transport_olddiagonaltermrightinside + S (pfc_complement_shift_product_transport_olddiagonalterm) = (M)) /\ ((((exists ff_h_pfp_shift_product_transport_olddiagonaltermrightentry. ff_h_pfp_shift_product_transport_olddiagonaltermrightentry + S (pfc_right_shift_product_transport_olddiagonalterm) = S ((S (pfc_complement_shift_product_transport_olddiagonalterm)) * bc)) /\ exists ff_q_pfp_shift_product_transport_olddiagonaltermrightentry. bb = ff_q_pfp_shift_product_transport_olddiagonaltermrightentry * S ((S (pfc_complement_shift_product_transport_olddiagonalterm)) * bc) + (pfc_right_shift_product_transport_olddiagonalterm)))))) \/ (((exists pfc_gap_shift_product_transport_olddiagonaltermrightoutside. pfc_gap_shift_product_transport_olddiagonaltermrightoutside+(M)=(pfc_complement_shift_product_transport_olddiagonalterm)) /\ (((pfc_right_shift_product_transport_olddiagonalterm)=0))))) /\ (((pfc_value_shift_product_transport_olddiagonal)=pfc_left_shift_product_transport_olddiagonalterm*pfc_right_shift_product_transport_olddiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_transport_oldsum fs_v_pfc_shift_product_transport_oldsum. ((((exists fs_h_pfc_shift_product_transport_oldsum_body_start. fs_h_pfc_shift_product_transport_oldsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_transport_oldsum)) /\ exists fs_q_pfc_shift_product_transport_oldsum_body_start. fs_u_pfc_shift_product_transport_oldsum = fs_q_pfc_shift_product_transport_oldsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_transport_oldsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_transport_oldsum_body_terminal. fs_h_pfc_shift_product_transport_oldsum_body_terminal + S (pfc_natural_sum_shift_product_transport_old) = S ((S (S (i))) * fs_v_pfc_shift_product_transport_oldsum)) /\ exists fs_q_pfc_shift_product_transport_oldsum_body_terminal. fs_u_pfc_shift_product_transport_oldsum = fs_q_pfc_shift_product_transport_oldsum_body_terminal * S ((S (S (i))) * fs_v_pfc_shift_product_transport_oldsum) + (pfc_natural_sum_shift_product_transport_old))) /\ forall fs_i_pfc_shift_product_transport_oldsum_body_steps. (exists fs_lt_pfc_shift_product_transport_oldsum_body_steps_bound. fs_lt_pfc_shift_product_transport_oldsum_body_steps_bound + S fs_i_pfc_shift_product_transport_oldsum_body_steps = S (i)) -> exists fs_a_pfc_shift_product_transport_oldsum_body_steps fs_r_pfc_shift_product_transport_oldsum_body_steps fs_s_pfc_shift_product_transport_oldsum_body_steps. ((((exists fs_h_pfc_shift_product_transport_oldsum_body_steps_summand. fs_h_pfc_shift_product_transport_oldsum_body_steps_summand + S (fs_a_pfc_shift_product_transport_oldsum_body_steps) = S ((S (fs_i_pfc_shift_product_transport_oldsum_body_steps)) * pfc_terms_scale_shift_product_transport_old)) /\ exists fs_q_pfc_shift_product_transport_oldsum_body_steps_summand. pfc_terms_code_shift_product_transport_old = fs_q_pfc_shift_product_transport_oldsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_transport_oldsum_body_steps)) * pfc_terms_scale_shift_product_transport_old) + (fs_a_pfc_shift_product_transport_oldsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_transport_oldsum_body_steps_partial. fs_h_pfc_shift_product_transport_oldsum_body_steps_partial + S (fs_r_pfc_shift_product_transport_oldsum_body_steps) = S ((S (fs_i_pfc_shift_product_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_transport_oldsum)) /\ exists fs_q_pfc_shift_product_transport_oldsum_body_steps_partial. fs_u_pfc_shift_product_transport_oldsum = fs_q_pfc_shift_product_transport_oldsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_transport_oldsum) + (fs_r_pfc_shift_product_transport_oldsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_transport_oldsum_body_steps_successor. fs_h_pfc_shift_product_transport_oldsum_body_steps_successor + S (fs_s_pfc_shift_product_transport_oldsum_body_steps) = S ((S (S fs_i_pfc_shift_product_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_transport_oldsum)) /\ exists fs_q_pfc_shift_product_transport_oldsum_body_steps_successor. fs_u_pfc_shift_product_transport_oldsum = fs_q_pfc_shift_product_transport_oldsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_transport_oldsum) + (fs_s_pfc_shift_product_transport_oldsum_body_steps))) /\ fs_s_pfc_shift_product_transport_oldsum_body_steps = fs_r_pfc_shift_product_transport_oldsum_body_steps + fs_a_pfc_shift_product_transport_oldsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_transport_oldresiduebound. pfa_gap_shift_product_transport_oldresiduebound + S (a) = (p)) /\ ((exists pfa_offset_left_shift_product_transport_oldresiduecongruence pfa_offset_right_shift_product_transport_oldresiduecongruence. (pfc_natural_sum_shift_product_transport_old) + (p) * pfa_offset_left_shift_product_transport_oldresiduecongruence = (a) + (p) * pfa_offset_right_shift_product_transport_oldresiduecongruence))))))))) -> (exists pfc_terms_code_shift_product_transport_new pfc_terms_scale_shift_product_transport_new pfc_natural_sum_shift_product_transport_new. ((forall pfc_index_shift_product_transport_newdiagonal. (exists pfa_gap_shift_product_transport_newdiagonalbound. pfa_gap_shift_product_transport_newdiagonalbound + S (pfc_index_shift_product_transport_newdiagonal) = (S (i))) -> exists pfc_value_shift_product_transport_newdiagonal. ((((exists ff_h_pfp_shift_product_transport_newdiagonalentry. ff_h_pfp_shift_product_transport_newdiagonalentry + S (pfc_value_shift_product_transport_newdiagonal) = S ((S (pfc_index_shift_product_transport_newdiagonal)) * pfc_terms_scale_shift_product_transport_new)) /\ exists ff_q_pfp_shift_product_transport_newdiagonalentry. pfc_terms_code_shift_product_transport_new = ff_q_pfp_shift_product_transport_newdiagonalentry * S ((S (pfc_index_shift_product_transport_newdiagonal)) * pfc_terms_scale_shift_product_transport_new) + (pfc_value_shift_product_transport_newdiagonal))) /\ ((exists pfc_complement_shift_product_transport_newdiagonalterm pfc_left_shift_product_transport_newdiagonalterm pfc_right_shift_product_transport_newdiagonalterm. (((pfc_index_shift_product_transport_newdiagonal)+pfc_complement_shift_product_transport_newdiagonalterm=(i)) /\ ((((((exists pfa_gap_shift_product_transport_newdiagonaltermleftinside. pfa_gap_shift_product_transport_newdiagonaltermleftinside + S (pfc_index_shift_product_transport_newdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_transport_newdiagonaltermleftentry. ff_h_pfp_shift_product_transport_newdiagonaltermleftentry + S (pfc_left_shift_product_transport_newdiagonalterm) = S ((S (pfc_index_shift_product_transport_newdiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_transport_newdiagonaltermleftentry. ab = ff_q_pfp_shift_product_transport_newdiagonaltermleftentry * S ((S (pfc_index_shift_product_transport_newdiagonal)) * ac) + (pfc_left_shift_product_transport_newdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_transport_newdiagonaltermleftoutside. pfc_gap_shift_product_transport_newdiagonaltermleftoutside+(L)=(pfc_index_shift_product_transport_newdiagonal)) /\ (((pfc_left_shift_product_transport_newdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_transport_newdiagonaltermrightinside. pfa_gap_shift_product_transport_newdiagonaltermrightinside + S (pfc_complement_shift_product_transport_newdiagonalterm) = (S M)) /\ ((((exists ff_h_pfp_shift_product_transport_newdiagonaltermrightentry. ff_h_pfp_shift_product_transport_newdiagonaltermrightentry + S (pfc_right_shift_product_transport_newdiagonalterm) = S ((S (pfc_complement_shift_product_transport_newdiagonalterm)) * BC)) /\ exists ff_q_pfp_shift_product_transport_newdiagonaltermrightentry. BB = ff_q_pfp_shift_product_transport_newdiagonaltermrightentry * S ((S (pfc_complement_shift_product_transport_newdiagonalterm)) * BC) + (pfc_right_shift_product_transport_newdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_transport_newdiagonaltermrightoutside. pfc_gap_shift_product_transport_newdiagonaltermrightoutside+(S M)=(pfc_complement_shift_product_transport_newdiagonalterm)) /\ (((pfc_right_shift_product_transport_newdiagonalterm)=0))))) /\ (((pfc_value_shift_product_transport_newdiagonal)=pfc_left_shift_product_transport_newdiagonalterm*pfc_right_shift_product_transport_newdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_transport_newsum fs_v_pfc_shift_product_transport_newsum. ((((exists fs_h_pfc_shift_product_transport_newsum_body_start. fs_h_pfc_shift_product_transport_newsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_transport_newsum)) /\ exists fs_q_pfc_shift_product_transport_newsum_body_start. fs_u_pfc_shift_product_transport_newsum = fs_q_pfc_shift_product_transport_newsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_transport_newsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_transport_newsum_body_terminal. fs_h_pfc_shift_product_transport_newsum_body_terminal + S (pfc_natural_sum_shift_product_transport_new) = S ((S (S (i))) * fs_v_pfc_shift_product_transport_newsum)) /\ exists fs_q_pfc_shift_product_transport_newsum_body_terminal. fs_u_pfc_shift_product_transport_newsum = fs_q_pfc_shift_product_transport_newsum_body_terminal * S ((S (S (i))) * fs_v_pfc_shift_product_transport_newsum) + (pfc_natural_sum_shift_product_transport_new))) /\ forall fs_i_pfc_shift_product_transport_newsum_body_steps. (exists fs_lt_pfc_shift_product_transport_newsum_body_steps_bound. fs_lt_pfc_shift_product_transport_newsum_body_steps_bound + S fs_i_pfc_shift_product_transport_newsum_body_steps = S (i)) -> exists fs_a_pfc_shift_product_transport_newsum_body_steps fs_r_pfc_shift_product_transport_newsum_body_steps fs_s_pfc_shift_product_transport_newsum_body_steps. ((((exists fs_h_pfc_shift_product_transport_newsum_body_steps_summand. fs_h_pfc_shift_product_transport_newsum_body_steps_summand + S (fs_a_pfc_shift_product_transport_newsum_body_steps) = S ((S (fs_i_pfc_shift_product_transport_newsum_body_steps)) * pfc_terms_scale_shift_product_transport_new)) /\ exists fs_q_pfc_shift_product_transport_newsum_body_steps_summand. pfc_terms_code_shift_product_transport_new = fs_q_pfc_shift_product_transport_newsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_transport_newsum_body_steps)) * pfc_terms_scale_shift_product_transport_new) + (fs_a_pfc_shift_product_transport_newsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_transport_newsum_body_steps_partial. fs_h_pfc_shift_product_transport_newsum_body_steps_partial + S (fs_r_pfc_shift_product_transport_newsum_body_steps) = S ((S (fs_i_pfc_shift_product_transport_newsum_body_steps)) * fs_v_pfc_shift_product_transport_newsum)) /\ exists fs_q_pfc_shift_product_transport_newsum_body_steps_partial. fs_u_pfc_shift_product_transport_newsum = fs_q_pfc_shift_product_transport_newsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_transport_newsum_body_steps)) * fs_v_pfc_shift_product_transport_newsum) + (fs_r_pfc_shift_product_transport_newsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_transport_newsum_body_steps_successor. fs_h_pfc_shift_product_transport_newsum_body_steps_successor + S (fs_s_pfc_shift_product_transport_newsum_body_steps) = S ((S (S fs_i_pfc_shift_product_transport_newsum_body_steps)) * fs_v_pfc_shift_product_transport_newsum)) /\ exists fs_q_pfc_shift_product_transport_newsum_body_steps_successor. fs_u_pfc_shift_product_transport_newsum = fs_q_pfc_shift_product_transport_newsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_transport_newsum_body_steps)) * fs_v_pfc_shift_product_transport_newsum) + (fs_s_pfc_shift_product_transport_newsum_body_steps))) /\ fs_s_pfc_shift_product_transport_newsum_body_steps = fs_r_pfc_shift_product_transport_newsum_body_steps + fs_a_pfc_shift_product_transport_newsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_transport_newresiduebound. pfa_gap_shift_product_transport_newresiduebound + S (a) = (p)) /\ ((exists pfa_offset_left_shift_product_transport_newresiduecongruence pfa_offset_right_shift_product_transport_newresiduecongruence. (pfc_natural_sum_shift_product_transport_new) + (p) * pfa_offset_left_shift_product_transport_newresiduecongruence = (a) + (p) * pfa_offset_right_shift_product_transport_newresiduecongruence)))))))))) /\ (((exists pfc_terms_code_shift_product_transport_new pfc_terms_scale_shift_product_transport_new pfc_natural_sum_shift_product_transport_new. ((forall pfc_index_shift_product_transport_newdiagonal. (exists pfa_gap_shift_product_transport_newdiagonalbound. pfa_gap_shift_product_transport_newdiagonalbound + S (pfc_index_shift_product_transport_newdiagonal) = (S (i))) -> exists pfc_value_shift_product_transport_newdiagonal. ((((exists ff_h_pfp_shift_product_transport_newdiagonalentry. ff_h_pfp_shift_product_transport_newdiagonalentry + S (pfc_value_shift_product_transport_newdiagonal) = S ((S (pfc_index_shift_product_transport_newdiagonal)) * pfc_terms_scale_shift_product_transport_new)) /\ exists ff_q_pfp_shift_product_transport_newdiagonalentry. pfc_terms_code_shift_product_transport_new = ff_q_pfp_shift_product_transport_newdiagonalentry * S ((S (pfc_index_shift_product_transport_newdiagonal)) * pfc_terms_scale_shift_product_transport_new) + (pfc_value_shift_product_transport_newdiagonal))) /\ ((exists pfc_complement_shift_product_transport_newdiagonalterm pfc_left_shift_product_transport_newdiagonalterm pfc_right_shift_product_transport_newdiagonalterm. (((pfc_index_shift_product_transport_newdiagonal)+pfc_complement_shift_product_transport_newdiagonalterm=(i)) /\ ((((((exists pfa_gap_shift_product_transport_newdiagonaltermleftinside. pfa_gap_shift_product_transport_newdiagonaltermleftinside + S (pfc_index_shift_product_transport_newdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_transport_newdiagonaltermleftentry. ff_h_pfp_shift_product_transport_newdiagonaltermleftentry + S (pfc_left_shift_product_transport_newdiagonalterm) = S ((S (pfc_index_shift_product_transport_newdiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_transport_newdiagonaltermleftentry. ab = ff_q_pfp_shift_product_transport_newdiagonaltermleftentry * S ((S (pfc_index_shift_product_transport_newdiagonal)) * ac) + (pfc_left_shift_product_transport_newdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_transport_newdiagonaltermleftoutside. pfc_gap_shift_product_transport_newdiagonaltermleftoutside+(L)=(pfc_index_shift_product_transport_newdiagonal)) /\ (((pfc_left_shift_product_transport_newdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_transport_newdiagonaltermrightinside. pfa_gap_shift_product_transport_newdiagonaltermrightinside + S (pfc_complement_shift_product_transport_newdiagonalterm) = (S M)) /\ ((((exists ff_h_pfp_shift_product_transport_newdiagonaltermrightentry. ff_h_pfp_shift_product_transport_newdiagonaltermrightentry + S (pfc_right_shift_product_transport_newdiagonalterm) = S ((S (pfc_complement_shift_product_transport_newdiagonalterm)) * BC)) /\ exists ff_q_pfp_shift_product_transport_newdiagonaltermrightentry. BB = ff_q_pfp_shift_product_transport_newdiagonaltermrightentry * S ((S (pfc_complement_shift_product_transport_newdiagonalterm)) * BC) + (pfc_right_shift_product_transport_newdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_transport_newdiagonaltermrightoutside. pfc_gap_shift_product_transport_newdiagonaltermrightoutside+(S M)=(pfc_complement_shift_product_transport_newdiagonalterm)) /\ (((pfc_right_shift_product_transport_newdiagonalterm)=0))))) /\ (((pfc_value_shift_product_transport_newdiagonal)=pfc_left_shift_product_transport_newdiagonalterm*pfc_right_shift_product_transport_newdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_transport_newsum fs_v_pfc_shift_product_transport_newsum. ((((exists fs_h_pfc_shift_product_transport_newsum_body_start. fs_h_pfc_shift_product_transport_newsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_transport_newsum)) /\ exists fs_q_pfc_shift_product_transport_newsum_body_start. fs_u_pfc_shift_product_transport_newsum = fs_q_pfc_shift_product_transport_newsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_transport_newsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_transport_newsum_body_terminal. fs_h_pfc_shift_product_transport_newsum_body_terminal + S (pfc_natural_sum_shift_product_transport_new) = S ((S (S (i))) * fs_v_pfc_shift_product_transport_newsum)) /\ exists fs_q_pfc_shift_product_transport_newsum_body_terminal. fs_u_pfc_shift_product_transport_newsum = fs_q_pfc_shift_product_transport_newsum_body_terminal * S ((S (S (i))) * fs_v_pfc_shift_product_transport_newsum) + (pfc_natural_sum_shift_product_transport_new))) /\ forall fs_i_pfc_shift_product_transport_newsum_body_steps. (exists fs_lt_pfc_shift_product_transport_newsum_body_steps_bound. fs_lt_pfc_shift_product_transport_newsum_body_steps_bound + S fs_i_pfc_shift_product_transport_newsum_body_steps = S (i)) -> exists fs_a_pfc_shift_product_transport_newsum_body_steps fs_r_pfc_shift_product_transport_newsum_body_steps fs_s_pfc_shift_product_transport_newsum_body_steps. ((((exists fs_h_pfc_shift_product_transport_newsum_body_steps_summand. fs_h_pfc_shift_product_transport_newsum_body_steps_summand + S (fs_a_pfc_shift_product_transport_newsum_body_steps) = S ((S (fs_i_pfc_shift_product_transport_newsum_body_steps)) * pfc_terms_scale_shift_product_transport_new)) /\ exists fs_q_pfc_shift_product_transport_newsum_body_steps_summand. pfc_terms_code_shift_product_transport_new = fs_q_pfc_shift_product_transport_newsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_transport_newsum_body_steps)) * pfc_terms_scale_shift_product_transport_new) + (fs_a_pfc_shift_product_transport_newsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_transport_newsum_body_steps_partial. fs_h_pfc_shift_product_transport_newsum_body_steps_partial + S (fs_r_pfc_shift_product_transport_newsum_body_steps) = S ((S (fs_i_pfc_shift_product_transport_newsum_body_steps)) * fs_v_pfc_shift_product_transport_newsum)) /\ exists fs_q_pfc_shift_product_transport_newsum_body_steps_partial. fs_u_pfc_shift_product_transport_newsum = fs_q_pfc_shift_product_transport_newsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_transport_newsum_body_steps)) * fs_v_pfc_shift_product_transport_newsum) + (fs_r_pfc_shift_product_transport_newsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_transport_newsum_body_steps_successor. fs_h_pfc_shift_product_transport_newsum_body_steps_successor + S (fs_s_pfc_shift_product_transport_newsum_body_steps) = S ((S (S fs_i_pfc_shift_product_transport_newsum_body_steps)) * fs_v_pfc_shift_product_transport_newsum)) /\ exists fs_q_pfc_shift_product_transport_newsum_body_steps_successor. fs_u_pfc_shift_product_transport_newsum = fs_q_pfc_shift_product_transport_newsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_transport_newsum_body_steps)) * fs_v_pfc_shift_product_transport_newsum) + (fs_s_pfc_shift_product_transport_newsum_body_steps))) /\ fs_s_pfc_shift_product_transport_newsum_body_steps = fs_r_pfc_shift_product_transport_newsum_body_steps + fs_a_pfc_shift_product_transport_newsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_transport_newresiduebound. pfa_gap_shift_product_transport_newresiduebound + S (a) = (p)) /\ ((exists pfa_offset_left_shift_product_transport_newresiduecongruence pfa_offset_right_shift_product_transport_newresiduecongruence. (pfc_natural_sum_shift_product_transport_new) + (p) * pfa_offset_left_shift_product_transport_newresiduecongruence = (a) + (p) * pfa_offset_right_shift_product_transport_newresiduecongruence))))))))) -> (exists pfc_terms_code_shift_product_transport_old pfc_terms_scale_shift_product_transport_old pfc_natural_sum_shift_product_transport_old. ((forall pfc_index_shift_product_transport_olddiagonal. (exists pfa_gap_shift_product_transport_olddiagonalbound. pfa_gap_shift_product_transport_olddiagonalbound + S (pfc_index_shift_product_transport_olddiagonal) = (S (i))) -> exists pfc_value_shift_product_transport_olddiagonal. ((((exists ff_h_pfp_shift_product_transport_olddiagonalentry. ff_h_pfp_shift_product_transport_olddiagonalentry + S (pfc_value_shift_product_transport_olddiagonal) = S ((S (pfc_index_shift_product_transport_olddiagonal)) * pfc_terms_scale_shift_product_transport_old)) /\ exists ff_q_pfp_shift_product_transport_olddiagonalentry. pfc_terms_code_shift_product_transport_old = ff_q_pfp_shift_product_transport_olddiagonalentry * S ((S (pfc_index_shift_product_transport_olddiagonal)) * pfc_terms_scale_shift_product_transport_old) + (pfc_value_shift_product_transport_olddiagonal))) /\ ((exists pfc_complement_shift_product_transport_olddiagonalterm pfc_left_shift_product_transport_olddiagonalterm pfc_right_shift_product_transport_olddiagonalterm. (((pfc_index_shift_product_transport_olddiagonal)+pfc_complement_shift_product_transport_olddiagonalterm=(i)) /\ ((((((exists pfa_gap_shift_product_transport_olddiagonaltermleftinside. pfa_gap_shift_product_transport_olddiagonaltermleftinside + S (pfc_index_shift_product_transport_olddiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_transport_olddiagonaltermleftentry. ff_h_pfp_shift_product_transport_olddiagonaltermleftentry + S (pfc_left_shift_product_transport_olddiagonalterm) = S ((S (pfc_index_shift_product_transport_olddiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_transport_olddiagonaltermleftentry. ab = ff_q_pfp_shift_product_transport_olddiagonaltermleftentry * S ((S (pfc_index_shift_product_transport_olddiagonal)) * ac) + (pfc_left_shift_product_transport_olddiagonalterm)))))) \/ (((exists pfc_gap_shift_product_transport_olddiagonaltermleftoutside. pfc_gap_shift_product_transport_olddiagonaltermleftoutside+(L)=(pfc_index_shift_product_transport_olddiagonal)) /\ (((pfc_left_shift_product_transport_olddiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_transport_olddiagonaltermrightinside. pfa_gap_shift_product_transport_olddiagonaltermrightinside + S (pfc_complement_shift_product_transport_olddiagonalterm) = (M)) /\ ((((exists ff_h_pfp_shift_product_transport_olddiagonaltermrightentry. ff_h_pfp_shift_product_transport_olddiagonaltermrightentry + S (pfc_right_shift_product_transport_olddiagonalterm) = S ((S (pfc_complement_shift_product_transport_olddiagonalterm)) * bc)) /\ exists ff_q_pfp_shift_product_transport_olddiagonaltermrightentry. bb = ff_q_pfp_shift_product_transport_olddiagonaltermrightentry * S ((S (pfc_complement_shift_product_transport_olddiagonalterm)) * bc) + (pfc_right_shift_product_transport_olddiagonalterm)))))) \/ (((exists pfc_gap_shift_product_transport_olddiagonaltermrightoutside. pfc_gap_shift_product_transport_olddiagonaltermrightoutside+(M)=(pfc_complement_shift_product_transport_olddiagonalterm)) /\ (((pfc_right_shift_product_transport_olddiagonalterm)=0))))) /\ (((pfc_value_shift_product_transport_olddiagonal)=pfc_left_shift_product_transport_olddiagonalterm*pfc_right_shift_product_transport_olddiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_transport_oldsum fs_v_pfc_shift_product_transport_oldsum. ((((exists fs_h_pfc_shift_product_transport_oldsum_body_start. fs_h_pfc_shift_product_transport_oldsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_transport_oldsum)) /\ exists fs_q_pfc_shift_product_transport_oldsum_body_start. fs_u_pfc_shift_product_transport_oldsum = fs_q_pfc_shift_product_transport_oldsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_transport_oldsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_transport_oldsum_body_terminal. fs_h_pfc_shift_product_transport_oldsum_body_terminal + S (pfc_natural_sum_shift_product_transport_old) = S ((S (S (i))) * fs_v_pfc_shift_product_transport_oldsum)) /\ exists fs_q_pfc_shift_product_transport_oldsum_body_terminal. fs_u_pfc_shift_product_transport_oldsum = fs_q_pfc_shift_product_transport_oldsum_body_terminal * S ((S (S (i))) * fs_v_pfc_shift_product_transport_oldsum) + (pfc_natural_sum_shift_product_transport_old))) /\ forall fs_i_pfc_shift_product_transport_oldsum_body_steps. (exists fs_lt_pfc_shift_product_transport_oldsum_body_steps_bound. fs_lt_pfc_shift_product_transport_oldsum_body_steps_bound + S fs_i_pfc_shift_product_transport_oldsum_body_steps = S (i)) -> exists fs_a_pfc_shift_product_transport_oldsum_body_steps fs_r_pfc_shift_product_transport_oldsum_body_steps fs_s_pfc_shift_product_transport_oldsum_body_steps. ((((exists fs_h_pfc_shift_product_transport_oldsum_body_steps_summand. fs_h_pfc_shift_product_transport_oldsum_body_steps_summand + S (fs_a_pfc_shift_product_transport_oldsum_body_steps) = S ((S (fs_i_pfc_shift_product_transport_oldsum_body_steps)) * pfc_terms_scale_shift_product_transport_old)) /\ exists fs_q_pfc_shift_product_transport_oldsum_body_steps_summand. pfc_terms_code_shift_product_transport_old = fs_q_pfc_shift_product_transport_oldsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_transport_oldsum_body_steps)) * pfc_terms_scale_shift_product_transport_old) + (fs_a_pfc_shift_product_transport_oldsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_transport_oldsum_body_steps_partial. fs_h_pfc_shift_product_transport_oldsum_body_steps_partial + S (fs_r_pfc_shift_product_transport_oldsum_body_steps) = S ((S (fs_i_pfc_shift_product_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_transport_oldsum)) /\ exists fs_q_pfc_shift_product_transport_oldsum_body_steps_partial. fs_u_pfc_shift_product_transport_oldsum = fs_q_pfc_shift_product_transport_oldsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_transport_oldsum) + (fs_r_pfc_shift_product_transport_oldsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_transport_oldsum_body_steps_successor. fs_h_pfc_shift_product_transport_oldsum_body_steps_successor + S (fs_s_pfc_shift_product_transport_oldsum_body_steps) = S ((S (S fs_i_pfc_shift_product_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_transport_oldsum)) /\ exists fs_q_pfc_shift_product_transport_oldsum_body_steps_successor. fs_u_pfc_shift_product_transport_oldsum = fs_q_pfc_shift_product_transport_oldsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_transport_oldsum) + (fs_s_pfc_shift_product_transport_oldsum_body_steps))) /\ fs_s_pfc_shift_product_transport_oldsum_body_steps = fs_r_pfc_shift_product_transport_oldsum_body_steps + fs_a_pfc_shift_product_transport_oldsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_transport_oldresiduebound. pfa_gap_shift_product_transport_oldresiduebound + S (a) = (p)) /\ ((exists pfa_offset_left_shift_product_transport_oldresiduecongruence pfa_offset_right_shift_product_transport_oldresiduecongruence. (pfc_natural_sum_shift_product_transport_old) + (p) * pfa_offset_left_shift_product_transport_oldresiduecongruence = (a) + (p) * pfa_offset_right_shift_product_transport_oldresiduecongruence))))))))))))
  66. 0066specialize prime_field_convolution_coefficient_shift_right_iff (p)
  67. 0067specialize prime_field_convolution_coefficient_shift_right_iff (ab)
  68. 0068specialize prime_field_convolution_coefficient_shift_right_iff (ac)
  69. 0069specialize prime_field_convolution_coefficient_shift_right_iff (L)
  70. 0070specialize prime_field_convolution_coefficient_shift_right_iff (bb)
  71. 0071specialize prime_field_convolution_coefficient_shift_right_iff (bc)
  72. 0072specialize prime_field_convolution_coefficient_shift_right_iff (M)
  73. 0073specialize prime_field_convolution_coefficient_shift_right_iff (BB)
  74. 0074specialize prime_field_convolution_coefficient_shift_right_iff (BC)
  75. 0075specialize prime_field_convolution_coefficient_shift_right_iff (i)
  76. 0076specialize prime_field_convolution_coefficient_shift_right_iff (a)
  77. 0077apply prime_field_convolution_coefficient_shift_right_iff
  78. 0078exact hs
  79. 0079cases hiff
  80. 0080apply hiff_left
  81. 0081exact hca
  82. 0082have hv : exists r. ((((exists ff_h_pfp_shift_product_chosen_entry. ff_h_pfp_shift_product_chosen_entry + S (r) = S ((S (i)) * dc)) /\ exists ff_q_pfp_shift_product_chosen_entry. db = ff_q_pfp_shift_product_chosen_entry * S ((S (i)) * dc) + (r))) /\ ((exists pfc_terms_code_shift_product_chosen_coefficient pfc_terms_scale_shift_product_chosen_coefficient pfc_natural_sum_shift_product_chosen_coefficient. ((forall pfc_index_shift_product_chosen_coefficientdiagonal. (exists pfa_gap_shift_product_chosen_coefficientdiagonalbound. pfa_gap_shift_product_chosen_coefficientdiagonalbound + S (pfc_index_shift_product_chosen_coefficientdiagonal) = (S (i))) -> exists pfc_value_shift_product_chosen_coefficientdiagonal. ((((exists ff_h_pfp_shift_product_chosen_coefficientdiagonalentry. ff_h_pfp_shift_product_chosen_coefficientdiagonalentry + S (pfc_value_shift_product_chosen_coefficientdiagonal) = S ((S (pfc_index_shift_product_chosen_coefficientdiagonal)) * pfc_terms_scale_shift_product_chosen_coefficient)) /\ exists ff_q_pfp_shift_product_chosen_coefficientdiagonalentry. pfc_terms_code_shift_product_chosen_coefficient = ff_q_pfp_shift_product_chosen_coefficientdiagonalentry * S ((S (pfc_index_shift_product_chosen_coefficientdiagonal)) * pfc_terms_scale_shift_product_chosen_coefficient) + (pfc_value_shift_product_chosen_coefficientdiagonal))) /\ ((exists pfc_complement_shift_product_chosen_coefficientdiagonalterm pfc_left_shift_product_chosen_coefficientdiagonalterm pfc_right_shift_product_chosen_coefficientdiagonalterm. (((pfc_index_shift_product_chosen_coefficientdiagonal)+pfc_complement_shift_product_chosen_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_shift_product_chosen_coefficientdiagonaltermleftinside. pfa_gap_shift_product_chosen_coefficientdiagonaltermleftinside + S (pfc_index_shift_product_chosen_coefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_chosen_coefficientdiagonaltermleftentry. ff_h_pfp_shift_product_chosen_coefficientdiagonaltermleftentry + S (pfc_left_shift_product_chosen_coefficientdiagonalterm) = S ((S (pfc_index_shift_product_chosen_coefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_chosen_coefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_product_chosen_coefficientdiagonaltermleftentry * S ((S (pfc_index_shift_product_chosen_coefficientdiagonal)) * ac) + (pfc_left_shift_product_chosen_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_chosen_coefficientdiagonaltermleftoutside. pfc_gap_shift_product_chosen_coefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_product_chosen_coefficientdiagonal)) /\ (((pfc_left_shift_product_chosen_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_chosen_coefficientdiagonaltermrightinside. pfa_gap_shift_product_chosen_coefficientdiagonaltermrightinside + S (pfc_complement_shift_product_chosen_coefficientdiagonalterm) = (S M)) /\ ((((exists ff_h_pfp_shift_product_chosen_coefficientdiagonaltermrightentry. ff_h_pfp_shift_product_chosen_coefficientdiagonaltermrightentry + S (pfc_right_shift_product_chosen_coefficientdiagonalterm) = S ((S (pfc_complement_shift_product_chosen_coefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_shift_product_chosen_coefficientdiagonaltermrightentry. BB = ff_q_pfp_shift_product_chosen_coefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_product_chosen_coefficientdiagonalterm)) * BC) + (pfc_right_shift_product_chosen_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_chosen_coefficientdiagonaltermrightoutside. pfc_gap_shift_product_chosen_coefficientdiagonaltermrightoutside+(S M)=(pfc_complement_shift_product_chosen_coefficientdiagonalterm)) /\ (((pfc_right_shift_product_chosen_coefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_product_chosen_coefficientdiagonal)=pfc_left_shift_product_chosen_coefficientdiagonalterm*pfc_right_shift_product_chosen_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_chosen_coefficientsum fs_v_pfc_shift_product_chosen_coefficientsum. ((((exists fs_h_pfc_shift_product_chosen_coefficientsum_body_start. fs_h_pfc_shift_product_chosen_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_chosen_coefficientsum)) /\ exists fs_q_pfc_shift_product_chosen_coefficientsum_body_start. fs_u_pfc_shift_product_chosen_coefficientsum = fs_q_pfc_shift_product_chosen_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_chosen_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_chosen_coefficientsum_body_terminal. fs_h_pfc_shift_product_chosen_coefficientsum_body_terminal + S (pfc_natural_sum_shift_product_chosen_coefficient) = S ((S (S (i))) * fs_v_pfc_shift_product_chosen_coefficientsum)) /\ exists fs_q_pfc_shift_product_chosen_coefficientsum_body_terminal. fs_u_pfc_shift_product_chosen_coefficientsum = fs_q_pfc_shift_product_chosen_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_shift_product_chosen_coefficientsum) + (pfc_natural_sum_shift_product_chosen_coefficient))) /\ forall fs_i_pfc_shift_product_chosen_coefficientsum_body_steps. (exists fs_lt_pfc_shift_product_chosen_coefficientsum_body_steps_bound. fs_lt_pfc_shift_product_chosen_coefficientsum_body_steps_bound + S fs_i_pfc_shift_product_chosen_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_shift_product_chosen_coefficientsum_body_steps fs_r_pfc_shift_product_chosen_coefficientsum_body_steps fs_s_pfc_shift_product_chosen_coefficientsum_body_steps. ((((exists fs_h_pfc_shift_product_chosen_coefficientsum_body_steps_summand. fs_h_pfc_shift_product_chosen_coefficientsum_body_steps_summand + S (fs_a_pfc_shift_product_chosen_coefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_chosen_coefficientsum_body_steps)) * pfc_terms_scale_shift_product_chosen_coefficient)) /\ exists fs_q_pfc_shift_product_chosen_coefficientsum_body_steps_summand. pfc_terms_code_shift_product_chosen_coefficient = fs_q_pfc_shift_product_chosen_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_chosen_coefficientsum_body_steps)) * pfc_terms_scale_shift_product_chosen_coefficient) + (fs_a_pfc_shift_product_chosen_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_chosen_coefficientsum_body_steps_partial. fs_h_pfc_shift_product_chosen_coefficientsum_body_steps_partial + S (fs_r_pfc_shift_product_chosen_coefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_chosen_coefficientsum_body_steps)) * fs_v_pfc_shift_product_chosen_coefficientsum)) /\ exists fs_q_pfc_shift_product_chosen_coefficientsum_body_steps_partial. fs_u_pfc_shift_product_chosen_coefficientsum = fs_q_pfc_shift_product_chosen_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_chosen_coefficientsum_body_steps)) * fs_v_pfc_shift_product_chosen_coefficientsum) + (fs_r_pfc_shift_product_chosen_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_chosen_coefficientsum_body_steps_successor. fs_h_pfc_shift_product_chosen_coefficientsum_body_steps_successor + S (fs_s_pfc_shift_product_chosen_coefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_product_chosen_coefficientsum_body_steps)) * fs_v_pfc_shift_product_chosen_coefficientsum)) /\ exists fs_q_pfc_shift_product_chosen_coefficientsum_body_steps_successor. fs_u_pfc_shift_product_chosen_coefficientsum = fs_q_pfc_shift_product_chosen_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_chosen_coefficientsum_body_steps)) * fs_v_pfc_shift_product_chosen_coefficientsum) + (fs_s_pfc_shift_product_chosen_coefficientsum_body_steps))) /\ fs_s_pfc_shift_product_chosen_coefficientsum_body_steps = fs_r_pfc_shift_product_chosen_coefficientsum_body_steps + fs_a_pfc_shift_product_chosen_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_chosen_coefficientresiduebound. pfa_gap_shift_product_chosen_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_shift_product_chosen_coefficientresiduecongruence pfa_offset_right_shift_product_chosen_coefficientresiduecongruence. (pfc_natural_sum_shift_product_chosen_coefficient) + (p) * pfa_offset_left_shift_product_chosen_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_shift_product_chosen_coefficientresiduecongruence)))))))))))
  83. 0083specialize hd_right_right_right (i)
  84. 0084apply hd_right_right_right
  85. 0085rewrite hk
  86. 0086specialize le_succ (S i)
  87. 0087specialize le_succ (N)
  88. 0088apply le_succ
  89. 0089exact hi
  90. 0090cases hv
  91. 0091cases hv_witness
  92. 0092have heq : a=x
  93. 0093specialize prime_field_convolution_coefficient_functional (p)
  94. 0094specialize prime_field_convolution_coefficient_functional (ab)
  95. 0095specialize prime_field_convolution_coefficient_functional (ac)
  96. 0096specialize prime_field_convolution_coefficient_functional (L)
  97. 0097specialize prime_field_convolution_coefficient_functional (BB)
  98. 0098specialize prime_field_convolution_coefficient_functional (BC)
  99. 0099specialize prime_field_convolution_coefficient_functional (S M)
  100. 0100specialize prime_field_convolution_coefficient_functional (i)
  101. 0101specialize prime_field_convolution_coefficient_functional (a)
  102. 0102specialize prime_field_convolution_coefficient_functional (x)
  103. 0103apply prime_field_convolution_coefficient_functional
  104. 0104exact hda
  105. 0105exact hv_witness_right
  106. 0106rewrite heq
  107. 0107rewrite heq
  108. 0108exact hv_witness_left
  109. 0109have hv : exists r. ((((exists ff_h_pfp_shift_product_last_entry. ff_h_pfp_shift_product_last_entry + S (r) = S ((S (N)) * dc)) /\ exists ff_q_pfp_shift_product_last_entry. db = ff_q_pfp_shift_product_last_entry * S ((S (N)) * dc) + (r))) /\ ((exists pfc_terms_code_shift_product_last_coefficient pfc_terms_scale_shift_product_last_coefficient pfc_natural_sum_shift_product_last_coefficient. ((forall pfc_index_shift_product_last_coefficientdiagonal. (exists pfa_gap_shift_product_last_coefficientdiagonalbound. pfa_gap_shift_product_last_coefficientdiagonalbound + S (pfc_index_shift_product_last_coefficientdiagonal) = (S (N))) -> exists pfc_value_shift_product_last_coefficientdiagonal. ((((exists ff_h_pfp_shift_product_last_coefficientdiagonalentry. ff_h_pfp_shift_product_last_coefficientdiagonalentry + S (pfc_value_shift_product_last_coefficientdiagonal) = S ((S (pfc_index_shift_product_last_coefficientdiagonal)) * pfc_terms_scale_shift_product_last_coefficient)) /\ exists ff_q_pfp_shift_product_last_coefficientdiagonalentry. pfc_terms_code_shift_product_last_coefficient = ff_q_pfp_shift_product_last_coefficientdiagonalentry * S ((S (pfc_index_shift_product_last_coefficientdiagonal)) * pfc_terms_scale_shift_product_last_coefficient) + (pfc_value_shift_product_last_coefficientdiagonal))) /\ ((exists pfc_complement_shift_product_last_coefficientdiagonalterm pfc_left_shift_product_last_coefficientdiagonalterm pfc_right_shift_product_last_coefficientdiagonalterm. (((pfc_index_shift_product_last_coefficientdiagonal)+pfc_complement_shift_product_last_coefficientdiagonalterm=(N)) /\ ((((((exists pfa_gap_shift_product_last_coefficientdiagonaltermleftinside. pfa_gap_shift_product_last_coefficientdiagonaltermleftinside + S (pfc_index_shift_product_last_coefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_last_coefficientdiagonaltermleftentry. ff_h_pfp_shift_product_last_coefficientdiagonaltermleftentry + S (pfc_left_shift_product_last_coefficientdiagonalterm) = S ((S (pfc_index_shift_product_last_coefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_last_coefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_product_last_coefficientdiagonaltermleftentry * S ((S (pfc_index_shift_product_last_coefficientdiagonal)) * ac) + (pfc_left_shift_product_last_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_last_coefficientdiagonaltermleftoutside. pfc_gap_shift_product_last_coefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_product_last_coefficientdiagonal)) /\ (((pfc_left_shift_product_last_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_last_coefficientdiagonaltermrightinside. pfa_gap_shift_product_last_coefficientdiagonaltermrightinside + S (pfc_complement_shift_product_last_coefficientdiagonalterm) = (S M)) /\ ((((exists ff_h_pfp_shift_product_last_coefficientdiagonaltermrightentry. ff_h_pfp_shift_product_last_coefficientdiagonaltermrightentry + S (pfc_right_shift_product_last_coefficientdiagonalterm) = S ((S (pfc_complement_shift_product_last_coefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_shift_product_last_coefficientdiagonaltermrightentry. BB = ff_q_pfp_shift_product_last_coefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_product_last_coefficientdiagonalterm)) * BC) + (pfc_right_shift_product_last_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_last_coefficientdiagonaltermrightoutside. pfc_gap_shift_product_last_coefficientdiagonaltermrightoutside+(S M)=(pfc_complement_shift_product_last_coefficientdiagonalterm)) /\ (((pfc_right_shift_product_last_coefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_product_last_coefficientdiagonal)=pfc_left_shift_product_last_coefficientdiagonalterm*pfc_right_shift_product_last_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_last_coefficientsum fs_v_pfc_shift_product_last_coefficientsum. ((((exists fs_h_pfc_shift_product_last_coefficientsum_body_start. fs_h_pfc_shift_product_last_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_last_coefficientsum)) /\ exists fs_q_pfc_shift_product_last_coefficientsum_body_start. fs_u_pfc_shift_product_last_coefficientsum = fs_q_pfc_shift_product_last_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_last_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_last_coefficientsum_body_terminal. fs_h_pfc_shift_product_last_coefficientsum_body_terminal + S (pfc_natural_sum_shift_product_last_coefficient) = S ((S (S (N))) * fs_v_pfc_shift_product_last_coefficientsum)) /\ exists fs_q_pfc_shift_product_last_coefficientsum_body_terminal. fs_u_pfc_shift_product_last_coefficientsum = fs_q_pfc_shift_product_last_coefficientsum_body_terminal * S ((S (S (N))) * fs_v_pfc_shift_product_last_coefficientsum) + (pfc_natural_sum_shift_product_last_coefficient))) /\ forall fs_i_pfc_shift_product_last_coefficientsum_body_steps. (exists fs_lt_pfc_shift_product_last_coefficientsum_body_steps_bound. fs_lt_pfc_shift_product_last_coefficientsum_body_steps_bound + S fs_i_pfc_shift_product_last_coefficientsum_body_steps = S (N)) -> exists fs_a_pfc_shift_product_last_coefficientsum_body_steps fs_r_pfc_shift_product_last_coefficientsum_body_steps fs_s_pfc_shift_product_last_coefficientsum_body_steps. ((((exists fs_h_pfc_shift_product_last_coefficientsum_body_steps_summand. fs_h_pfc_shift_product_last_coefficientsum_body_steps_summand + S (fs_a_pfc_shift_product_last_coefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_last_coefficientsum_body_steps)) * pfc_terms_scale_shift_product_last_coefficient)) /\ exists fs_q_pfc_shift_product_last_coefficientsum_body_steps_summand. pfc_terms_code_shift_product_last_coefficient = fs_q_pfc_shift_product_last_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_last_coefficientsum_body_steps)) * pfc_terms_scale_shift_product_last_coefficient) + (fs_a_pfc_shift_product_last_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_last_coefficientsum_body_steps_partial. fs_h_pfc_shift_product_last_coefficientsum_body_steps_partial + S (fs_r_pfc_shift_product_last_coefficientsum_body_steps) = S ((S (fs_i_pfc_shift_product_last_coefficientsum_body_steps)) * fs_v_pfc_shift_product_last_coefficientsum)) /\ exists fs_q_pfc_shift_product_last_coefficientsum_body_steps_partial. fs_u_pfc_shift_product_last_coefficientsum = fs_q_pfc_shift_product_last_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_last_coefficientsum_body_steps)) * fs_v_pfc_shift_product_last_coefficientsum) + (fs_r_pfc_shift_product_last_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_last_coefficientsum_body_steps_successor. fs_h_pfc_shift_product_last_coefficientsum_body_steps_successor + S (fs_s_pfc_shift_product_last_coefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_product_last_coefficientsum_body_steps)) * fs_v_pfc_shift_product_last_coefficientsum)) /\ exists fs_q_pfc_shift_product_last_coefficientsum_body_steps_successor. fs_u_pfc_shift_product_last_coefficientsum = fs_q_pfc_shift_product_last_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_last_coefficientsum_body_steps)) * fs_v_pfc_shift_product_last_coefficientsum) + (fs_s_pfc_shift_product_last_coefficientsum_body_steps))) /\ fs_s_pfc_shift_product_last_coefficientsum_body_steps = fs_r_pfc_shift_product_last_coefficientsum_body_steps + fs_a_pfc_shift_product_last_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_last_coefficientresiduebound. pfa_gap_shift_product_last_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_shift_product_last_coefficientresiduecongruence pfa_offset_right_shift_product_last_coefficientresiduecongruence. (pfc_natural_sum_shift_product_last_coefficient) + (p) * pfa_offset_left_shift_product_last_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_shift_product_last_coefficientresiduecongruence)))))))))))
  110. 0110specialize hd_right_right_right (N)
  111. 0111apply hd_right_right_right
  112. 0112rewrite hk
  113. 0113specialize le_refl (S N)
  114. 0114apply le_refl
  115. 0115cases hv
  116. 0116cases hv_witness
  117. 0117have hco : exists pfc_terms_code_shift_product_exterior_old pfc_terms_scale_shift_product_exterior_old pfc_natural_sum_shift_product_exterior_old. ((forall pfc_index_shift_product_exterior_olddiagonal. (exists pfa_gap_shift_product_exterior_olddiagonalbound. pfa_gap_shift_product_exterior_olddiagonalbound + S (pfc_index_shift_product_exterior_olddiagonal) = (S (N))) -> exists pfc_value_shift_product_exterior_olddiagonal. ((((exists ff_h_pfp_shift_product_exterior_olddiagonalentry. ff_h_pfp_shift_product_exterior_olddiagonalentry + S (pfc_value_shift_product_exterior_olddiagonal) = S ((S (pfc_index_shift_product_exterior_olddiagonal)) * pfc_terms_scale_shift_product_exterior_old)) /\ exists ff_q_pfp_shift_product_exterior_olddiagonalentry. pfc_terms_code_shift_product_exterior_old = ff_q_pfp_shift_product_exterior_olddiagonalentry * S ((S (pfc_index_shift_product_exterior_olddiagonal)) * pfc_terms_scale_shift_product_exterior_old) + (pfc_value_shift_product_exterior_olddiagonal))) /\ ((exists pfc_complement_shift_product_exterior_olddiagonalterm pfc_left_shift_product_exterior_olddiagonalterm pfc_right_shift_product_exterior_olddiagonalterm. (((pfc_index_shift_product_exterior_olddiagonal)+pfc_complement_shift_product_exterior_olddiagonalterm=(N)) /\ ((((((exists pfa_gap_shift_product_exterior_olddiagonaltermleftinside. pfa_gap_shift_product_exterior_olddiagonaltermleftinside + S (pfc_index_shift_product_exterior_olddiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_exterior_olddiagonaltermleftentry. ff_h_pfp_shift_product_exterior_olddiagonaltermleftentry + S (pfc_left_shift_product_exterior_olddiagonalterm) = S ((S (pfc_index_shift_product_exterior_olddiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_exterior_olddiagonaltermleftentry. ab = ff_q_pfp_shift_product_exterior_olddiagonaltermleftentry * S ((S (pfc_index_shift_product_exterior_olddiagonal)) * ac) + (pfc_left_shift_product_exterior_olddiagonalterm)))))) \/ (((exists pfc_gap_shift_product_exterior_olddiagonaltermleftoutside. pfc_gap_shift_product_exterior_olddiagonaltermleftoutside+(L)=(pfc_index_shift_product_exterior_olddiagonal)) /\ (((pfc_left_shift_product_exterior_olddiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_exterior_olddiagonaltermrightinside. pfa_gap_shift_product_exterior_olddiagonaltermrightinside + S (pfc_complement_shift_product_exterior_olddiagonalterm) = (M)) /\ ((((exists ff_h_pfp_shift_product_exterior_olddiagonaltermrightentry. ff_h_pfp_shift_product_exterior_olddiagonaltermrightentry + S (pfc_right_shift_product_exterior_olddiagonalterm) = S ((S (pfc_complement_shift_product_exterior_olddiagonalterm)) * bc)) /\ exists ff_q_pfp_shift_product_exterior_olddiagonaltermrightentry. bb = ff_q_pfp_shift_product_exterior_olddiagonaltermrightentry * S ((S (pfc_complement_shift_product_exterior_olddiagonalterm)) * bc) + (pfc_right_shift_product_exterior_olddiagonalterm)))))) \/ (((exists pfc_gap_shift_product_exterior_olddiagonaltermrightoutside. pfc_gap_shift_product_exterior_olddiagonaltermrightoutside+(M)=(pfc_complement_shift_product_exterior_olddiagonalterm)) /\ (((pfc_right_shift_product_exterior_olddiagonalterm)=0))))) /\ (((pfc_value_shift_product_exterior_olddiagonal)=pfc_left_shift_product_exterior_olddiagonalterm*pfc_right_shift_product_exterior_olddiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_exterior_oldsum fs_v_pfc_shift_product_exterior_oldsum. ((((exists fs_h_pfc_shift_product_exterior_oldsum_body_start. fs_h_pfc_shift_product_exterior_oldsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_exterior_oldsum)) /\ exists fs_q_pfc_shift_product_exterior_oldsum_body_start. fs_u_pfc_shift_product_exterior_oldsum = fs_q_pfc_shift_product_exterior_oldsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_exterior_oldsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_exterior_oldsum_body_terminal. fs_h_pfc_shift_product_exterior_oldsum_body_terminal + S (pfc_natural_sum_shift_product_exterior_old) = S ((S (S (N))) * fs_v_pfc_shift_product_exterior_oldsum)) /\ exists fs_q_pfc_shift_product_exterior_oldsum_body_terminal. fs_u_pfc_shift_product_exterior_oldsum = fs_q_pfc_shift_product_exterior_oldsum_body_terminal * S ((S (S (N))) * fs_v_pfc_shift_product_exterior_oldsum) + (pfc_natural_sum_shift_product_exterior_old))) /\ forall fs_i_pfc_shift_product_exterior_oldsum_body_steps. (exists fs_lt_pfc_shift_product_exterior_oldsum_body_steps_bound. fs_lt_pfc_shift_product_exterior_oldsum_body_steps_bound + S fs_i_pfc_shift_product_exterior_oldsum_body_steps = S (N)) -> exists fs_a_pfc_shift_product_exterior_oldsum_body_steps fs_r_pfc_shift_product_exterior_oldsum_body_steps fs_s_pfc_shift_product_exterior_oldsum_body_steps. ((((exists fs_h_pfc_shift_product_exterior_oldsum_body_steps_summand. fs_h_pfc_shift_product_exterior_oldsum_body_steps_summand + S (fs_a_pfc_shift_product_exterior_oldsum_body_steps) = S ((S (fs_i_pfc_shift_product_exterior_oldsum_body_steps)) * pfc_terms_scale_shift_product_exterior_old)) /\ exists fs_q_pfc_shift_product_exterior_oldsum_body_steps_summand. pfc_terms_code_shift_product_exterior_old = fs_q_pfc_shift_product_exterior_oldsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_exterior_oldsum_body_steps)) * pfc_terms_scale_shift_product_exterior_old) + (fs_a_pfc_shift_product_exterior_oldsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_exterior_oldsum_body_steps_partial. fs_h_pfc_shift_product_exterior_oldsum_body_steps_partial + S (fs_r_pfc_shift_product_exterior_oldsum_body_steps) = S ((S (fs_i_pfc_shift_product_exterior_oldsum_body_steps)) * fs_v_pfc_shift_product_exterior_oldsum)) /\ exists fs_q_pfc_shift_product_exterior_oldsum_body_steps_partial. fs_u_pfc_shift_product_exterior_oldsum = fs_q_pfc_shift_product_exterior_oldsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_exterior_oldsum_body_steps)) * fs_v_pfc_shift_product_exterior_oldsum) + (fs_r_pfc_shift_product_exterior_oldsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_exterior_oldsum_body_steps_successor. fs_h_pfc_shift_product_exterior_oldsum_body_steps_successor + S (fs_s_pfc_shift_product_exterior_oldsum_body_steps) = S ((S (S fs_i_pfc_shift_product_exterior_oldsum_body_steps)) * fs_v_pfc_shift_product_exterior_oldsum)) /\ exists fs_q_pfc_shift_product_exterior_oldsum_body_steps_successor. fs_u_pfc_shift_product_exterior_oldsum = fs_q_pfc_shift_product_exterior_oldsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_exterior_oldsum_body_steps)) * fs_v_pfc_shift_product_exterior_oldsum) + (fs_s_pfc_shift_product_exterior_oldsum_body_steps))) /\ fs_s_pfc_shift_product_exterior_oldsum_body_steps = fs_r_pfc_shift_product_exterior_oldsum_body_steps + fs_a_pfc_shift_product_exterior_oldsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_exterior_oldresiduebound. pfa_gap_shift_product_exterior_oldresiduebound + S (x) = (p)) /\ ((exists pfa_offset_left_shift_product_exterior_oldresiduecongruence pfa_offset_right_shift_product_exterior_oldresiduecongruence. (pfc_natural_sum_shift_product_exterior_old) + (p) * pfa_offset_left_shift_product_exterior_oldresiduecongruence = (x) + (p) * pfa_offset_right_shift_product_exterior_oldresiduecongruence))))))))
  118. 0118have hiff : (((exists pfc_terms_code_shift_product_last_transport_old pfc_terms_scale_shift_product_last_transport_old pfc_natural_sum_shift_product_last_transport_old. ((forall pfc_index_shift_product_last_transport_olddiagonal. (exists pfa_gap_shift_product_last_transport_olddiagonalbound. pfa_gap_shift_product_last_transport_olddiagonalbound + S (pfc_index_shift_product_last_transport_olddiagonal) = (S (N))) -> exists pfc_value_shift_product_last_transport_olddiagonal. ((((exists ff_h_pfp_shift_product_last_transport_olddiagonalentry. ff_h_pfp_shift_product_last_transport_olddiagonalentry + S (pfc_value_shift_product_last_transport_olddiagonal) = S ((S (pfc_index_shift_product_last_transport_olddiagonal)) * pfc_terms_scale_shift_product_last_transport_old)) /\ exists ff_q_pfp_shift_product_last_transport_olddiagonalentry. pfc_terms_code_shift_product_last_transport_old = ff_q_pfp_shift_product_last_transport_olddiagonalentry * S ((S (pfc_index_shift_product_last_transport_olddiagonal)) * pfc_terms_scale_shift_product_last_transport_old) + (pfc_value_shift_product_last_transport_olddiagonal))) /\ ((exists pfc_complement_shift_product_last_transport_olddiagonalterm pfc_left_shift_product_last_transport_olddiagonalterm pfc_right_shift_product_last_transport_olddiagonalterm. (((pfc_index_shift_product_last_transport_olddiagonal)+pfc_complement_shift_product_last_transport_olddiagonalterm=(N)) /\ ((((((exists pfa_gap_shift_product_last_transport_olddiagonaltermleftinside. pfa_gap_shift_product_last_transport_olddiagonaltermleftinside + S (pfc_index_shift_product_last_transport_olddiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_last_transport_olddiagonaltermleftentry. ff_h_pfp_shift_product_last_transport_olddiagonaltermleftentry + S (pfc_left_shift_product_last_transport_olddiagonalterm) = S ((S (pfc_index_shift_product_last_transport_olddiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_last_transport_olddiagonaltermleftentry. ab = ff_q_pfp_shift_product_last_transport_olddiagonaltermleftentry * S ((S (pfc_index_shift_product_last_transport_olddiagonal)) * ac) + (pfc_left_shift_product_last_transport_olddiagonalterm)))))) \/ (((exists pfc_gap_shift_product_last_transport_olddiagonaltermleftoutside. pfc_gap_shift_product_last_transport_olddiagonaltermleftoutside+(L)=(pfc_index_shift_product_last_transport_olddiagonal)) /\ (((pfc_left_shift_product_last_transport_olddiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_last_transport_olddiagonaltermrightinside. pfa_gap_shift_product_last_transport_olddiagonaltermrightinside + S (pfc_complement_shift_product_last_transport_olddiagonalterm) = (M)) /\ ((((exists ff_h_pfp_shift_product_last_transport_olddiagonaltermrightentry. ff_h_pfp_shift_product_last_transport_olddiagonaltermrightentry + S (pfc_right_shift_product_last_transport_olddiagonalterm) = S ((S (pfc_complement_shift_product_last_transport_olddiagonalterm)) * bc)) /\ exists ff_q_pfp_shift_product_last_transport_olddiagonaltermrightentry. bb = ff_q_pfp_shift_product_last_transport_olddiagonaltermrightentry * S ((S (pfc_complement_shift_product_last_transport_olddiagonalterm)) * bc) + (pfc_right_shift_product_last_transport_olddiagonalterm)))))) \/ (((exists pfc_gap_shift_product_last_transport_olddiagonaltermrightoutside. pfc_gap_shift_product_last_transport_olddiagonaltermrightoutside+(M)=(pfc_complement_shift_product_last_transport_olddiagonalterm)) /\ (((pfc_right_shift_product_last_transport_olddiagonalterm)=0))))) /\ (((pfc_value_shift_product_last_transport_olddiagonal)=pfc_left_shift_product_last_transport_olddiagonalterm*pfc_right_shift_product_last_transport_olddiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_last_transport_oldsum fs_v_pfc_shift_product_last_transport_oldsum. ((((exists fs_h_pfc_shift_product_last_transport_oldsum_body_start. fs_h_pfc_shift_product_last_transport_oldsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_last_transport_oldsum)) /\ exists fs_q_pfc_shift_product_last_transport_oldsum_body_start. fs_u_pfc_shift_product_last_transport_oldsum = fs_q_pfc_shift_product_last_transport_oldsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_last_transport_oldsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_last_transport_oldsum_body_terminal. fs_h_pfc_shift_product_last_transport_oldsum_body_terminal + S (pfc_natural_sum_shift_product_last_transport_old) = S ((S (S (N))) * fs_v_pfc_shift_product_last_transport_oldsum)) /\ exists fs_q_pfc_shift_product_last_transport_oldsum_body_terminal. fs_u_pfc_shift_product_last_transport_oldsum = fs_q_pfc_shift_product_last_transport_oldsum_body_terminal * S ((S (S (N))) * fs_v_pfc_shift_product_last_transport_oldsum) + (pfc_natural_sum_shift_product_last_transport_old))) /\ forall fs_i_pfc_shift_product_last_transport_oldsum_body_steps. (exists fs_lt_pfc_shift_product_last_transport_oldsum_body_steps_bound. fs_lt_pfc_shift_product_last_transport_oldsum_body_steps_bound + S fs_i_pfc_shift_product_last_transport_oldsum_body_steps = S (N)) -> exists fs_a_pfc_shift_product_last_transport_oldsum_body_steps fs_r_pfc_shift_product_last_transport_oldsum_body_steps fs_s_pfc_shift_product_last_transport_oldsum_body_steps. ((((exists fs_h_pfc_shift_product_last_transport_oldsum_body_steps_summand. fs_h_pfc_shift_product_last_transport_oldsum_body_steps_summand + S (fs_a_pfc_shift_product_last_transport_oldsum_body_steps) = S ((S (fs_i_pfc_shift_product_last_transport_oldsum_body_steps)) * pfc_terms_scale_shift_product_last_transport_old)) /\ exists fs_q_pfc_shift_product_last_transport_oldsum_body_steps_summand. pfc_terms_code_shift_product_last_transport_old = fs_q_pfc_shift_product_last_transport_oldsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_last_transport_oldsum_body_steps)) * pfc_terms_scale_shift_product_last_transport_old) + (fs_a_pfc_shift_product_last_transport_oldsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_last_transport_oldsum_body_steps_partial. fs_h_pfc_shift_product_last_transport_oldsum_body_steps_partial + S (fs_r_pfc_shift_product_last_transport_oldsum_body_steps) = S ((S (fs_i_pfc_shift_product_last_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_last_transport_oldsum)) /\ exists fs_q_pfc_shift_product_last_transport_oldsum_body_steps_partial. fs_u_pfc_shift_product_last_transport_oldsum = fs_q_pfc_shift_product_last_transport_oldsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_last_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_last_transport_oldsum) + (fs_r_pfc_shift_product_last_transport_oldsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_last_transport_oldsum_body_steps_successor. fs_h_pfc_shift_product_last_transport_oldsum_body_steps_successor + S (fs_s_pfc_shift_product_last_transport_oldsum_body_steps) = S ((S (S fs_i_pfc_shift_product_last_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_last_transport_oldsum)) /\ exists fs_q_pfc_shift_product_last_transport_oldsum_body_steps_successor. fs_u_pfc_shift_product_last_transport_oldsum = fs_q_pfc_shift_product_last_transport_oldsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_last_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_last_transport_oldsum) + (fs_s_pfc_shift_product_last_transport_oldsum_body_steps))) /\ fs_s_pfc_shift_product_last_transport_oldsum_body_steps = fs_r_pfc_shift_product_last_transport_oldsum_body_steps + fs_a_pfc_shift_product_last_transport_oldsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_last_transport_oldresiduebound. pfa_gap_shift_product_last_transport_oldresiduebound + S (x) = (p)) /\ ((exists pfa_offset_left_shift_product_last_transport_oldresiduecongruence pfa_offset_right_shift_product_last_transport_oldresiduecongruence. (pfc_natural_sum_shift_product_last_transport_old) + (p) * pfa_offset_left_shift_product_last_transport_oldresiduecongruence = (x) + (p) * pfa_offset_right_shift_product_last_transport_oldresiduecongruence))))))))) -> (exists pfc_terms_code_shift_product_last_transport_new pfc_terms_scale_shift_product_last_transport_new pfc_natural_sum_shift_product_last_transport_new. ((forall pfc_index_shift_product_last_transport_newdiagonal. (exists pfa_gap_shift_product_last_transport_newdiagonalbound. pfa_gap_shift_product_last_transport_newdiagonalbound + S (pfc_index_shift_product_last_transport_newdiagonal) = (S (N))) -> exists pfc_value_shift_product_last_transport_newdiagonal. ((((exists ff_h_pfp_shift_product_last_transport_newdiagonalentry. ff_h_pfp_shift_product_last_transport_newdiagonalentry + S (pfc_value_shift_product_last_transport_newdiagonal) = S ((S (pfc_index_shift_product_last_transport_newdiagonal)) * pfc_terms_scale_shift_product_last_transport_new)) /\ exists ff_q_pfp_shift_product_last_transport_newdiagonalentry. pfc_terms_code_shift_product_last_transport_new = ff_q_pfp_shift_product_last_transport_newdiagonalentry * S ((S (pfc_index_shift_product_last_transport_newdiagonal)) * pfc_terms_scale_shift_product_last_transport_new) + (pfc_value_shift_product_last_transport_newdiagonal))) /\ ((exists pfc_complement_shift_product_last_transport_newdiagonalterm pfc_left_shift_product_last_transport_newdiagonalterm pfc_right_shift_product_last_transport_newdiagonalterm. (((pfc_index_shift_product_last_transport_newdiagonal)+pfc_complement_shift_product_last_transport_newdiagonalterm=(N)) /\ ((((((exists pfa_gap_shift_product_last_transport_newdiagonaltermleftinside. pfa_gap_shift_product_last_transport_newdiagonaltermleftinside + S (pfc_index_shift_product_last_transport_newdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_last_transport_newdiagonaltermleftentry. ff_h_pfp_shift_product_last_transport_newdiagonaltermleftentry + S (pfc_left_shift_product_last_transport_newdiagonalterm) = S ((S (pfc_index_shift_product_last_transport_newdiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_last_transport_newdiagonaltermleftentry. ab = ff_q_pfp_shift_product_last_transport_newdiagonaltermleftentry * S ((S (pfc_index_shift_product_last_transport_newdiagonal)) * ac) + (pfc_left_shift_product_last_transport_newdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_last_transport_newdiagonaltermleftoutside. pfc_gap_shift_product_last_transport_newdiagonaltermleftoutside+(L)=(pfc_index_shift_product_last_transport_newdiagonal)) /\ (((pfc_left_shift_product_last_transport_newdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_last_transport_newdiagonaltermrightinside. pfa_gap_shift_product_last_transport_newdiagonaltermrightinside + S (pfc_complement_shift_product_last_transport_newdiagonalterm) = (S M)) /\ ((((exists ff_h_pfp_shift_product_last_transport_newdiagonaltermrightentry. ff_h_pfp_shift_product_last_transport_newdiagonaltermrightentry + S (pfc_right_shift_product_last_transport_newdiagonalterm) = S ((S (pfc_complement_shift_product_last_transport_newdiagonalterm)) * BC)) /\ exists ff_q_pfp_shift_product_last_transport_newdiagonaltermrightentry. BB = ff_q_pfp_shift_product_last_transport_newdiagonaltermrightentry * S ((S (pfc_complement_shift_product_last_transport_newdiagonalterm)) * BC) + (pfc_right_shift_product_last_transport_newdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_last_transport_newdiagonaltermrightoutside. pfc_gap_shift_product_last_transport_newdiagonaltermrightoutside+(S M)=(pfc_complement_shift_product_last_transport_newdiagonalterm)) /\ (((pfc_right_shift_product_last_transport_newdiagonalterm)=0))))) /\ (((pfc_value_shift_product_last_transport_newdiagonal)=pfc_left_shift_product_last_transport_newdiagonalterm*pfc_right_shift_product_last_transport_newdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_last_transport_newsum fs_v_pfc_shift_product_last_transport_newsum. ((((exists fs_h_pfc_shift_product_last_transport_newsum_body_start. fs_h_pfc_shift_product_last_transport_newsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_last_transport_newsum)) /\ exists fs_q_pfc_shift_product_last_transport_newsum_body_start. fs_u_pfc_shift_product_last_transport_newsum = fs_q_pfc_shift_product_last_transport_newsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_last_transport_newsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_last_transport_newsum_body_terminal. fs_h_pfc_shift_product_last_transport_newsum_body_terminal + S (pfc_natural_sum_shift_product_last_transport_new) = S ((S (S (N))) * fs_v_pfc_shift_product_last_transport_newsum)) /\ exists fs_q_pfc_shift_product_last_transport_newsum_body_terminal. fs_u_pfc_shift_product_last_transport_newsum = fs_q_pfc_shift_product_last_transport_newsum_body_terminal * S ((S (S (N))) * fs_v_pfc_shift_product_last_transport_newsum) + (pfc_natural_sum_shift_product_last_transport_new))) /\ forall fs_i_pfc_shift_product_last_transport_newsum_body_steps. (exists fs_lt_pfc_shift_product_last_transport_newsum_body_steps_bound. fs_lt_pfc_shift_product_last_transport_newsum_body_steps_bound + S fs_i_pfc_shift_product_last_transport_newsum_body_steps = S (N)) -> exists fs_a_pfc_shift_product_last_transport_newsum_body_steps fs_r_pfc_shift_product_last_transport_newsum_body_steps fs_s_pfc_shift_product_last_transport_newsum_body_steps. ((((exists fs_h_pfc_shift_product_last_transport_newsum_body_steps_summand. fs_h_pfc_shift_product_last_transport_newsum_body_steps_summand + S (fs_a_pfc_shift_product_last_transport_newsum_body_steps) = S ((S (fs_i_pfc_shift_product_last_transport_newsum_body_steps)) * pfc_terms_scale_shift_product_last_transport_new)) /\ exists fs_q_pfc_shift_product_last_transport_newsum_body_steps_summand. pfc_terms_code_shift_product_last_transport_new = fs_q_pfc_shift_product_last_transport_newsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_last_transport_newsum_body_steps)) * pfc_terms_scale_shift_product_last_transport_new) + (fs_a_pfc_shift_product_last_transport_newsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_last_transport_newsum_body_steps_partial. fs_h_pfc_shift_product_last_transport_newsum_body_steps_partial + S (fs_r_pfc_shift_product_last_transport_newsum_body_steps) = S ((S (fs_i_pfc_shift_product_last_transport_newsum_body_steps)) * fs_v_pfc_shift_product_last_transport_newsum)) /\ exists fs_q_pfc_shift_product_last_transport_newsum_body_steps_partial. fs_u_pfc_shift_product_last_transport_newsum = fs_q_pfc_shift_product_last_transport_newsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_last_transport_newsum_body_steps)) * fs_v_pfc_shift_product_last_transport_newsum) + (fs_r_pfc_shift_product_last_transport_newsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_last_transport_newsum_body_steps_successor. fs_h_pfc_shift_product_last_transport_newsum_body_steps_successor + S (fs_s_pfc_shift_product_last_transport_newsum_body_steps) = S ((S (S fs_i_pfc_shift_product_last_transport_newsum_body_steps)) * fs_v_pfc_shift_product_last_transport_newsum)) /\ exists fs_q_pfc_shift_product_last_transport_newsum_body_steps_successor. fs_u_pfc_shift_product_last_transport_newsum = fs_q_pfc_shift_product_last_transport_newsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_last_transport_newsum_body_steps)) * fs_v_pfc_shift_product_last_transport_newsum) + (fs_s_pfc_shift_product_last_transport_newsum_body_steps))) /\ fs_s_pfc_shift_product_last_transport_newsum_body_steps = fs_r_pfc_shift_product_last_transport_newsum_body_steps + fs_a_pfc_shift_product_last_transport_newsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_last_transport_newresiduebound. pfa_gap_shift_product_last_transport_newresiduebound + S (x) = (p)) /\ ((exists pfa_offset_left_shift_product_last_transport_newresiduecongruence pfa_offset_right_shift_product_last_transport_newresiduecongruence. (pfc_natural_sum_shift_product_last_transport_new) + (p) * pfa_offset_left_shift_product_last_transport_newresiduecongruence = (x) + (p) * pfa_offset_right_shift_product_last_transport_newresiduecongruence)))))))))) /\ (((exists pfc_terms_code_shift_product_last_transport_new pfc_terms_scale_shift_product_last_transport_new pfc_natural_sum_shift_product_last_transport_new. ((forall pfc_index_shift_product_last_transport_newdiagonal. (exists pfa_gap_shift_product_last_transport_newdiagonalbound. pfa_gap_shift_product_last_transport_newdiagonalbound + S (pfc_index_shift_product_last_transport_newdiagonal) = (S (N))) -> exists pfc_value_shift_product_last_transport_newdiagonal. ((((exists ff_h_pfp_shift_product_last_transport_newdiagonalentry. ff_h_pfp_shift_product_last_transport_newdiagonalentry + S (pfc_value_shift_product_last_transport_newdiagonal) = S ((S (pfc_index_shift_product_last_transport_newdiagonal)) * pfc_terms_scale_shift_product_last_transport_new)) /\ exists ff_q_pfp_shift_product_last_transport_newdiagonalentry. pfc_terms_code_shift_product_last_transport_new = ff_q_pfp_shift_product_last_transport_newdiagonalentry * S ((S (pfc_index_shift_product_last_transport_newdiagonal)) * pfc_terms_scale_shift_product_last_transport_new) + (pfc_value_shift_product_last_transport_newdiagonal))) /\ ((exists pfc_complement_shift_product_last_transport_newdiagonalterm pfc_left_shift_product_last_transport_newdiagonalterm pfc_right_shift_product_last_transport_newdiagonalterm. (((pfc_index_shift_product_last_transport_newdiagonal)+pfc_complement_shift_product_last_transport_newdiagonalterm=(N)) /\ ((((((exists pfa_gap_shift_product_last_transport_newdiagonaltermleftinside. pfa_gap_shift_product_last_transport_newdiagonaltermleftinside + S (pfc_index_shift_product_last_transport_newdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_last_transport_newdiagonaltermleftentry. ff_h_pfp_shift_product_last_transport_newdiagonaltermleftentry + S (pfc_left_shift_product_last_transport_newdiagonalterm) = S ((S (pfc_index_shift_product_last_transport_newdiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_last_transport_newdiagonaltermleftentry. ab = ff_q_pfp_shift_product_last_transport_newdiagonaltermleftentry * S ((S (pfc_index_shift_product_last_transport_newdiagonal)) * ac) + (pfc_left_shift_product_last_transport_newdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_last_transport_newdiagonaltermleftoutside. pfc_gap_shift_product_last_transport_newdiagonaltermleftoutside+(L)=(pfc_index_shift_product_last_transport_newdiagonal)) /\ (((pfc_left_shift_product_last_transport_newdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_last_transport_newdiagonaltermrightinside. pfa_gap_shift_product_last_transport_newdiagonaltermrightinside + S (pfc_complement_shift_product_last_transport_newdiagonalterm) = (S M)) /\ ((((exists ff_h_pfp_shift_product_last_transport_newdiagonaltermrightentry. ff_h_pfp_shift_product_last_transport_newdiagonaltermrightentry + S (pfc_right_shift_product_last_transport_newdiagonalterm) = S ((S (pfc_complement_shift_product_last_transport_newdiagonalterm)) * BC)) /\ exists ff_q_pfp_shift_product_last_transport_newdiagonaltermrightentry. BB = ff_q_pfp_shift_product_last_transport_newdiagonaltermrightentry * S ((S (pfc_complement_shift_product_last_transport_newdiagonalterm)) * BC) + (pfc_right_shift_product_last_transport_newdiagonalterm)))))) \/ (((exists pfc_gap_shift_product_last_transport_newdiagonaltermrightoutside. pfc_gap_shift_product_last_transport_newdiagonaltermrightoutside+(S M)=(pfc_complement_shift_product_last_transport_newdiagonalterm)) /\ (((pfc_right_shift_product_last_transport_newdiagonalterm)=0))))) /\ (((pfc_value_shift_product_last_transport_newdiagonal)=pfc_left_shift_product_last_transport_newdiagonalterm*pfc_right_shift_product_last_transport_newdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_last_transport_newsum fs_v_pfc_shift_product_last_transport_newsum. ((((exists fs_h_pfc_shift_product_last_transport_newsum_body_start. fs_h_pfc_shift_product_last_transport_newsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_last_transport_newsum)) /\ exists fs_q_pfc_shift_product_last_transport_newsum_body_start. fs_u_pfc_shift_product_last_transport_newsum = fs_q_pfc_shift_product_last_transport_newsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_last_transport_newsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_last_transport_newsum_body_terminal. fs_h_pfc_shift_product_last_transport_newsum_body_terminal + S (pfc_natural_sum_shift_product_last_transport_new) = S ((S (S (N))) * fs_v_pfc_shift_product_last_transport_newsum)) /\ exists fs_q_pfc_shift_product_last_transport_newsum_body_terminal. fs_u_pfc_shift_product_last_transport_newsum = fs_q_pfc_shift_product_last_transport_newsum_body_terminal * S ((S (S (N))) * fs_v_pfc_shift_product_last_transport_newsum) + (pfc_natural_sum_shift_product_last_transport_new))) /\ forall fs_i_pfc_shift_product_last_transport_newsum_body_steps. (exists fs_lt_pfc_shift_product_last_transport_newsum_body_steps_bound. fs_lt_pfc_shift_product_last_transport_newsum_body_steps_bound + S fs_i_pfc_shift_product_last_transport_newsum_body_steps = S (N)) -> exists fs_a_pfc_shift_product_last_transport_newsum_body_steps fs_r_pfc_shift_product_last_transport_newsum_body_steps fs_s_pfc_shift_product_last_transport_newsum_body_steps. ((((exists fs_h_pfc_shift_product_last_transport_newsum_body_steps_summand. fs_h_pfc_shift_product_last_transport_newsum_body_steps_summand + S (fs_a_pfc_shift_product_last_transport_newsum_body_steps) = S ((S (fs_i_pfc_shift_product_last_transport_newsum_body_steps)) * pfc_terms_scale_shift_product_last_transport_new)) /\ exists fs_q_pfc_shift_product_last_transport_newsum_body_steps_summand. pfc_terms_code_shift_product_last_transport_new = fs_q_pfc_shift_product_last_transport_newsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_last_transport_newsum_body_steps)) * pfc_terms_scale_shift_product_last_transport_new) + (fs_a_pfc_shift_product_last_transport_newsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_last_transport_newsum_body_steps_partial. fs_h_pfc_shift_product_last_transport_newsum_body_steps_partial + S (fs_r_pfc_shift_product_last_transport_newsum_body_steps) = S ((S (fs_i_pfc_shift_product_last_transport_newsum_body_steps)) * fs_v_pfc_shift_product_last_transport_newsum)) /\ exists fs_q_pfc_shift_product_last_transport_newsum_body_steps_partial. fs_u_pfc_shift_product_last_transport_newsum = fs_q_pfc_shift_product_last_transport_newsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_last_transport_newsum_body_steps)) * fs_v_pfc_shift_product_last_transport_newsum) + (fs_r_pfc_shift_product_last_transport_newsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_last_transport_newsum_body_steps_successor. fs_h_pfc_shift_product_last_transport_newsum_body_steps_successor + S (fs_s_pfc_shift_product_last_transport_newsum_body_steps) = S ((S (S fs_i_pfc_shift_product_last_transport_newsum_body_steps)) * fs_v_pfc_shift_product_last_transport_newsum)) /\ exists fs_q_pfc_shift_product_last_transport_newsum_body_steps_successor. fs_u_pfc_shift_product_last_transport_newsum = fs_q_pfc_shift_product_last_transport_newsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_last_transport_newsum_body_steps)) * fs_v_pfc_shift_product_last_transport_newsum) + (fs_s_pfc_shift_product_last_transport_newsum_body_steps))) /\ fs_s_pfc_shift_product_last_transport_newsum_body_steps = fs_r_pfc_shift_product_last_transport_newsum_body_steps + fs_a_pfc_shift_product_last_transport_newsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_last_transport_newresiduebound. pfa_gap_shift_product_last_transport_newresiduebound + S (x) = (p)) /\ ((exists pfa_offset_left_shift_product_last_transport_newresiduecongruence pfa_offset_right_shift_product_last_transport_newresiduecongruence. (pfc_natural_sum_shift_product_last_transport_new) + (p) * pfa_offset_left_shift_product_last_transport_newresiduecongruence = (x) + (p) * pfa_offset_right_shift_product_last_transport_newresiduecongruence))))))))) -> (exists pfc_terms_code_shift_product_last_transport_old pfc_terms_scale_shift_product_last_transport_old pfc_natural_sum_shift_product_last_transport_old. ((forall pfc_index_shift_product_last_transport_olddiagonal. (exists pfa_gap_shift_product_last_transport_olddiagonalbound. pfa_gap_shift_product_last_transport_olddiagonalbound + S (pfc_index_shift_product_last_transport_olddiagonal) = (S (N))) -> exists pfc_value_shift_product_last_transport_olddiagonal. ((((exists ff_h_pfp_shift_product_last_transport_olddiagonalentry. ff_h_pfp_shift_product_last_transport_olddiagonalentry + S (pfc_value_shift_product_last_transport_olddiagonal) = S ((S (pfc_index_shift_product_last_transport_olddiagonal)) * pfc_terms_scale_shift_product_last_transport_old)) /\ exists ff_q_pfp_shift_product_last_transport_olddiagonalentry. pfc_terms_code_shift_product_last_transport_old = ff_q_pfp_shift_product_last_transport_olddiagonalentry * S ((S (pfc_index_shift_product_last_transport_olddiagonal)) * pfc_terms_scale_shift_product_last_transport_old) + (pfc_value_shift_product_last_transport_olddiagonal))) /\ ((exists pfc_complement_shift_product_last_transport_olddiagonalterm pfc_left_shift_product_last_transport_olddiagonalterm pfc_right_shift_product_last_transport_olddiagonalterm. (((pfc_index_shift_product_last_transport_olddiagonal)+pfc_complement_shift_product_last_transport_olddiagonalterm=(N)) /\ ((((((exists pfa_gap_shift_product_last_transport_olddiagonaltermleftinside. pfa_gap_shift_product_last_transport_olddiagonaltermleftinside + S (pfc_index_shift_product_last_transport_olddiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_product_last_transport_olddiagonaltermleftentry. ff_h_pfp_shift_product_last_transport_olddiagonaltermleftentry + S (pfc_left_shift_product_last_transport_olddiagonalterm) = S ((S (pfc_index_shift_product_last_transport_olddiagonal)) * ac)) /\ exists ff_q_pfp_shift_product_last_transport_olddiagonaltermleftentry. ab = ff_q_pfp_shift_product_last_transport_olddiagonaltermleftentry * S ((S (pfc_index_shift_product_last_transport_olddiagonal)) * ac) + (pfc_left_shift_product_last_transport_olddiagonalterm)))))) \/ (((exists pfc_gap_shift_product_last_transport_olddiagonaltermleftoutside. pfc_gap_shift_product_last_transport_olddiagonaltermleftoutside+(L)=(pfc_index_shift_product_last_transport_olddiagonal)) /\ (((pfc_left_shift_product_last_transport_olddiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_product_last_transport_olddiagonaltermrightinside. pfa_gap_shift_product_last_transport_olddiagonaltermrightinside + S (pfc_complement_shift_product_last_transport_olddiagonalterm) = (M)) /\ ((((exists ff_h_pfp_shift_product_last_transport_olddiagonaltermrightentry. ff_h_pfp_shift_product_last_transport_olddiagonaltermrightentry + S (pfc_right_shift_product_last_transport_olddiagonalterm) = S ((S (pfc_complement_shift_product_last_transport_olddiagonalterm)) * bc)) /\ exists ff_q_pfp_shift_product_last_transport_olddiagonaltermrightentry. bb = ff_q_pfp_shift_product_last_transport_olddiagonaltermrightentry * S ((S (pfc_complement_shift_product_last_transport_olddiagonalterm)) * bc) + (pfc_right_shift_product_last_transport_olddiagonalterm)))))) \/ (((exists pfc_gap_shift_product_last_transport_olddiagonaltermrightoutside. pfc_gap_shift_product_last_transport_olddiagonaltermrightoutside+(M)=(pfc_complement_shift_product_last_transport_olddiagonalterm)) /\ (((pfc_right_shift_product_last_transport_olddiagonalterm)=0))))) /\ (((pfc_value_shift_product_last_transport_olddiagonal)=pfc_left_shift_product_last_transport_olddiagonalterm*pfc_right_shift_product_last_transport_olddiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_product_last_transport_oldsum fs_v_pfc_shift_product_last_transport_oldsum. ((((exists fs_h_pfc_shift_product_last_transport_oldsum_body_start. fs_h_pfc_shift_product_last_transport_oldsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_product_last_transport_oldsum)) /\ exists fs_q_pfc_shift_product_last_transport_oldsum_body_start. fs_u_pfc_shift_product_last_transport_oldsum = fs_q_pfc_shift_product_last_transport_oldsum_body_start * S ((S (0)) * fs_v_pfc_shift_product_last_transport_oldsum) + (0))) /\ ((((exists fs_h_pfc_shift_product_last_transport_oldsum_body_terminal. fs_h_pfc_shift_product_last_transport_oldsum_body_terminal + S (pfc_natural_sum_shift_product_last_transport_old) = S ((S (S (N))) * fs_v_pfc_shift_product_last_transport_oldsum)) /\ exists fs_q_pfc_shift_product_last_transport_oldsum_body_terminal. fs_u_pfc_shift_product_last_transport_oldsum = fs_q_pfc_shift_product_last_transport_oldsum_body_terminal * S ((S (S (N))) * fs_v_pfc_shift_product_last_transport_oldsum) + (pfc_natural_sum_shift_product_last_transport_old))) /\ forall fs_i_pfc_shift_product_last_transport_oldsum_body_steps. (exists fs_lt_pfc_shift_product_last_transport_oldsum_body_steps_bound. fs_lt_pfc_shift_product_last_transport_oldsum_body_steps_bound + S fs_i_pfc_shift_product_last_transport_oldsum_body_steps = S (N)) -> exists fs_a_pfc_shift_product_last_transport_oldsum_body_steps fs_r_pfc_shift_product_last_transport_oldsum_body_steps fs_s_pfc_shift_product_last_transport_oldsum_body_steps. ((((exists fs_h_pfc_shift_product_last_transport_oldsum_body_steps_summand. fs_h_pfc_shift_product_last_transport_oldsum_body_steps_summand + S (fs_a_pfc_shift_product_last_transport_oldsum_body_steps) = S ((S (fs_i_pfc_shift_product_last_transport_oldsum_body_steps)) * pfc_terms_scale_shift_product_last_transport_old)) /\ exists fs_q_pfc_shift_product_last_transport_oldsum_body_steps_summand. pfc_terms_code_shift_product_last_transport_old = fs_q_pfc_shift_product_last_transport_oldsum_body_steps_summand * S ((S (fs_i_pfc_shift_product_last_transport_oldsum_body_steps)) * pfc_terms_scale_shift_product_last_transport_old) + (fs_a_pfc_shift_product_last_transport_oldsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_last_transport_oldsum_body_steps_partial. fs_h_pfc_shift_product_last_transport_oldsum_body_steps_partial + S (fs_r_pfc_shift_product_last_transport_oldsum_body_steps) = S ((S (fs_i_pfc_shift_product_last_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_last_transport_oldsum)) /\ exists fs_q_pfc_shift_product_last_transport_oldsum_body_steps_partial. fs_u_pfc_shift_product_last_transport_oldsum = fs_q_pfc_shift_product_last_transport_oldsum_body_steps_partial * S ((S (fs_i_pfc_shift_product_last_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_last_transport_oldsum) + (fs_r_pfc_shift_product_last_transport_oldsum_body_steps))) /\ ((((exists fs_h_pfc_shift_product_last_transport_oldsum_body_steps_successor. fs_h_pfc_shift_product_last_transport_oldsum_body_steps_successor + S (fs_s_pfc_shift_product_last_transport_oldsum_body_steps) = S ((S (S fs_i_pfc_shift_product_last_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_last_transport_oldsum)) /\ exists fs_q_pfc_shift_product_last_transport_oldsum_body_steps_successor. fs_u_pfc_shift_product_last_transport_oldsum = fs_q_pfc_shift_product_last_transport_oldsum_body_steps_successor * S ((S (S fs_i_pfc_shift_product_last_transport_oldsum_body_steps)) * fs_v_pfc_shift_product_last_transport_oldsum) + (fs_s_pfc_shift_product_last_transport_oldsum_body_steps))) /\ fs_s_pfc_shift_product_last_transport_oldsum_body_steps = fs_r_pfc_shift_product_last_transport_oldsum_body_steps + fs_a_pfc_shift_product_last_transport_oldsum_body_steps)))))) /\ ((((exists pfa_gap_shift_product_last_transport_oldresiduebound. pfa_gap_shift_product_last_transport_oldresiduebound + S (x) = (p)) /\ ((exists pfa_offset_left_shift_product_last_transport_oldresiduecongruence pfa_offset_right_shift_product_last_transport_oldresiduecongruence. (pfc_natural_sum_shift_product_last_transport_old) + (p) * pfa_offset_left_shift_product_last_transport_oldresiduecongruence = (x) + (p) * pfa_offset_right_shift_product_last_transport_oldresiduecongruence))))))))))))
  119. 0119specialize prime_field_convolution_coefficient_shift_right_iff (p)
  120. 0120specialize prime_field_convolution_coefficient_shift_right_iff (ab)
  121. 0121specialize prime_field_convolution_coefficient_shift_right_iff (ac)
  122. 0122specialize prime_field_convolution_coefficient_shift_right_iff (L)
  123. 0123specialize prime_field_convolution_coefficient_shift_right_iff (bb)
  124. 0124specialize prime_field_convolution_coefficient_shift_right_iff (bc)
  125. 0125specialize prime_field_convolution_coefficient_shift_right_iff (M)
  126. 0126specialize prime_field_convolution_coefficient_shift_right_iff (BB)
  127. 0127specialize prime_field_convolution_coefficient_shift_right_iff (BC)
  128. 0128specialize prime_field_convolution_coefficient_shift_right_iff (N)
  129. 0129specialize prime_field_convolution_coefficient_shift_right_iff (x)
  130. 0130apply prime_field_convolution_coefficient_shift_right_iff
  131. 0131exact hs
  132. 0132cases hiff
  133. 0133apply hiff_right
  134. 0134exact hv_witness_right
  135. 0135have hz : x=0
  136. 0136specialize prime_field_polynomial_convolution_outside_zero (p)
  137. 0137specialize prime_field_polynomial_convolution_outside_zero (ab)
  138. 0138specialize prime_field_polynomial_convolution_outside_zero (ac)
  139. 0139specialize prime_field_polynomial_convolution_outside_zero (L)
  140. 0140specialize prime_field_polynomial_convolution_outside_zero (bb)
  141. 0141specialize prime_field_polynomial_convolution_outside_zero (bc)
  142. 0142specialize prime_field_polynomial_convolution_outside_zero (M)
  143. 0143specialize prime_field_polynomial_convolution_outside_zero (cb)
  144. 0144specialize prime_field_polynomial_convolution_outside_zero (cc)
  145. 0145specialize prime_field_polynomial_convolution_outside_zero (N)
  146. 0146specialize prime_field_polynomial_convolution_outside_zero (N)
  147. 0147specialize prime_field_polynomial_convolution_outside_zero (x)
  148. 0148apply prime_field_polynomial_convolution_outside_zero
  149. 0149exact hp
  150. 0150exact hwhole
  151. 0151specialize le_refl (N)
  152. 0152apply le_refl
  153. 0153exact hco
  154. 0154rewrite hz at hv_witness_left
  155. 0155rewrite hz at hv_witness_left
  156. 0156exact hv_witness_left