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. (~((p) = 1) /\ forall pfa_factor_left_shift_exists_product_prime pfa_factor_right_shift_exists_product_prime. (p) = pfa_factor_left_shift_exists_product_prime * pfa_factor_right_shift_exists_product_prime -> pfa_factor_left_shift_exists_product_prime = 1 \/ pfa_factor_right_shift_exists_product_prime = 1) -> (((forall mdr_i_pfp_shift_exists_product_factorprefix mdr_a_pfp_shift_exists_product_factorprefix. (exists mdr_gap_pfp_shift_exists_product_factorprefixb. mdr_gap_pfp_shift_exists_product_factorprefixb + S (mdr_i_pfp_shift_exists_product_factorprefix) = (M)) -> (((exists ff_h_mdr_pfp_shift_exists_product_factorprefixo. ff_h_mdr_pfp_shift_exists_product_factorprefixo + S (mdr_a_pfp_shift_exists_product_factorprefix) = S ((S (mdr_i_pfp_shift_exists_product_factorprefix)) * bc)) /\ exists ff_q_mdr_pfp_shift_exists_product_factorprefixo. bb = ff_q_mdr_pfp_shift_exists_product_factorprefixo * S ((S (mdr_i_pfp_shift_exists_product_factorprefix)) * bc) + (mdr_a_pfp_shift_exists_product_factorprefix))) -> (((exists ff_h_mdr_pfp_shift_exists_product_factorprefixn. ff_h_mdr_pfp_shift_exists_product_factorprefixn + S (mdr_a_pfp_shift_exists_product_factorprefix) = S ((S (mdr_i_pfp_shift_exists_product_factorprefix)) * BC)) /\ exists ff_q_mdr_pfp_shift_exists_product_factorprefixn. BB = ff_q_mdr_pfp_shift_exists_product_factorprefixn * S ((S (mdr_i_pfp_shift_exists_product_factorprefix)) * BC) + (mdr_a_pfp_shift_exists_product_factorprefix)))) /\ ((((exists ff_h_pfp_shift_exists_product_factorlast. ff_h_pfp_shift_exists_product_factorlast + S (0) = S ((S (M)) * BC)) /\ exists ff_q_pfp_shift_exists_product_factorlast. BB = ff_q_pfp_shift_exists_product_factorlast * S ((S (M)) * BC) + (0)))))) -> (((forall fom_index_pfp_shift_exists_product_oldleft. (exists fom_gap_pfp_shift_exists_product_oldleft_index_bound. fom_gap_pfp_shift_exists_product_oldleft_index_bound + S (fom_index_pfp_shift_exists_product_oldleft) = L) -> exists fom_value_pfp_shift_exists_product_oldleft. ((((exists fom_beta_height_pfp_shift_exists_product_oldleft_entry. fom_beta_height_pfp_shift_exists_product_oldleft_entry + S (fom_value_pfp_shift_exists_product_oldleft) = S ((S (fom_index_pfp_shift_exists_product_oldleft)) * ac)) /\ exists fom_beta_quotient_pfp_shift_exists_product_oldleft_entry. ab = fom_beta_quotient_pfp_shift_exists_product_oldleft_entry * S ((S (fom_index_pfp_shift_exists_product_oldleft)) * ac) + (fom_value_pfp_shift_exists_product_oldleft))) /\ (exists fom_gap_pfp_shift_exists_product_oldleft_value_bound. fom_gap_pfp_shift_exists_product_oldleft_value_bound + S (fom_value_pfp_shift_exists_product_oldleft) = p))) /\ (((forall fom_index_pfp_shift_exists_product_oldright. (exists fom_gap_pfp_shift_exists_product_oldright_index_bound. fom_gap_pfp_shift_exists_product_oldright_index_bound + S (fom_index_pfp_shift_exists_product_oldright) = M) -> exists fom_value_pfp_shift_exists_product_oldright. ((((exists fom_beta_height_pfp_shift_exists_product_oldright_entry. fom_beta_height_pfp_shift_exists_product_oldright_entry + S (fom_value_pfp_shift_exists_product_oldright) = S ((S (fom_index_pfp_shift_exists_product_oldright)) * bc)) /\ exists fom_beta_quotient_pfp_shift_exists_product_oldright_entry. bb = fom_beta_quotient_pfp_shift_exists_product_oldright_entry * S ((S (fom_index_pfp_shift_exists_product_oldright)) * bc) + (fom_value_pfp_shift_exists_product_oldright))) /\ (exists fom_gap_pfp_shift_exists_product_oldright_value_bound. fom_gap_pfp_shift_exists_product_oldright_value_bound + S (fom_value_pfp_shift_exists_product_oldright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_shift_exists_product_oldcoefficients. (exists pfa_gap_shift_exists_product_oldcoefficientsbound. pfa_gap_shift_exists_product_oldcoefficientsbound + S (pfc_index_shift_exists_product_oldcoefficients) = (N)) -> exists pfc_value_shift_exists_product_oldcoefficients. ((((exists ff_h_pfp_shift_exists_product_oldcoefficientsentry. ff_h_pfp_shift_exists_product_oldcoefficientsentry + S (pfc_value_shift_exists_product_oldcoefficients) = S ((S (pfc_index_shift_exists_product_oldcoefficients)) * cc)) /\ exists ff_q_pfp_shift_exists_product_oldcoefficientsentry. cb = ff_q_pfp_shift_exists_product_oldcoefficientsentry * S ((S (pfc_index_shift_exists_product_oldcoefficients)) * cc) + (pfc_value_shift_exists_product_oldcoefficients))) /\ ((exists pfc_terms_code_shift_exists_product_oldcoefficientscoefficient pfc_terms_scale_shift_exists_product_oldcoefficientscoefficient pfc_natural_sum_shift_exists_product_oldcoefficientscoefficient. ((forall pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal. (exists pfa_gap_shift_exists_product_oldcoefficientscoefficientdiagonalbound. pfa_gap_shift_exists_product_oldcoefficientscoefficientdiagonalbound + S (pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal) = (S (pfc_index_shift_exists_product_oldcoefficients))) -> exists pfc_value_shift_exists_product_oldcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_shift_exists_product_oldcoefficientscoefficientdiagonalentry. ff_h_pfp_shift_exists_product_oldcoefficientscoefficientdiagonalentry + S (pfc_value_shift_exists_product_oldcoefficientscoefficientdiagonal) = S ((S (pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_exists_product_oldcoefficientscoefficient)) /\ exists ff_q_pfp_shift_exists_product_oldcoefficientscoefficientdiagonalentry. pfc_terms_code_shift_exists_product_oldcoefficientscoefficient = ff_q_pfp_shift_exists_product_oldcoefficientscoefficientdiagonalentry * S ((S (pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_exists_product_oldcoefficientscoefficient) + (pfc_value_shift_exists_product_oldcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_shift_exists_product_oldcoefficientscoefficientdiagonalterm pfc_left_shift_exists_product_oldcoefficientscoefficientdiagonalterm pfc_right_shift_exists_product_oldcoefficientscoefficientdiagonalterm. (((pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal)+pfc_complement_shift_exists_product_oldcoefficientscoefficientdiagonalterm=(pfc_index_shift_exists_product_oldcoefficients)) /\ ((((((exists pfa_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftinside. pfa_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_shift_exists_product_oldcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal)) * ac) + (pfc_left_shift_exists_product_oldcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal)) /\ (((pfc_left_shift_exists_product_oldcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightinside. pfa_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_shift_exists_product_oldcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_shift_exists_product_oldcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_shift_exists_product_oldcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_exists_product_oldcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_shift_exists_product_oldcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_shift_exists_product_oldcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_shift_exists_product_oldcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_exists_product_oldcoefficientscoefficientdiagonal)=pfc_left_shift_exists_product_oldcoefficientscoefficientdiagonalterm*pfc_right_shift_exists_product_oldcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_exists_product_oldcoefficientscoefficientsum fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum. ((((exists fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_start. fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_start. fs_u_pfc_shift_exists_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_terminal. fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_shift_exists_product_oldcoefficientscoefficient) = S ((S (S (pfc_index_shift_exists_product_oldcoefficients))) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_terminal. fs_u_pfc_shift_exists_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_shift_exists_product_oldcoefficients))) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum) + (pfc_natural_sum_shift_exists_product_oldcoefficientscoefficient))) /\ forall fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps = S (pfc_index_shift_exists_product_oldcoefficients)) -> exists fs_a_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps fs_r_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps fs_s_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_exists_product_oldcoefficientscoefficient)) /\ exists fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_shift_exists_product_oldcoefficientscoefficient = fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_exists_product_oldcoefficientscoefficient) + (fs_a_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_shift_exists_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum) + (fs_r_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_shift_exists_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum) + (fs_s_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps = fs_r_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps + fs_a_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_exists_product_oldcoefficientscoefficientresiduebound. pfa_gap_shift_exists_product_oldcoefficientscoefficientresiduebound + S (pfc_value_shift_exists_product_oldcoefficients) = (p)) /\ ((exists pfa_offset_left_shift_exists_product_oldcoefficientscoefficientresiduecongruence pfa_offset_right_shift_exists_product_oldcoefficientscoefficientresiduecongruence. (pfc_natural_sum_shift_exists_product_oldcoefficientscoefficient) + (p) * pfa_offset_left_shift_exists_product_oldcoefficientscoefficientresiduecongruence = (pfc_value_shift_exists_product_oldcoefficients) + (p) * pfa_offset_right_shift_exists_product_oldcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (exists K db dc eb ec. ((((forall fom_index_pfp_shift_exists_product_newleft. (exists fom_gap_pfp_shift_exists_product_newleft_index_bound. fom_gap_pfp_shift_exists_product_newleft_index_bound + S (fom_index_pfp_shift_exists_product_newleft) = L) -> exists fom_value_pfp_shift_exists_product_newleft. ((((exists fom_beta_height_pfp_shift_exists_product_newleft_entry. fom_beta_height_pfp_shift_exists_product_newleft_entry + S (fom_value_pfp_shift_exists_product_newleft) = S ((S (fom_index_pfp_shift_exists_product_newleft)) * ac)) /\ exists fom_beta_quotient_pfp_shift_exists_product_newleft_entry. ab = fom_beta_quotient_pfp_shift_exists_product_newleft_entry * S ((S (fom_index_pfp_shift_exists_product_newleft)) * ac) + (fom_value_pfp_shift_exists_product_newleft))) /\ (exists fom_gap_pfp_shift_exists_product_newleft_value_bound. fom_gap_pfp_shift_exists_product_newleft_value_bound + S (fom_value_pfp_shift_exists_product_newleft) = p))) /\ (((forall fom_index_pfp_shift_exists_product_newright. (exists fom_gap_pfp_shift_exists_product_newright_index_bound. fom_gap_pfp_shift_exists_product_newright_index_bound + S (fom_index_pfp_shift_exists_product_newright) = S M) -> exists fom_value_pfp_shift_exists_product_newright. ((((exists fom_beta_height_pfp_shift_exists_product_newright_entry. fom_beta_height_pfp_shift_exists_product_newright_entry + S (fom_value_pfp_shift_exists_product_newright) = S ((S (fom_index_pfp_shift_exists_product_newright)) * BC)) /\ exists fom_beta_quotient_pfp_shift_exists_product_newright_entry. BB = fom_beta_quotient_pfp_shift_exists_product_newright_entry * S ((S (fom_index_pfp_shift_exists_product_newright)) * BC) + (fom_value_pfp_shift_exists_product_newright))) /\ (exists fom_gap_pfp_shift_exists_product_newright_value_bound. fom_gap_pfp_shift_exists_product_newright_value_bound + S (fom_value_pfp_shift_exists_product_newright) = p))) /\ (((((((L)=0 \/ (S M)=0) /\ (((K)=0)))) \/ (((~((L)=0)) /\ (((~((S M)=0)) /\ (((L)+(S M)=S (K)))))))) /\ ((forall pfc_index_shift_exists_product_newcoefficients. (exists pfa_gap_shift_exists_product_newcoefficientsbound. pfa_gap_shift_exists_product_newcoefficientsbound + S (pfc_index_shift_exists_product_newcoefficients) = (K)) -> exists pfc_value_shift_exists_product_newcoefficients. ((((exists ff_h_pfp_shift_exists_product_newcoefficientsentry. ff_h_pfp_shift_exists_product_newcoefficientsentry + S (pfc_value_shift_exists_product_newcoefficients) = S ((S (pfc_index_shift_exists_product_newcoefficients)) * dc)) /\ exists ff_q_pfp_shift_exists_product_newcoefficientsentry. db = ff_q_pfp_shift_exists_product_newcoefficientsentry * S ((S (pfc_index_shift_exists_product_newcoefficients)) * dc) + (pfc_value_shift_exists_product_newcoefficients))) /\ ((exists pfc_terms_code_shift_exists_product_newcoefficientscoefficient pfc_terms_scale_shift_exists_product_newcoefficientscoefficient pfc_natural_sum_shift_exists_product_newcoefficientscoefficient. ((forall pfc_index_shift_exists_product_newcoefficientscoefficientdiagonal. (exists pfa_gap_shift_exists_product_newcoefficientscoefficientdiagonalbound. pfa_gap_shift_exists_product_newcoefficientscoefficientdiagonalbound + S (pfc_index_shift_exists_product_newcoefficientscoefficientdiagonal) = (S (pfc_index_shift_exists_product_newcoefficients))) -> exists pfc_value_shift_exists_product_newcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_shift_exists_product_newcoefficientscoefficientdiagonalentry. ff_h_pfp_shift_exists_product_newcoefficientscoefficientdiagonalentry + S (pfc_value_shift_exists_product_newcoefficientscoefficientdiagonal) = S ((S (pfc_index_shift_exists_product_newcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_exists_product_newcoefficientscoefficient)) /\ exists ff_q_pfp_shift_exists_product_newcoefficientscoefficientdiagonalentry. pfc_terms_code_shift_exists_product_newcoefficientscoefficient = ff_q_pfp_shift_exists_product_newcoefficientscoefficientdiagonalentry * S ((S (pfc_index_shift_exists_product_newcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_exists_product_newcoefficientscoefficient) + (pfc_value_shift_exists_product_newcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_shift_exists_product_newcoefficientscoefficientdiagonalterm pfc_left_shift_exists_product_newcoefficientscoefficientdiagonalterm pfc_right_shift_exists_product_newcoefficientscoefficientdiagonalterm. (((pfc_index_shift_exists_product_newcoefficientscoefficientdiagonal)+pfc_complement_shift_exists_product_newcoefficientscoefficientdiagonalterm=(pfc_index_shift_exists_product_newcoefficients)) /\ ((((((exists pfa_gap_shift_exists_product_newcoefficientscoefficientdiagonaltermleftinside. pfa_gap_shift_exists_product_newcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_shift_exists_product_newcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_exists_product_newcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_shift_exists_product_newcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_shift_exists_product_newcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_shift_exists_product_newcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_exists_product_newcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_exists_product_newcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_shift_exists_product_newcoefficientscoefficientdiagonal)) * ac) + (pfc_left_shift_exists_product_newcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_exists_product_newcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_shift_exists_product_newcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_exists_product_newcoefficientscoefficientdiagonal)) /\ (((pfc_left_shift_exists_product_newcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_exists_product_newcoefficientscoefficientdiagonaltermrightinside. pfa_gap_shift_exists_product_newcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_shift_exists_product_newcoefficientscoefficientdiagonalterm) = (S M)) /\ ((((exists ff_h_pfp_shift_exists_product_newcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_shift_exists_product_newcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_shift_exists_product_newcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_shift_exists_product_newcoefficientscoefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_shift_exists_product_newcoefficientscoefficientdiagonaltermrightentry. BB = ff_q_pfp_shift_exists_product_newcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_exists_product_newcoefficientscoefficientdiagonalterm)) * BC) + (pfc_right_shift_exists_product_newcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_exists_product_newcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_shift_exists_product_newcoefficientscoefficientdiagonaltermrightoutside+(S M)=(pfc_complement_shift_exists_product_newcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_shift_exists_product_newcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_exists_product_newcoefficientscoefficientdiagonal)=pfc_left_shift_exists_product_newcoefficientscoefficientdiagonalterm*pfc_right_shift_exists_product_newcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_exists_product_newcoefficientscoefficientsum fs_v_pfc_shift_exists_product_newcoefficientscoefficientsum. ((((exists fs_h_pfc_shift_exists_product_newcoefficientscoefficientsum_body_start. fs_h_pfc_shift_exists_product_newcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_exists_product_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_newcoefficientscoefficientsum_body_start. fs_u_pfc_shift_exists_product_newcoefficientscoefficientsum = fs_q_pfc_shift_exists_product_newcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_exists_product_newcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_exists_product_newcoefficientscoefficientsum_body_terminal. fs_h_pfc_shift_exists_product_newcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_shift_exists_product_newcoefficientscoefficient) = S ((S (S (pfc_index_shift_exists_product_newcoefficients))) * fs_v_pfc_shift_exists_product_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_newcoefficientscoefficientsum_body_terminal. fs_u_pfc_shift_exists_product_newcoefficientscoefficientsum = fs_q_pfc_shift_exists_product_newcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_shift_exists_product_newcoefficients))) * fs_v_pfc_shift_exists_product_newcoefficientscoefficientsum) + (pfc_natural_sum_shift_exists_product_newcoefficientscoefficient))) /\ forall fs_i_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps = S (pfc_index_shift_exists_product_newcoefficients)) -> exists fs_a_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps fs_r_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps fs_s_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_exists_product_newcoefficientscoefficient)) /\ exists fs_q_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_shift_exists_product_newcoefficientscoefficient = fs_q_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_exists_product_newcoefficientscoefficient) + (fs_a_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_shift_exists_product_newcoefficientscoefficientsum = fs_q_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_newcoefficientscoefficientsum) + (fs_r_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_shift_exists_product_newcoefficientscoefficientsum = fs_q_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_newcoefficientscoefficientsum) + (fs_s_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps = fs_r_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps + fs_a_pfc_shift_exists_product_newcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_exists_product_newcoefficientscoefficientresiduebound. pfa_gap_shift_exists_product_newcoefficientscoefficientresiduebound + S (pfc_value_shift_exists_product_newcoefficients) = (p)) /\ ((exists pfa_offset_left_shift_exists_product_newcoefficientscoefficientresiduecongruence pfa_offset_right_shift_exists_product_newcoefficientscoefficientresiduecongruence. (pfc_natural_sum_shift_exists_product_newcoefficientscoefficient) + (p) * pfa_offset_left_shift_exists_product_newcoefficientscoefficientresiduecongruence = (pfc_value_shift_exists_product_newcoefficients) + (p) * pfa_offset_right_shift_exists_product_newcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ (((((forall mdr_i_pfp_shift_exists_product_shiftprefix mdr_a_pfp_shift_exists_product_shiftprefix. (exists mdr_gap_pfp_shift_exists_product_shiftprefixb. mdr_gap_pfp_shift_exists_product_shiftprefixb + S (mdr_i_pfp_shift_exists_product_shiftprefix) = (N)) -> (((exists ff_h_mdr_pfp_shift_exists_product_shiftprefixo. ff_h_mdr_pfp_shift_exists_product_shiftprefixo + S (mdr_a_pfp_shift_exists_product_shiftprefix) = S ((S (mdr_i_pfp_shift_exists_product_shiftprefix)) * cc)) /\ exists ff_q_mdr_pfp_shift_exists_product_shiftprefixo. cb = ff_q_mdr_pfp_shift_exists_product_shiftprefixo * S ((S (mdr_i_pfp_shift_exists_product_shiftprefix)) * cc) + (mdr_a_pfp_shift_exists_product_shiftprefix))) -> (((exists ff_h_mdr_pfp_shift_exists_product_shiftprefixn. ff_h_mdr_pfp_shift_exists_product_shiftprefixn + S (mdr_a_pfp_shift_exists_product_shiftprefix) = S ((S (mdr_i_pfp_shift_exists_product_shiftprefix)) * ec)) /\ exists ff_q_mdr_pfp_shift_exists_product_shiftprefixn. eb = ff_q_mdr_pfp_shift_exists_product_shiftprefixn * S ((S (mdr_i_pfp_shift_exists_product_shiftprefix)) * ec) + (mdr_a_pfp_shift_exists_product_shiftprefix)))) /\ ((((exists ff_h_pfp_shift_exists_product_shiftlast. ff_h_pfp_shift_exists_product_shiftlast + S (0) = S ((S (N)) * ec)) /\ exists ff_q_pfp_shift_exists_product_shiftlast. eb = ff_q_pfp_shift_exists_product_shiftlast * S ((S (N)) * ec) + (0)))))) /\ ((forall pfrep_power_shift_exists_product_equivalence pfrep_left_shift_exists_product_equivalence pfrep_right_shift_exists_product_equivalence. ((exists pfrep_position_shift_exists_product_equivalencefirst. ((pfrep_position_shift_exists_product_equivalencefirst+S (pfrep_power_shift_exists_product_equivalence)=(K)) /\ ((((exists ff_h_pfp_shift_exists_product_equivalencefirstentry. ff_h_pfp_shift_exists_product_equivalencefirstentry + S (pfrep_left_shift_exists_product_equivalence) = S ((S (pfrep_position_shift_exists_product_equivalencefirst)) * dc)) /\ exists ff_q_pfp_shift_exists_product_equivalencefirstentry. db = ff_q_pfp_shift_exists_product_equivalencefirstentry * S ((S (pfrep_position_shift_exists_product_equivalencefirst)) * dc) + (pfrep_left_shift_exists_product_equivalence)))))) \/ (((exists pfrep_gap_shift_exists_product_equivalencefirstoutside. pfrep_gap_shift_exists_product_equivalencefirstoutside+(K)=(pfrep_power_shift_exists_product_equivalence)) /\ (((pfrep_left_shift_exists_product_equivalence)=0))))) -> ((exists pfrep_position_shift_exists_product_equivalencesecond. ((pfrep_position_shift_exists_product_equivalencesecond+S (pfrep_power_shift_exists_product_equivalence)=(S N)) /\ ((((exists ff_h_pfp_shift_exists_product_equivalencesecondentry. ff_h_pfp_shift_exists_product_equivalencesecondentry + S (pfrep_right_shift_exists_product_equivalence) = S ((S (pfrep_position_shift_exists_product_equivalencesecond)) * ec)) /\ exists ff_q_pfp_shift_exists_product_equivalencesecondentry. eb = ff_q_pfp_shift_exists_product_equivalencesecondentry * S ((S (pfrep_position_shift_exists_product_equivalencesecond)) * ec) + (pfrep_right_shift_exists_product_equivalence)))))) \/ (((exists pfrep_gap_shift_exists_product_equivalencesecondoutside. pfrep_gap_shift_exists_product_equivalencesecondoutside+(S N)=(pfrep_power_shift_exists_product_equivalence)) /\ (((pfrep_right_shift_exists_product_equivalence)=0))))) -> pfrep_left_shift_exists_product_equivalence=pfrep_right_shift_exists_product_equivalence))))))Constructive proof overview
Generated structural guide
Given a genuine shifted factor, construct its proper-length product and a genuine shift of the original output, then derive their formal equivalence without any output witness premise.
The unchanged tactic script uses 6 declared prerequisites and contains 95 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
prime_nonzero Alpha theorem; checked-use authorized polynomial_product_length_exists Alpha theorem; checked-use authorized prime_field_polynomial_convolution_at_length_exists Alpha theorem; checked-use authorized PG0002 prime_field_polynomial_shift_bounded PG0001 prime_field_polynomial_shift_exists PG000C prime_field_polynomial_convolution_shift_right_equivalentDirect 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
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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–15
03Establish hcopyL16–17
Establish this local claim before using it. It is not an additional assumption.
- L16
have hcopy : FpPolyProduct(p,ab,ac,L,bb,bc,M,cb,cc,N)Definitions: FpPolyProduct - L17
exact hc
04Separate the logical casesL18–20
05Establish hpL21–26
06Establish hlengthL27–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial product length exists.
07Separate the logical casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
cases hlength
08Establish hvL32–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial convolution at length exists.
- L32
have hv : ∃ d. ∃ e. FpPolyProduct(p,ab,ac,L,BB,BC,S M,d,e,x)Definitions: FpPolyProduct - L33
specialize prime_field_polynomial_convolution_at_length_exists (p) - L34
specialize prime_field_polynomial_convolution_at_length_exists (ab) - L35
specialize prime_field_polynomial_convolution_at_length_exists (ac) - L36
specialize prime_field_polynomial_convolution_at_length_exists (L) - L37
specialize prime_field_polynomial_convolution_at_length_exists (BB) - L38
specialize prime_field_polynomial_convolution_at_length_exists (BC) - L39
specialize prime_field_polynomial_convolution_at_length_exists (S M) - L40
specialize prime_field_polynomial_convolution_at_length_exists (x) - L41
apply prime_field_polynomial_convolution_at_length_exists
09Use earlier factsL42–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
exact hp - L43
exact hcopy_left - L44
specialize prime_field_polynomial_shift_bounded (p) - L45
specialize prime_field_polynomial_shift_bounded (bb) - L46
specialize prime_field_polynomial_shift_bounded (bc) - L47
specialize prime_field_polynomial_shift_bounded (M) - L48
specialize prime_field_polynomial_shift_bounded (BB) - L49
specialize prime_field_polynomial_shift_bounded (BC) - L50
apply prime_field_polynomial_shift_bounded - L51
exact hprime
10Use earlier factsL52–54
11Separate the logical casesL55–56
12Establish heL57–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial shift exists.
13Separate the logical casesL62–63
14Construct an explicit witnessL64–68
15Separate the logical casesL69–69
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L69
split
16Use earlier factsL70–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
exact hv_witness_witness
17Separate the logical casesL71–71
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L71
split
18Use earlier factsL72–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
exact he_witness_witness - L73
specialize prime_field_polynomial_convolution_shift_right_equivalent (p) - L74
specialize prime_field_polynomial_convolution_shift_right_equivalent (ab) - L75
specialize prime_field_polynomial_convolution_shift_right_equivalent (ac) - L76
specialize prime_field_polynomial_convolution_shift_right_equivalent (L) - L77
specialize prime_field_polynomial_convolution_shift_right_equivalent (bb) - L78
specialize prime_field_polynomial_convolution_shift_right_equivalent (bc) - L79
specialize prime_field_polynomial_convolution_shift_right_equivalent (M) - L80
specialize prime_field_polynomial_convolution_shift_right_equivalent (cb) - L81
specialize prime_field_polynomial_convolution_shift_right_equivalent (cc)
19Use earlier factsL82–91
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
specialize prime_field_polynomial_convolution_shift_right_equivalent (N) - L83
specialize prime_field_polynomial_convolution_shift_right_equivalent (BB) - L84
specialize prime_field_polynomial_convolution_shift_right_equivalent (BC) - L85
specialize prime_field_polynomial_convolution_shift_right_equivalent (x1) - L86
specialize prime_field_polynomial_convolution_shift_right_equivalent (x2) - L87
specialize prime_field_polynomial_convolution_shift_right_equivalent (x) - L88
specialize prime_field_polynomial_convolution_shift_right_equivalent (x3) - L89
specialize prime_field_polynomial_convolution_shift_right_equivalent (x4) - L90
apply prime_field_polynomial_convolution_shift_right_equivalent - L91
exact hp
Original exact command ledger · 95 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro L - 0005
intro bb - 0006
intro bc - 0007
intro M - 0008
intro cb - 0009
intro cc - 0010
intro N - 0011
intro BB - 0012
intro BC - 0013
intro hprime - 0014
intro hs - 0015
intro hc - 0016
have hcopy : ((forall fom_index_pfp_shift_exists_product_oldleft. (exists fom_gap_pfp_shift_exists_product_oldleft_index_bound. fom_gap_pfp_shift_exists_product_oldleft_index_bound + S (fom_index_pfp_shift_exists_product_oldleft) = L) -> exists fom_value_pfp_shift_exists_product_oldleft. ((((exists fom_beta_height_pfp_shift_exists_product_oldleft_entry. fom_beta_height_pfp_shift_exists_product_oldleft_entry + S (fom_value_pfp_shift_exists_product_oldleft) = S ((S (fom_index_pfp_shift_exists_product_oldleft)) * ac)) /\ exists fom_beta_quotient_pfp_shift_exists_product_oldleft_entry. ab = fom_beta_quotient_pfp_shift_exists_product_oldleft_entry * S ((S (fom_index_pfp_shift_exists_product_oldleft)) * ac) + (fom_value_pfp_shift_exists_product_oldleft))) /\ (exists fom_gap_pfp_shift_exists_product_oldleft_value_bound. fom_gap_pfp_shift_exists_product_oldleft_value_bound + S (fom_value_pfp_shift_exists_product_oldleft) = p))) /\ (((forall fom_index_pfp_shift_exists_product_oldright. (exists fom_gap_pfp_shift_exists_product_oldright_index_bound. fom_gap_pfp_shift_exists_product_oldright_index_bound + S (fom_index_pfp_shift_exists_product_oldright) = M) -> exists fom_value_pfp_shift_exists_product_oldright. ((((exists fom_beta_height_pfp_shift_exists_product_oldright_entry. fom_beta_height_pfp_shift_exists_product_oldright_entry + S (fom_value_pfp_shift_exists_product_oldright) = S ((S (fom_index_pfp_shift_exists_product_oldright)) * bc)) /\ exists fom_beta_quotient_pfp_shift_exists_product_oldright_entry. bb = fom_beta_quotient_pfp_shift_exists_product_oldright_entry * S ((S (fom_index_pfp_shift_exists_product_oldright)) * bc) + (fom_value_pfp_shift_exists_product_oldright))) /\ (exists fom_gap_pfp_shift_exists_product_oldright_value_bound. fom_gap_pfp_shift_exists_product_oldright_value_bound + S (fom_value_pfp_shift_exists_product_oldright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_shift_exists_product_oldcoefficients. (exists pfa_gap_shift_exists_product_oldcoefficientsbound. pfa_gap_shift_exists_product_oldcoefficientsbound + S (pfc_index_shift_exists_product_oldcoefficients) = (N)) -> exists pfc_value_shift_exists_product_oldcoefficients. ((((exists ff_h_pfp_shift_exists_product_oldcoefficientsentry. ff_h_pfp_shift_exists_product_oldcoefficientsentry + S (pfc_value_shift_exists_product_oldcoefficients) = S ((S (pfc_index_shift_exists_product_oldcoefficients)) * cc)) /\ exists ff_q_pfp_shift_exists_product_oldcoefficientsentry. cb = ff_q_pfp_shift_exists_product_oldcoefficientsentry * S ((S (pfc_index_shift_exists_product_oldcoefficients)) * cc) + (pfc_value_shift_exists_product_oldcoefficients))) /\ ((exists pfc_terms_code_shift_exists_product_oldcoefficientscoefficient pfc_terms_scale_shift_exists_product_oldcoefficientscoefficient pfc_natural_sum_shift_exists_product_oldcoefficientscoefficient. ((forall pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal. (exists pfa_gap_shift_exists_product_oldcoefficientscoefficientdiagonalbound. pfa_gap_shift_exists_product_oldcoefficientscoefficientdiagonalbound + S (pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal) = (S (pfc_index_shift_exists_product_oldcoefficients))) -> exists pfc_value_shift_exists_product_oldcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_shift_exists_product_oldcoefficientscoefficientdiagonalentry. ff_h_pfp_shift_exists_product_oldcoefficientscoefficientdiagonalentry + S (pfc_value_shift_exists_product_oldcoefficientscoefficientdiagonal) = S ((S (pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_exists_product_oldcoefficientscoefficient)) /\ exists ff_q_pfp_shift_exists_product_oldcoefficientscoefficientdiagonalentry. pfc_terms_code_shift_exists_product_oldcoefficientscoefficient = ff_q_pfp_shift_exists_product_oldcoefficientscoefficientdiagonalentry * S ((S (pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_exists_product_oldcoefficientscoefficient) + (pfc_value_shift_exists_product_oldcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_shift_exists_product_oldcoefficientscoefficientdiagonalterm pfc_left_shift_exists_product_oldcoefficientscoefficientdiagonalterm pfc_right_shift_exists_product_oldcoefficientscoefficientdiagonalterm. (((pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal)+pfc_complement_shift_exists_product_oldcoefficientscoefficientdiagonalterm=(pfc_index_shift_exists_product_oldcoefficients)) /\ ((((((exists pfa_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftinside. pfa_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_shift_exists_product_oldcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal)) * ac) + (pfc_left_shift_exists_product_oldcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_exists_product_oldcoefficientscoefficientdiagonal)) /\ (((pfc_left_shift_exists_product_oldcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightinside. pfa_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_shift_exists_product_oldcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_shift_exists_product_oldcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_shift_exists_product_oldcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_exists_product_oldcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_shift_exists_product_oldcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_shift_exists_product_oldcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_shift_exists_product_oldcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_shift_exists_product_oldcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_exists_product_oldcoefficientscoefficientdiagonal)=pfc_left_shift_exists_product_oldcoefficientscoefficientdiagonalterm*pfc_right_shift_exists_product_oldcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_exists_product_oldcoefficientscoefficientsum fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum. ((((exists fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_start. fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_start. fs_u_pfc_shift_exists_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_terminal. fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_shift_exists_product_oldcoefficientscoefficient) = S ((S (S (pfc_index_shift_exists_product_oldcoefficients))) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_terminal. fs_u_pfc_shift_exists_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_shift_exists_product_oldcoefficients))) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum) + (pfc_natural_sum_shift_exists_product_oldcoefficientscoefficient))) /\ forall fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps = S (pfc_index_shift_exists_product_oldcoefficients)) -> exists fs_a_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps fs_r_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps fs_s_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_exists_product_oldcoefficientscoefficient)) /\ exists fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_shift_exists_product_oldcoefficientscoefficient = fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_exists_product_oldcoefficientscoefficient) + (fs_a_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_shift_exists_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum) + (fs_r_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_shift_exists_product_oldcoefficientscoefficientsum = fs_q_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_oldcoefficientscoefficientsum) + (fs_s_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps = fs_r_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps + fs_a_pfc_shift_exists_product_oldcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_exists_product_oldcoefficientscoefficientresiduebound. pfa_gap_shift_exists_product_oldcoefficientscoefficientresiduebound + S (pfc_value_shift_exists_product_oldcoefficients) = (p)) /\ ((exists pfa_offset_left_shift_exists_product_oldcoefficientscoefficientresiduecongruence pfa_offset_right_shift_exists_product_oldcoefficientscoefficientresiduecongruence. (pfc_natural_sum_shift_exists_product_oldcoefficientscoefficient) + (p) * pfa_offset_left_shift_exists_product_oldcoefficientscoefficientresiduecongruence = (pfc_value_shift_exists_product_oldcoefficients) + (p) * pfa_offset_right_shift_exists_product_oldcoefficientscoefficientresiduecongruence)))))))))))))))))) - 0017
exact hc - 0018
cases hcopy - 0019
cases hcopy_right - 0020
cases hcopy_right_right - 0021
have hp : ~(p=0) - 0022
intro hz - 0023
specialize prime_nonzero (p) - 0024
apply prime_nonzero - 0025
exact hprime - 0026
exact hz - 0027
have hlength : exists K. (((((L)=0 \/ (S M)=0) /\ (((K)=0)))) \/ (((~((L)=0)) /\ (((~((S M)=0)) /\ (((L)+(S M)=S (K)))))))) - 0028
specialize polynomial_product_length_exists (L) - 0029
specialize polynomial_product_length_exists (S M) - 0030
apply polynomial_product_length_exists - 0031
cases hlength - 0032
have hv : exists d e. ((forall fom_index_pfp_shift_exists_product_chosenleft. (exists fom_gap_pfp_shift_exists_product_chosenleft_index_bound. fom_gap_pfp_shift_exists_product_chosenleft_index_bound + S (fom_index_pfp_shift_exists_product_chosenleft) = L) -> exists fom_value_pfp_shift_exists_product_chosenleft. ((((exists fom_beta_height_pfp_shift_exists_product_chosenleft_entry. fom_beta_height_pfp_shift_exists_product_chosenleft_entry + S (fom_value_pfp_shift_exists_product_chosenleft) = S ((S (fom_index_pfp_shift_exists_product_chosenleft)) * ac)) /\ exists fom_beta_quotient_pfp_shift_exists_product_chosenleft_entry. ab = fom_beta_quotient_pfp_shift_exists_product_chosenleft_entry * S ((S (fom_index_pfp_shift_exists_product_chosenleft)) * ac) + (fom_value_pfp_shift_exists_product_chosenleft))) /\ (exists fom_gap_pfp_shift_exists_product_chosenleft_value_bound. fom_gap_pfp_shift_exists_product_chosenleft_value_bound + S (fom_value_pfp_shift_exists_product_chosenleft) = p))) /\ (((forall fom_index_pfp_shift_exists_product_chosenright. (exists fom_gap_pfp_shift_exists_product_chosenright_index_bound. fom_gap_pfp_shift_exists_product_chosenright_index_bound + S (fom_index_pfp_shift_exists_product_chosenright) = S M) -> exists fom_value_pfp_shift_exists_product_chosenright. ((((exists fom_beta_height_pfp_shift_exists_product_chosenright_entry. fom_beta_height_pfp_shift_exists_product_chosenright_entry + S (fom_value_pfp_shift_exists_product_chosenright) = S ((S (fom_index_pfp_shift_exists_product_chosenright)) * BC)) /\ exists fom_beta_quotient_pfp_shift_exists_product_chosenright_entry. BB = fom_beta_quotient_pfp_shift_exists_product_chosenright_entry * S ((S (fom_index_pfp_shift_exists_product_chosenright)) * BC) + (fom_value_pfp_shift_exists_product_chosenright))) /\ (exists fom_gap_pfp_shift_exists_product_chosenright_value_bound. fom_gap_pfp_shift_exists_product_chosenright_value_bound + S (fom_value_pfp_shift_exists_product_chosenright) = p))) /\ (((((((L)=0 \/ (S M)=0) /\ (((x)=0)))) \/ (((~((L)=0)) /\ (((~((S M)=0)) /\ (((L)+(S M)=S (x)))))))) /\ ((forall pfc_index_shift_exists_product_chosencoefficients. (exists pfa_gap_shift_exists_product_chosencoefficientsbound. pfa_gap_shift_exists_product_chosencoefficientsbound + S (pfc_index_shift_exists_product_chosencoefficients) = (x)) -> exists pfc_value_shift_exists_product_chosencoefficients. ((((exists ff_h_pfp_shift_exists_product_chosencoefficientsentry. ff_h_pfp_shift_exists_product_chosencoefficientsentry + S (pfc_value_shift_exists_product_chosencoefficients) = S ((S (pfc_index_shift_exists_product_chosencoefficients)) * e)) /\ exists ff_q_pfp_shift_exists_product_chosencoefficientsentry. d = ff_q_pfp_shift_exists_product_chosencoefficientsentry * S ((S (pfc_index_shift_exists_product_chosencoefficients)) * e) + (pfc_value_shift_exists_product_chosencoefficients))) /\ ((exists pfc_terms_code_shift_exists_product_chosencoefficientscoefficient pfc_terms_scale_shift_exists_product_chosencoefficientscoefficient pfc_natural_sum_shift_exists_product_chosencoefficientscoefficient. ((forall pfc_index_shift_exists_product_chosencoefficientscoefficientdiagonal. (exists pfa_gap_shift_exists_product_chosencoefficientscoefficientdiagonalbound. pfa_gap_shift_exists_product_chosencoefficientscoefficientdiagonalbound + S (pfc_index_shift_exists_product_chosencoefficientscoefficientdiagonal) = (S (pfc_index_shift_exists_product_chosencoefficients))) -> exists pfc_value_shift_exists_product_chosencoefficientscoefficientdiagonal. ((((exists ff_h_pfp_shift_exists_product_chosencoefficientscoefficientdiagonalentry. ff_h_pfp_shift_exists_product_chosencoefficientscoefficientdiagonalentry + S (pfc_value_shift_exists_product_chosencoefficientscoefficientdiagonal) = S ((S (pfc_index_shift_exists_product_chosencoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_exists_product_chosencoefficientscoefficient)) /\ exists ff_q_pfp_shift_exists_product_chosencoefficientscoefficientdiagonalentry. pfc_terms_code_shift_exists_product_chosencoefficientscoefficient = ff_q_pfp_shift_exists_product_chosencoefficientscoefficientdiagonalentry * S ((S (pfc_index_shift_exists_product_chosencoefficientscoefficientdiagonal)) * pfc_terms_scale_shift_exists_product_chosencoefficientscoefficient) + (pfc_value_shift_exists_product_chosencoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_shift_exists_product_chosencoefficientscoefficientdiagonalterm pfc_left_shift_exists_product_chosencoefficientscoefficientdiagonalterm pfc_right_shift_exists_product_chosencoefficientscoefficientdiagonalterm. (((pfc_index_shift_exists_product_chosencoefficientscoefficientdiagonal)+pfc_complement_shift_exists_product_chosencoefficientscoefficientdiagonalterm=(pfc_index_shift_exists_product_chosencoefficients)) /\ ((((((exists pfa_gap_shift_exists_product_chosencoefficientscoefficientdiagonaltermleftinside. pfa_gap_shift_exists_product_chosencoefficientscoefficientdiagonaltermleftinside + S (pfc_index_shift_exists_product_chosencoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_shift_exists_product_chosencoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_shift_exists_product_chosencoefficientscoefficientdiagonaltermleftentry + S (pfc_left_shift_exists_product_chosencoefficientscoefficientdiagonalterm) = S ((S (pfc_index_shift_exists_product_chosencoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_shift_exists_product_chosencoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_shift_exists_product_chosencoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_shift_exists_product_chosencoefficientscoefficientdiagonal)) * ac) + (pfc_left_shift_exists_product_chosencoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_exists_product_chosencoefficientscoefficientdiagonaltermleftoutside. pfc_gap_shift_exists_product_chosencoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_shift_exists_product_chosencoefficientscoefficientdiagonal)) /\ (((pfc_left_shift_exists_product_chosencoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_shift_exists_product_chosencoefficientscoefficientdiagonaltermrightinside. pfa_gap_shift_exists_product_chosencoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_shift_exists_product_chosencoefficientscoefficientdiagonalterm) = (S M)) /\ ((((exists ff_h_pfp_shift_exists_product_chosencoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_shift_exists_product_chosencoefficientscoefficientdiagonaltermrightentry + S (pfc_right_shift_exists_product_chosencoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_shift_exists_product_chosencoefficientscoefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_shift_exists_product_chosencoefficientscoefficientdiagonaltermrightentry. BB = ff_q_pfp_shift_exists_product_chosencoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_shift_exists_product_chosencoefficientscoefficientdiagonalterm)) * BC) + (pfc_right_shift_exists_product_chosencoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_shift_exists_product_chosencoefficientscoefficientdiagonaltermrightoutside. pfc_gap_shift_exists_product_chosencoefficientscoefficientdiagonaltermrightoutside+(S M)=(pfc_complement_shift_exists_product_chosencoefficientscoefficientdiagonalterm)) /\ (((pfc_right_shift_exists_product_chosencoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_shift_exists_product_chosencoefficientscoefficientdiagonal)=pfc_left_shift_exists_product_chosencoefficientscoefficientdiagonalterm*pfc_right_shift_exists_product_chosencoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_shift_exists_product_chosencoefficientscoefficientsum fs_v_pfc_shift_exists_product_chosencoefficientscoefficientsum. ((((exists fs_h_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_start. fs_h_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_shift_exists_product_chosencoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_start. fs_u_pfc_shift_exists_product_chosencoefficientscoefficientsum = fs_q_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_shift_exists_product_chosencoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_terminal. fs_h_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_shift_exists_product_chosencoefficientscoefficient) = S ((S (S (pfc_index_shift_exists_product_chosencoefficients))) * fs_v_pfc_shift_exists_product_chosencoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_terminal. fs_u_pfc_shift_exists_product_chosencoefficientscoefficientsum = fs_q_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_shift_exists_product_chosencoefficients))) * fs_v_pfc_shift_exists_product_chosencoefficientscoefficientsum) + (pfc_natural_sum_shift_exists_product_chosencoefficientscoefficient))) /\ forall fs_i_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps = S (pfc_index_shift_exists_product_chosencoefficients)) -> exists fs_a_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps fs_r_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps fs_s_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_summand. fs_h_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_exists_product_chosencoefficientscoefficient)) /\ exists fs_q_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_summand. pfc_terms_code_shift_exists_product_chosencoefficientscoefficient = fs_q_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps)) * pfc_terms_scale_shift_exists_product_chosencoefficientscoefficient) + (fs_a_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_partial. fs_h_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_chosencoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_partial. fs_u_pfc_shift_exists_product_chosencoefficientscoefficientsum = fs_q_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_chosencoefficientscoefficientsum) + (fs_r_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_successor. fs_h_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_chosencoefficientscoefficientsum)) /\ exists fs_q_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_successor. fs_u_pfc_shift_exists_product_chosencoefficientscoefficientsum = fs_q_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps)) * fs_v_pfc_shift_exists_product_chosencoefficientscoefficientsum) + (fs_s_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps = fs_r_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps + fs_a_pfc_shift_exists_product_chosencoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_shift_exists_product_chosencoefficientscoefficientresiduebound. pfa_gap_shift_exists_product_chosencoefficientscoefficientresiduebound + S (pfc_value_shift_exists_product_chosencoefficients) = (p)) /\ ((exists pfa_offset_left_shift_exists_product_chosencoefficientscoefficientresiduecongruence pfa_offset_right_shift_exists_product_chosencoefficientscoefficientresiduecongruence. (pfc_natural_sum_shift_exists_product_chosencoefficientscoefficient) + (p) * pfa_offset_left_shift_exists_product_chosencoefficientscoefficientresiduecongruence = (pfc_value_shift_exists_product_chosencoefficients) + (p) * pfa_offset_right_shift_exists_product_chosencoefficientscoefficientresiduecongruence)))))))))))))))))) - 0033
specialize prime_field_polynomial_convolution_at_length_exists (p) - 0034
specialize prime_field_polynomial_convolution_at_length_exists (ab) - 0035
specialize prime_field_polynomial_convolution_at_length_exists (ac) - 0036
specialize prime_field_polynomial_convolution_at_length_exists (L) - 0037
specialize prime_field_polynomial_convolution_at_length_exists (BB) - 0038
specialize prime_field_polynomial_convolution_at_length_exists (BC) - 0039
specialize prime_field_polynomial_convolution_at_length_exists (S M) - 0040
specialize prime_field_polynomial_convolution_at_length_exists (x) - 0041
apply prime_field_polynomial_convolution_at_length_exists - 0042
exact hp - 0043
exact hcopy_left - 0044
specialize prime_field_polynomial_shift_bounded (p) - 0045
specialize prime_field_polynomial_shift_bounded (bb) - 0046
specialize prime_field_polynomial_shift_bounded (bc) - 0047
specialize prime_field_polynomial_shift_bounded (M) - 0048
specialize prime_field_polynomial_shift_bounded (BB) - 0049
specialize prime_field_polynomial_shift_bounded (BC) - 0050
apply prime_field_polynomial_shift_bounded - 0051
exact hprime - 0052
exact hcopy_right_left - 0053
exact hs - 0054
exact hlength_witness - 0055
cases hv - 0056
cases hv_witness - 0057
have he : exists e f. (((forall mdr_i_pfp_shift_exists_product_actual_comparisonprefix mdr_a_pfp_shift_exists_product_actual_comparisonprefix. (exists mdr_gap_pfp_shift_exists_product_actual_comparisonprefixb. mdr_gap_pfp_shift_exists_product_actual_comparisonprefixb + S (mdr_i_pfp_shift_exists_product_actual_comparisonprefix) = (N)) -> (((exists ff_h_mdr_pfp_shift_exists_product_actual_comparisonprefixo. ff_h_mdr_pfp_shift_exists_product_actual_comparisonprefixo + S (mdr_a_pfp_shift_exists_product_actual_comparisonprefix) = S ((S (mdr_i_pfp_shift_exists_product_actual_comparisonprefix)) * cc)) /\ exists ff_q_mdr_pfp_shift_exists_product_actual_comparisonprefixo. cb = ff_q_mdr_pfp_shift_exists_product_actual_comparisonprefixo * S ((S (mdr_i_pfp_shift_exists_product_actual_comparisonprefix)) * cc) + (mdr_a_pfp_shift_exists_product_actual_comparisonprefix))) -> (((exists ff_h_mdr_pfp_shift_exists_product_actual_comparisonprefixn. ff_h_mdr_pfp_shift_exists_product_actual_comparisonprefixn + S (mdr_a_pfp_shift_exists_product_actual_comparisonprefix) = S ((S (mdr_i_pfp_shift_exists_product_actual_comparisonprefix)) * f)) /\ exists ff_q_mdr_pfp_shift_exists_product_actual_comparisonprefixn. e = ff_q_mdr_pfp_shift_exists_product_actual_comparisonprefixn * S ((S (mdr_i_pfp_shift_exists_product_actual_comparisonprefix)) * f) + (mdr_a_pfp_shift_exists_product_actual_comparisonprefix)))) /\ ((((exists ff_h_pfp_shift_exists_product_actual_comparisonlast. ff_h_pfp_shift_exists_product_actual_comparisonlast + S (0) = S ((S (N)) * f)) /\ exists ff_q_pfp_shift_exists_product_actual_comparisonlast. e = ff_q_pfp_shift_exists_product_actual_comparisonlast * S ((S (N)) * f) + (0)))))) - 0058
specialize prime_field_polynomial_shift_exists (cb) - 0059
specialize prime_field_polynomial_shift_exists (cc) - 0060
specialize prime_field_polynomial_shift_exists (N) - 0061
apply prime_field_polynomial_shift_exists - 0062
cases he - 0063
cases he_witness - 0064
exists x - 0065
exists x1 - 0066
exists x2 - 0067
exists x3 - 0068
exists x4 - 0069
split - 0070
exact hv_witness_witness - 0071
split - 0072
exact he_witness_witness - 0073
specialize prime_field_polynomial_convolution_shift_right_equivalent (p) - 0074
specialize prime_field_polynomial_convolution_shift_right_equivalent (ab) - 0075
specialize prime_field_polynomial_convolution_shift_right_equivalent (ac) - 0076
specialize prime_field_polynomial_convolution_shift_right_equivalent (L) - 0077
specialize prime_field_polynomial_convolution_shift_right_equivalent (bb) - 0078
specialize prime_field_polynomial_convolution_shift_right_equivalent (bc) - 0079
specialize prime_field_polynomial_convolution_shift_right_equivalent (M) - 0080
specialize prime_field_polynomial_convolution_shift_right_equivalent (cb) - 0081
specialize prime_field_polynomial_convolution_shift_right_equivalent (cc) - 0082
specialize prime_field_polynomial_convolution_shift_right_equivalent (N) - 0083
specialize prime_field_polynomial_convolution_shift_right_equivalent (BB) - 0084
specialize prime_field_polynomial_convolution_shift_right_equivalent (BC) - 0085
specialize prime_field_polynomial_convolution_shift_right_equivalent (x1) - 0086
specialize prime_field_polynomial_convolution_shift_right_equivalent (x2) - 0087
specialize prime_field_polynomial_convolution_shift_right_equivalent (x) - 0088
specialize prime_field_polynomial_convolution_shift_right_equivalent (x3) - 0089
specialize prime_field_polynomial_convolution_shift_right_equivalent (x4) - 0090
apply prime_field_polynomial_convolution_shift_right_equivalent - 0091
exact hp - 0092
exact hs - 0093
exact hc - 0094
exact hv_witness_witness - 0095
exact he_witness_witness