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 AB AC t BB BC s. (~((p) = 1) /\ forall pfa_factor_left_both_exists_prime pfa_factor_right_both_exists_prime. (p) = pfa_factor_left_both_exists_prime * pfa_factor_right_both_exists_prime -> pfa_factor_left_both_exists_prime = 1 \/ pfa_factor_right_both_exists_prime = 1) -> (((forall pfp_repeat_index_both_left_paddingzeros. (exists pfa_gap_both_left_paddingzerosindex. pfa_gap_both_left_paddingzerosindex + S (pfp_repeat_index_both_left_paddingzeros) = (t)) -> (((exists ff_h_pfp_both_left_paddingzerosentry. ff_h_pfp_both_left_paddingzerosentry + S (0) = S ((S (pfp_repeat_index_both_left_paddingzeros)) * AC)) /\ exists ff_q_pfp_both_left_paddingzerosentry. AB = ff_q_pfp_both_left_paddingzerosentry * S ((S (pfp_repeat_index_both_left_paddingzeros)) * AC) + (0)))) /\ ((forall pfrep_index_both_left_padding pfrep_value_both_left_padding. (exists pfa_gap_both_left_paddingbound. pfa_gap_both_left_paddingbound + S (pfrep_index_both_left_padding) = (L)) -> (((exists ff_h_pfp_both_left_paddinginput. ff_h_pfp_both_left_paddinginput + S (pfrep_value_both_left_padding) = S ((S (pfrep_index_both_left_padding)) * ac)) /\ exists ff_q_pfp_both_left_paddinginput. ab = ff_q_pfp_both_left_paddinginput * S ((S (pfrep_index_both_left_padding)) * ac) + (pfrep_value_both_left_padding))) -> (((exists ff_h_pfp_both_left_paddingoutput. ff_h_pfp_both_left_paddingoutput + S (pfrep_value_both_left_padding) = S ((S ((t)+pfrep_index_both_left_padding)) * AC)) /\ exists ff_q_pfp_both_left_paddingoutput. AB = ff_q_pfp_both_left_paddingoutput * S ((S ((t)+pfrep_index_both_left_padding)) * AC) + (pfrep_value_both_left_padding))))))) -> (((forall pfp_repeat_index_both_right_paddingzeros. (exists pfa_gap_both_right_paddingzerosindex. pfa_gap_both_right_paddingzerosindex + S (pfp_repeat_index_both_right_paddingzeros) = (s)) -> (((exists ff_h_pfp_both_right_paddingzerosentry. ff_h_pfp_both_right_paddingzerosentry + S (0) = S ((S (pfp_repeat_index_both_right_paddingzeros)) * BC)) /\ exists ff_q_pfp_both_right_paddingzerosentry. BB = ff_q_pfp_both_right_paddingzerosentry * S ((S (pfp_repeat_index_both_right_paddingzeros)) * BC) + (0)))) /\ ((forall pfrep_index_both_right_padding pfrep_value_both_right_padding. (exists pfa_gap_both_right_paddingbound. pfa_gap_both_right_paddingbound + S (pfrep_index_both_right_padding) = (M)) -> (((exists ff_h_pfp_both_right_paddinginput. ff_h_pfp_both_right_paddinginput + S (pfrep_value_both_right_padding) = S ((S (pfrep_index_both_right_padding)) * bc)) /\ exists ff_q_pfp_both_right_paddinginput. bb = ff_q_pfp_both_right_paddinginput * S ((S (pfrep_index_both_right_padding)) * bc) + (pfrep_value_both_right_padding))) -> (((exists ff_h_pfp_both_right_paddingoutput. ff_h_pfp_both_right_paddingoutput + S (pfrep_value_both_right_padding) = S ((S ((s)+pfrep_index_both_right_padding)) * BC)) /\ exists ff_q_pfp_both_right_paddingoutput. BB = ff_q_pfp_both_right_paddingoutput * S ((S ((s)+pfrep_index_both_right_padding)) * BC) + (pfrep_value_both_right_padding))))))) -> (((forall fom_index_pfp_both_original_productleft. (exists fom_gap_pfp_both_original_productleft_index_bound. fom_gap_pfp_both_original_productleft_index_bound + S (fom_index_pfp_both_original_productleft) = L) -> exists fom_value_pfp_both_original_productleft. ((((exists fom_beta_height_pfp_both_original_productleft_entry. fom_beta_height_pfp_both_original_productleft_entry + S (fom_value_pfp_both_original_productleft) = S ((S (fom_index_pfp_both_original_productleft)) * ac)) /\ exists fom_beta_quotient_pfp_both_original_productleft_entry. ab = fom_beta_quotient_pfp_both_original_productleft_entry * S ((S (fom_index_pfp_both_original_productleft)) * ac) + (fom_value_pfp_both_original_productleft))) /\ (exists fom_gap_pfp_both_original_productleft_value_bound. fom_gap_pfp_both_original_productleft_value_bound + S (fom_value_pfp_both_original_productleft) = p))) /\ (((forall fom_index_pfp_both_original_productright. (exists fom_gap_pfp_both_original_productright_index_bound. fom_gap_pfp_both_original_productright_index_bound + S (fom_index_pfp_both_original_productright) = M) -> exists fom_value_pfp_both_original_productright. ((((exists fom_beta_height_pfp_both_original_productright_entry. fom_beta_height_pfp_both_original_productright_entry + S (fom_value_pfp_both_original_productright) = S ((S (fom_index_pfp_both_original_productright)) * bc)) /\ exists fom_beta_quotient_pfp_both_original_productright_entry. bb = fom_beta_quotient_pfp_both_original_productright_entry * S ((S (fom_index_pfp_both_original_productright)) * bc) + (fom_value_pfp_both_original_productright))) /\ (exists fom_gap_pfp_both_original_productright_value_bound. fom_gap_pfp_both_original_productright_value_bound + S (fom_value_pfp_both_original_productright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_both_original_productcoefficients. (exists pfa_gap_both_original_productcoefficientsbound. pfa_gap_both_original_productcoefficientsbound + S (pfc_index_both_original_productcoefficients) = (N)) -> exists pfc_value_both_original_productcoefficients. ((((exists ff_h_pfp_both_original_productcoefficientsentry. ff_h_pfp_both_original_productcoefficientsentry + S (pfc_value_both_original_productcoefficients) = S ((S (pfc_index_both_original_productcoefficients)) * cc)) /\ exists ff_q_pfp_both_original_productcoefficientsentry. cb = ff_q_pfp_both_original_productcoefficientsentry * S ((S (pfc_index_both_original_productcoefficients)) * cc) + (pfc_value_both_original_productcoefficients))) /\ ((exists pfc_terms_code_both_original_productcoefficientscoefficient pfc_terms_scale_both_original_productcoefficientscoefficient pfc_natural_sum_both_original_productcoefficientscoefficient. ((forall pfc_index_both_original_productcoefficientscoefficientdiagonal. (exists pfa_gap_both_original_productcoefficientscoefficientdiagonalbound. pfa_gap_both_original_productcoefficientscoefficientdiagonalbound + S (pfc_index_both_original_productcoefficientscoefficientdiagonal) = (S (pfc_index_both_original_productcoefficients))) -> exists pfc_value_both_original_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_both_original_productcoefficientscoefficientdiagonalentry. ff_h_pfp_both_original_productcoefficientscoefficientdiagonalentry + S (pfc_value_both_original_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_both_original_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_both_original_productcoefficientscoefficient)) /\ exists ff_q_pfp_both_original_productcoefficientscoefficientdiagonalentry. pfc_terms_code_both_original_productcoefficientscoefficient = ff_q_pfp_both_original_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_both_original_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_both_original_productcoefficientscoefficient) + (pfc_value_both_original_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_both_original_productcoefficientscoefficientdiagonalterm pfc_left_both_original_productcoefficientscoefficientdiagonalterm pfc_right_both_original_productcoefficientscoefficientdiagonalterm. (((pfc_index_both_original_productcoefficientscoefficientdiagonal)+pfc_complement_both_original_productcoefficientscoefficientdiagonalterm=(pfc_index_both_original_productcoefficients)) /\ ((((((exists pfa_gap_both_original_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_both_original_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_both_original_productcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_both_original_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_both_original_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_both_original_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_both_original_productcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_both_original_productcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_both_original_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_both_original_productcoefficientscoefficientdiagonal)) * ac) + (pfc_left_both_original_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_both_original_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_both_original_productcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_both_original_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_both_original_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_both_original_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_both_original_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_both_original_productcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_both_original_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_both_original_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_both_original_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_both_original_productcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_both_original_productcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_both_original_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_both_original_productcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_both_original_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_both_original_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_both_original_productcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_both_original_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_both_original_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_both_original_productcoefficientscoefficientdiagonal)=pfc_left_both_original_productcoefficientscoefficientdiagonalterm*pfc_right_both_original_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_both_original_productcoefficientscoefficientsum fs_v_pfc_both_original_productcoefficientscoefficientsum. ((((exists fs_h_pfc_both_original_productcoefficientscoefficientsum_body_start. fs_h_pfc_both_original_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_both_original_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_original_productcoefficientscoefficientsum_body_start. fs_u_pfc_both_original_productcoefficientscoefficientsum = fs_q_pfc_both_original_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_both_original_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_both_original_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_both_original_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_both_original_productcoefficientscoefficient) = S ((S (S (pfc_index_both_original_productcoefficients))) * fs_v_pfc_both_original_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_original_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_both_original_productcoefficientscoefficientsum = fs_q_pfc_both_original_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_both_original_productcoefficients))) * fs_v_pfc_both_original_productcoefficientscoefficientsum) + (pfc_natural_sum_both_original_productcoefficientscoefficient))) /\ forall fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_both_original_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_both_original_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps = S (pfc_index_both_original_productcoefficients)) -> exists fs_a_pfc_both_original_productcoefficientscoefficientsum_body_steps fs_r_pfc_both_original_productcoefficientscoefficientsum_body_steps fs_s_pfc_both_original_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_both_original_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_both_original_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_both_original_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_both_original_productcoefficientscoefficient)) /\ exists fs_q_pfc_both_original_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_both_original_productcoefficientscoefficient = fs_q_pfc_both_original_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_both_original_productcoefficientscoefficient) + (fs_a_pfc_both_original_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_both_original_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_both_original_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_both_original_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_original_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_original_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_both_original_productcoefficientscoefficientsum = fs_q_pfc_both_original_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_original_productcoefficientscoefficientsum) + (fs_r_pfc_both_original_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_both_original_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_both_original_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_both_original_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_original_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_original_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_both_original_productcoefficientscoefficientsum = fs_q_pfc_both_original_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_original_productcoefficientscoefficientsum) + (fs_s_pfc_both_original_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_both_original_productcoefficientscoefficientsum_body_steps = fs_r_pfc_both_original_productcoefficientscoefficientsum_body_steps + fs_a_pfc_both_original_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_both_original_productcoefficientscoefficientresiduebound. pfa_gap_both_original_productcoefficientscoefficientresiduebound + S (pfc_value_both_original_productcoefficients) = (p)) /\ ((exists pfa_offset_left_both_original_productcoefficientscoefficientresiduecongruence pfa_offset_right_both_original_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_both_original_productcoefficientscoefficient) + (p) * pfa_offset_left_both_original_productcoefficientscoefficientresiduecongruence = (pfc_value_both_original_productcoefficients) + (p) * pfa_offset_right_both_original_productcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (exists K CB CC. ((((forall fom_index_pfp_both_padded_productleft. (exists fom_gap_pfp_both_padded_productleft_index_bound. fom_gap_pfp_both_padded_productleft_index_bound + S (fom_index_pfp_both_padded_productleft) = t+L) -> exists fom_value_pfp_both_padded_productleft. ((((exists fom_beta_height_pfp_both_padded_productleft_entry. fom_beta_height_pfp_both_padded_productleft_entry + S (fom_value_pfp_both_padded_productleft) = S ((S (fom_index_pfp_both_padded_productleft)) * AC)) /\ exists fom_beta_quotient_pfp_both_padded_productleft_entry. AB = fom_beta_quotient_pfp_both_padded_productleft_entry * S ((S (fom_index_pfp_both_padded_productleft)) * AC) + (fom_value_pfp_both_padded_productleft))) /\ (exists fom_gap_pfp_both_padded_productleft_value_bound. fom_gap_pfp_both_padded_productleft_value_bound + S (fom_value_pfp_both_padded_productleft) = p))) /\ (((forall fom_index_pfp_both_padded_productright. (exists fom_gap_pfp_both_padded_productright_index_bound. fom_gap_pfp_both_padded_productright_index_bound + S (fom_index_pfp_both_padded_productright) = s+M) -> exists fom_value_pfp_both_padded_productright. ((((exists fom_beta_height_pfp_both_padded_productright_entry. fom_beta_height_pfp_both_padded_productright_entry + S (fom_value_pfp_both_padded_productright) = S ((S (fom_index_pfp_both_padded_productright)) * BC)) /\ exists fom_beta_quotient_pfp_both_padded_productright_entry. BB = fom_beta_quotient_pfp_both_padded_productright_entry * S ((S (fom_index_pfp_both_padded_productright)) * BC) + (fom_value_pfp_both_padded_productright))) /\ (exists fom_gap_pfp_both_padded_productright_value_bound. fom_gap_pfp_both_padded_productright_value_bound + S (fom_value_pfp_both_padded_productright) = p))) /\ (((((((t+L)=0 \/ (s+M)=0) /\ (((K)=0)))) \/ (((~((t+L)=0)) /\ (((~((s+M)=0)) /\ (((t+L)+(s+M)=S (K)))))))) /\ ((forall pfc_index_both_padded_productcoefficients. (exists pfa_gap_both_padded_productcoefficientsbound. pfa_gap_both_padded_productcoefficientsbound + S (pfc_index_both_padded_productcoefficients) = (K)) -> exists pfc_value_both_padded_productcoefficients. ((((exists ff_h_pfp_both_padded_productcoefficientsentry. ff_h_pfp_both_padded_productcoefficientsentry + S (pfc_value_both_padded_productcoefficients) = S ((S (pfc_index_both_padded_productcoefficients)) * CC)) /\ exists ff_q_pfp_both_padded_productcoefficientsentry. CB = ff_q_pfp_both_padded_productcoefficientsentry * S ((S (pfc_index_both_padded_productcoefficients)) * CC) + (pfc_value_both_padded_productcoefficients))) /\ ((exists pfc_terms_code_both_padded_productcoefficientscoefficient pfc_terms_scale_both_padded_productcoefficientscoefficient pfc_natural_sum_both_padded_productcoefficientscoefficient. ((forall pfc_index_both_padded_productcoefficientscoefficientdiagonal. (exists pfa_gap_both_padded_productcoefficientscoefficientdiagonalbound. pfa_gap_both_padded_productcoefficientscoefficientdiagonalbound + S (pfc_index_both_padded_productcoefficientscoefficientdiagonal) = (S (pfc_index_both_padded_productcoefficients))) -> exists pfc_value_both_padded_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_both_padded_productcoefficientscoefficientdiagonalentry. ff_h_pfp_both_padded_productcoefficientscoefficientdiagonalentry + S (pfc_value_both_padded_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_both_padded_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_both_padded_productcoefficientscoefficient)) /\ exists ff_q_pfp_both_padded_productcoefficientscoefficientdiagonalentry. pfc_terms_code_both_padded_productcoefficientscoefficient = ff_q_pfp_both_padded_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_both_padded_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_both_padded_productcoefficientscoefficient) + (pfc_value_both_padded_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_both_padded_productcoefficientscoefficientdiagonalterm pfc_left_both_padded_productcoefficientscoefficientdiagonalterm pfc_right_both_padded_productcoefficientscoefficientdiagonalterm. (((pfc_index_both_padded_productcoefficientscoefficientdiagonal)+pfc_complement_both_padded_productcoefficientscoefficientdiagonalterm=(pfc_index_both_padded_productcoefficients)) /\ ((((((exists pfa_gap_both_padded_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_both_padded_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_both_padded_productcoefficientscoefficientdiagonal) = (t+L)) /\ ((((exists ff_h_pfp_both_padded_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_both_padded_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_both_padded_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_both_padded_productcoefficientscoefficientdiagonal)) * AC)) /\ exists ff_q_pfp_both_padded_productcoefficientscoefficientdiagonaltermleftentry. AB = ff_q_pfp_both_padded_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_both_padded_productcoefficientscoefficientdiagonal)) * AC) + (pfc_left_both_padded_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_both_padded_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_both_padded_productcoefficientscoefficientdiagonaltermleftoutside+(t+L)=(pfc_index_both_padded_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_both_padded_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_both_padded_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_both_padded_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_both_padded_productcoefficientscoefficientdiagonalterm) = (s+M)) /\ ((((exists ff_h_pfp_both_padded_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_both_padded_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_both_padded_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_both_padded_productcoefficientscoefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_both_padded_productcoefficientscoefficientdiagonaltermrightentry. BB = ff_q_pfp_both_padded_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_both_padded_productcoefficientscoefficientdiagonalterm)) * BC) + (pfc_right_both_padded_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_both_padded_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_both_padded_productcoefficientscoefficientdiagonaltermrightoutside+(s+M)=(pfc_complement_both_padded_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_both_padded_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_both_padded_productcoefficientscoefficientdiagonal)=pfc_left_both_padded_productcoefficientscoefficientdiagonalterm*pfc_right_both_padded_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_both_padded_productcoefficientscoefficientsum fs_v_pfc_both_padded_productcoefficientscoefficientsum. ((((exists fs_h_pfc_both_padded_productcoefficientscoefficientsum_body_start. fs_h_pfc_both_padded_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_both_padded_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_padded_productcoefficientscoefficientsum_body_start. fs_u_pfc_both_padded_productcoefficientscoefficientsum = fs_q_pfc_both_padded_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_both_padded_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_both_padded_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_both_padded_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_both_padded_productcoefficientscoefficient) = S ((S (S (pfc_index_both_padded_productcoefficients))) * fs_v_pfc_both_padded_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_padded_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_both_padded_productcoefficientscoefficientsum = fs_q_pfc_both_padded_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_both_padded_productcoefficients))) * fs_v_pfc_both_padded_productcoefficientscoefficientsum) + (pfc_natural_sum_both_padded_productcoefficientscoefficient))) /\ forall fs_i_pfc_both_padded_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_both_padded_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_both_padded_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_both_padded_productcoefficientscoefficientsum_body_steps = S (pfc_index_both_padded_productcoefficients)) -> exists fs_a_pfc_both_padded_productcoefficientscoefficientsum_body_steps fs_r_pfc_both_padded_productcoefficientscoefficientsum_body_steps fs_s_pfc_both_padded_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_both_padded_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_both_padded_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_both_padded_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_both_padded_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_both_padded_productcoefficientscoefficient)) /\ exists fs_q_pfc_both_padded_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_both_padded_productcoefficientscoefficient = fs_q_pfc_both_padded_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_both_padded_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_both_padded_productcoefficientscoefficient) + (fs_a_pfc_both_padded_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_both_padded_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_both_padded_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_both_padded_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_both_padded_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_padded_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_padded_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_both_padded_productcoefficientscoefficientsum = fs_q_pfc_both_padded_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_both_padded_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_padded_productcoefficientscoefficientsum) + (fs_r_pfc_both_padded_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_both_padded_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_both_padded_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_both_padded_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_both_padded_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_padded_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_padded_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_both_padded_productcoefficientscoefficientsum = fs_q_pfc_both_padded_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_both_padded_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_padded_productcoefficientscoefficientsum) + (fs_s_pfc_both_padded_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_both_padded_productcoefficientscoefficientsum_body_steps = fs_r_pfc_both_padded_productcoefficientscoefficientsum_body_steps + fs_a_pfc_both_padded_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_both_padded_productcoefficientscoefficientresiduebound. pfa_gap_both_padded_productcoefficientscoefficientresiduebound + S (pfc_value_both_padded_productcoefficients) = (p)) /\ ((exists pfa_offset_left_both_padded_productcoefficientscoefficientresiduecongruence pfa_offset_right_both_padded_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_both_padded_productcoefficientscoefficient) + (p) * pfa_offset_left_both_padded_productcoefficientscoefficientresiduecongruence = (pfc_value_both_padded_productcoefficients) + (p) * pfa_offset_right_both_padded_productcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfrep_power_both_equivalent_result pfrep_left_both_equivalent_result pfrep_right_both_equivalent_result. ((exists pfrep_position_both_equivalent_resultfirst. ((pfrep_position_both_equivalent_resultfirst+S (pfrep_power_both_equivalent_result)=(N)) /\ ((((exists ff_h_pfp_both_equivalent_resultfirstentry. ff_h_pfp_both_equivalent_resultfirstentry + S (pfrep_left_both_equivalent_result) = S ((S (pfrep_position_both_equivalent_resultfirst)) * cc)) /\ exists ff_q_pfp_both_equivalent_resultfirstentry. cb = ff_q_pfp_both_equivalent_resultfirstentry * S ((S (pfrep_position_both_equivalent_resultfirst)) * cc) + (pfrep_left_both_equivalent_result)))))) \/ (((exists pfrep_gap_both_equivalent_resultfirstoutside. pfrep_gap_both_equivalent_resultfirstoutside+(N)=(pfrep_power_both_equivalent_result)) /\ (((pfrep_left_both_equivalent_result)=0))))) -> ((exists pfrep_position_both_equivalent_resultsecond. ((pfrep_position_both_equivalent_resultsecond+S (pfrep_power_both_equivalent_result)=(K)) /\ ((((exists ff_h_pfp_both_equivalent_resultsecondentry. ff_h_pfp_both_equivalent_resultsecondentry + S (pfrep_right_both_equivalent_result) = S ((S (pfrep_position_both_equivalent_resultsecond)) * CC)) /\ exists ff_q_pfp_both_equivalent_resultsecondentry. CB = ff_q_pfp_both_equivalent_resultsecondentry * S ((S (pfrep_position_both_equivalent_resultsecond)) * CC) + (pfrep_right_both_equivalent_result)))))) \/ (((exists pfrep_gap_both_equivalent_resultsecondoutside. pfrep_gap_both_equivalent_resultsecondoutside+(K)=(pfrep_power_both_equivalent_result)) /\ (((pfrep_right_both_equivalent_result)=0))))) -> pfrep_left_both_equivalent_result=pfrep_right_both_equivalent_result))))Constructive proof overview
Generated structural guide
For actual leading-zero paddings over a prime field, construct a genuine proper-length product and prove its formal equivalence to the original product; no output certificate or identity is supplied.
The unchanged tactic script uses 5 declared prerequisites and contains 102 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · 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 PX0016 prime_field_polynomial_left_pad_bounded PX0070 prime_field_polynomial_convolution_both_left_paddings_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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Establish hcopyL21–22
Establish this local claim before using it. It is not an additional assumption.
- L21
have hcopy : FpPolyProduct(p,ab,ac,L,bb,bc,M,cb,cc,N)Definitions: FpPolyProduct - L22
exact hc
04Separate the logical casesL23–25
05Establish hpL26–31
06Establish hlengthL32–35
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 casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
cases hlength
08Establish hnewL37–46
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.
- L37
have hnew : ∃ CB. ∃ CC. FpPolyProduct(p,AB,AC,t + L,BB,BC,s + M,CB,CC,x)Definitions: FpPolyProduct - L38
specialize prime_field_polynomial_convolution_at_length_exists (p) - L39
specialize prime_field_polynomial_convolution_at_length_exists (AB) - L40
specialize prime_field_polynomial_convolution_at_length_exists (AC) - L41
specialize prime_field_polynomial_convolution_at_length_exists (t+L) - L42
specialize prime_field_polynomial_convolution_at_length_exists (BB) - L43
specialize prime_field_polynomial_convolution_at_length_exists (BC) - L44
specialize prime_field_polynomial_convolution_at_length_exists (s+M) - L45
specialize prime_field_polynomial_convolution_at_length_exists (x) - L46
apply prime_field_polynomial_convolution_at_length_exists
09Use earlier factsL47–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
exact hp - L48
specialize prime_field_polynomial_left_pad_bounded (p) - L49
specialize prime_field_polynomial_left_pad_bounded (ab) - L50
specialize prime_field_polynomial_left_pad_bounded (ac) - L51
specialize prime_field_polynomial_left_pad_bounded (L) - L52
specialize prime_field_polynomial_left_pad_bounded (t) - L53
specialize prime_field_polynomial_left_pad_bounded (AB) - L54
specialize prime_field_polynomial_left_pad_bounded (AC) - L55
apply prime_field_polynomial_left_pad_bounded - L56
exact hprime
10Use earlier factsL57–66
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
exact hcopy_left - L58
exact hA - L59
specialize prime_field_polynomial_left_pad_bounded (p) - L60
specialize prime_field_polynomial_left_pad_bounded (bb) - L61
specialize prime_field_polynomial_left_pad_bounded (bc) - L62
specialize prime_field_polynomial_left_pad_bounded (M) - L63
specialize prime_field_polynomial_left_pad_bounded (s) - L64
specialize prime_field_polynomial_left_pad_bounded (BB) - L65
specialize prime_field_polynomial_left_pad_bounded (BC) - L66
apply prime_field_polynomial_left_pad_bounded
11Use earlier factsL67–70
12Separate the logical casesL71–72
13Construct an explicit witnessL73–75
14Separate the logical casesL76–76
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L76
split
15Use earlier factsL77–86
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L77
exact hnew_witness_witness - L78
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (p) - L79
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (ab) - L80
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (ac) - L81
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (L) - L82
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (bb) - L83
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (bc) - L84
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (M) - L85
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (cb) - L86
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (cc)
16Use earlier factsL87–96
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L87
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (N) - L88
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (AB) - L89
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (AC) - L90
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (t) - L91
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (BB) - L92
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (BC) - L93
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (s) - L94
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (x1) - L95
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (x2) - L96
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (x)
Original exact command ledger · 102 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 AB - 0012
intro AC - 0013
intro t - 0014
intro BB - 0015
intro BC - 0016
intro s - 0017
intro hprime - 0018
intro hA - 0019
intro hB - 0020
intro hc - 0021
have hcopy : ((forall fom_index_pfp_both_original_productleft. (exists fom_gap_pfp_both_original_productleft_index_bound. fom_gap_pfp_both_original_productleft_index_bound + S (fom_index_pfp_both_original_productleft) = L) -> exists fom_value_pfp_both_original_productleft. ((((exists fom_beta_height_pfp_both_original_productleft_entry. fom_beta_height_pfp_both_original_productleft_entry + S (fom_value_pfp_both_original_productleft) = S ((S (fom_index_pfp_both_original_productleft)) * ac)) /\ exists fom_beta_quotient_pfp_both_original_productleft_entry. ab = fom_beta_quotient_pfp_both_original_productleft_entry * S ((S (fom_index_pfp_both_original_productleft)) * ac) + (fom_value_pfp_both_original_productleft))) /\ (exists fom_gap_pfp_both_original_productleft_value_bound. fom_gap_pfp_both_original_productleft_value_bound + S (fom_value_pfp_both_original_productleft) = p))) /\ (((forall fom_index_pfp_both_original_productright. (exists fom_gap_pfp_both_original_productright_index_bound. fom_gap_pfp_both_original_productright_index_bound + S (fom_index_pfp_both_original_productright) = M) -> exists fom_value_pfp_both_original_productright. ((((exists fom_beta_height_pfp_both_original_productright_entry. fom_beta_height_pfp_both_original_productright_entry + S (fom_value_pfp_both_original_productright) = S ((S (fom_index_pfp_both_original_productright)) * bc)) /\ exists fom_beta_quotient_pfp_both_original_productright_entry. bb = fom_beta_quotient_pfp_both_original_productright_entry * S ((S (fom_index_pfp_both_original_productright)) * bc) + (fom_value_pfp_both_original_productright))) /\ (exists fom_gap_pfp_both_original_productright_value_bound. fom_gap_pfp_both_original_productright_value_bound + S (fom_value_pfp_both_original_productright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_both_original_productcoefficients. (exists pfa_gap_both_original_productcoefficientsbound. pfa_gap_both_original_productcoefficientsbound + S (pfc_index_both_original_productcoefficients) = (N)) -> exists pfc_value_both_original_productcoefficients. ((((exists ff_h_pfp_both_original_productcoefficientsentry. ff_h_pfp_both_original_productcoefficientsentry + S (pfc_value_both_original_productcoefficients) = S ((S (pfc_index_both_original_productcoefficients)) * cc)) /\ exists ff_q_pfp_both_original_productcoefficientsentry. cb = ff_q_pfp_both_original_productcoefficientsentry * S ((S (pfc_index_both_original_productcoefficients)) * cc) + (pfc_value_both_original_productcoefficients))) /\ ((exists pfc_terms_code_both_original_productcoefficientscoefficient pfc_terms_scale_both_original_productcoefficientscoefficient pfc_natural_sum_both_original_productcoefficientscoefficient. ((forall pfc_index_both_original_productcoefficientscoefficientdiagonal. (exists pfa_gap_both_original_productcoefficientscoefficientdiagonalbound. pfa_gap_both_original_productcoefficientscoefficientdiagonalbound + S (pfc_index_both_original_productcoefficientscoefficientdiagonal) = (S (pfc_index_both_original_productcoefficients))) -> exists pfc_value_both_original_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_both_original_productcoefficientscoefficientdiagonalentry. ff_h_pfp_both_original_productcoefficientscoefficientdiagonalentry + S (pfc_value_both_original_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_both_original_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_both_original_productcoefficientscoefficient)) /\ exists ff_q_pfp_both_original_productcoefficientscoefficientdiagonalentry. pfc_terms_code_both_original_productcoefficientscoefficient = ff_q_pfp_both_original_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_both_original_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_both_original_productcoefficientscoefficient) + (pfc_value_both_original_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_both_original_productcoefficientscoefficientdiagonalterm pfc_left_both_original_productcoefficientscoefficientdiagonalterm pfc_right_both_original_productcoefficientscoefficientdiagonalterm. (((pfc_index_both_original_productcoefficientscoefficientdiagonal)+pfc_complement_both_original_productcoefficientscoefficientdiagonalterm=(pfc_index_both_original_productcoefficients)) /\ ((((((exists pfa_gap_both_original_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_both_original_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_both_original_productcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_both_original_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_both_original_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_both_original_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_both_original_productcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_both_original_productcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_both_original_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_both_original_productcoefficientscoefficientdiagonal)) * ac) + (pfc_left_both_original_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_both_original_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_both_original_productcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_both_original_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_both_original_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_both_original_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_both_original_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_both_original_productcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_both_original_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_both_original_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_both_original_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_both_original_productcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_both_original_productcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_both_original_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_both_original_productcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_both_original_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_both_original_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_both_original_productcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_both_original_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_both_original_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_both_original_productcoefficientscoefficientdiagonal)=pfc_left_both_original_productcoefficientscoefficientdiagonalterm*pfc_right_both_original_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_both_original_productcoefficientscoefficientsum fs_v_pfc_both_original_productcoefficientscoefficientsum. ((((exists fs_h_pfc_both_original_productcoefficientscoefficientsum_body_start. fs_h_pfc_both_original_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_both_original_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_original_productcoefficientscoefficientsum_body_start. fs_u_pfc_both_original_productcoefficientscoefficientsum = fs_q_pfc_both_original_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_both_original_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_both_original_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_both_original_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_both_original_productcoefficientscoefficient) = S ((S (S (pfc_index_both_original_productcoefficients))) * fs_v_pfc_both_original_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_original_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_both_original_productcoefficientscoefficientsum = fs_q_pfc_both_original_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_both_original_productcoefficients))) * fs_v_pfc_both_original_productcoefficientscoefficientsum) + (pfc_natural_sum_both_original_productcoefficientscoefficient))) /\ forall fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_both_original_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_both_original_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps = S (pfc_index_both_original_productcoefficients)) -> exists fs_a_pfc_both_original_productcoefficientscoefficientsum_body_steps fs_r_pfc_both_original_productcoefficientscoefficientsum_body_steps fs_s_pfc_both_original_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_both_original_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_both_original_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_both_original_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_both_original_productcoefficientscoefficient)) /\ exists fs_q_pfc_both_original_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_both_original_productcoefficientscoefficient = fs_q_pfc_both_original_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_both_original_productcoefficientscoefficient) + (fs_a_pfc_both_original_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_both_original_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_both_original_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_both_original_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_original_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_original_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_both_original_productcoefficientscoefficientsum = fs_q_pfc_both_original_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_original_productcoefficientscoefficientsum) + (fs_r_pfc_both_original_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_both_original_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_both_original_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_both_original_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_original_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_original_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_both_original_productcoefficientscoefficientsum = fs_q_pfc_both_original_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_both_original_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_original_productcoefficientscoefficientsum) + (fs_s_pfc_both_original_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_both_original_productcoefficientscoefficientsum_body_steps = fs_r_pfc_both_original_productcoefficientscoefficientsum_body_steps + fs_a_pfc_both_original_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_both_original_productcoefficientscoefficientresiduebound. pfa_gap_both_original_productcoefficientscoefficientresiduebound + S (pfc_value_both_original_productcoefficients) = (p)) /\ ((exists pfa_offset_left_both_original_productcoefficientscoefficientresiduecongruence pfa_offset_right_both_original_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_both_original_productcoefficientscoefficient) + (p) * pfa_offset_left_both_original_productcoefficientscoefficientresiduecongruence = (pfc_value_both_original_productcoefficients) + (p) * pfa_offset_right_both_original_productcoefficientscoefficientresiduecongruence)))))))))))))))))) - 0022
exact hc - 0023
cases hcopy - 0024
cases hcopy_right - 0025
cases hcopy_right_right - 0026
have hp : ~(p=0) - 0027
intro hz - 0028
specialize prime_nonzero (p) - 0029
apply prime_nonzero - 0030
exact hprime - 0031
exact hz - 0032
have hlength : exists K. ((((t+L)=0 \/ (s+M)=0) /\ (((K)=0)))) \/ (((~((t+L)=0)) /\ (((~((s+M)=0)) /\ (((t+L)+(s+M)=S (K))))))) - 0033
specialize polynomial_product_length_exists (t+L) - 0034
specialize polynomial_product_length_exists (s+M) - 0035
apply polynomial_product_length_exists - 0036
cases hlength - 0037
have hnew : exists CB CC. ((forall fom_index_pfp_both_exists_productleft. (exists fom_gap_pfp_both_exists_productleft_index_bound. fom_gap_pfp_both_exists_productleft_index_bound + S (fom_index_pfp_both_exists_productleft) = t+L) -> exists fom_value_pfp_both_exists_productleft. ((((exists fom_beta_height_pfp_both_exists_productleft_entry. fom_beta_height_pfp_both_exists_productleft_entry + S (fom_value_pfp_both_exists_productleft) = S ((S (fom_index_pfp_both_exists_productleft)) * AC)) /\ exists fom_beta_quotient_pfp_both_exists_productleft_entry. AB = fom_beta_quotient_pfp_both_exists_productleft_entry * S ((S (fom_index_pfp_both_exists_productleft)) * AC) + (fom_value_pfp_both_exists_productleft))) /\ (exists fom_gap_pfp_both_exists_productleft_value_bound. fom_gap_pfp_both_exists_productleft_value_bound + S (fom_value_pfp_both_exists_productleft) = p))) /\ (((forall fom_index_pfp_both_exists_productright. (exists fom_gap_pfp_both_exists_productright_index_bound. fom_gap_pfp_both_exists_productright_index_bound + S (fom_index_pfp_both_exists_productright) = s+M) -> exists fom_value_pfp_both_exists_productright. ((((exists fom_beta_height_pfp_both_exists_productright_entry. fom_beta_height_pfp_both_exists_productright_entry + S (fom_value_pfp_both_exists_productright) = S ((S (fom_index_pfp_both_exists_productright)) * BC)) /\ exists fom_beta_quotient_pfp_both_exists_productright_entry. BB = fom_beta_quotient_pfp_both_exists_productright_entry * S ((S (fom_index_pfp_both_exists_productright)) * BC) + (fom_value_pfp_both_exists_productright))) /\ (exists fom_gap_pfp_both_exists_productright_value_bound. fom_gap_pfp_both_exists_productright_value_bound + S (fom_value_pfp_both_exists_productright) = p))) /\ (((((((t+L)=0 \/ (s+M)=0) /\ (((x)=0)))) \/ (((~((t+L)=0)) /\ (((~((s+M)=0)) /\ (((t+L)+(s+M)=S (x)))))))) /\ ((forall pfc_index_both_exists_productcoefficients. (exists pfa_gap_both_exists_productcoefficientsbound. pfa_gap_both_exists_productcoefficientsbound + S (pfc_index_both_exists_productcoefficients) = (x)) -> exists pfc_value_both_exists_productcoefficients. ((((exists ff_h_pfp_both_exists_productcoefficientsentry. ff_h_pfp_both_exists_productcoefficientsentry + S (pfc_value_both_exists_productcoefficients) = S ((S (pfc_index_both_exists_productcoefficients)) * CC)) /\ exists ff_q_pfp_both_exists_productcoefficientsentry. CB = ff_q_pfp_both_exists_productcoefficientsentry * S ((S (pfc_index_both_exists_productcoefficients)) * CC) + (pfc_value_both_exists_productcoefficients))) /\ ((exists pfc_terms_code_both_exists_productcoefficientscoefficient pfc_terms_scale_both_exists_productcoefficientscoefficient pfc_natural_sum_both_exists_productcoefficientscoefficient. ((forall pfc_index_both_exists_productcoefficientscoefficientdiagonal. (exists pfa_gap_both_exists_productcoefficientscoefficientdiagonalbound. pfa_gap_both_exists_productcoefficientscoefficientdiagonalbound + S (pfc_index_both_exists_productcoefficientscoefficientdiagonal) = (S (pfc_index_both_exists_productcoefficients))) -> exists pfc_value_both_exists_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_both_exists_productcoefficientscoefficientdiagonalentry. ff_h_pfp_both_exists_productcoefficientscoefficientdiagonalentry + S (pfc_value_both_exists_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_both_exists_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_both_exists_productcoefficientscoefficient)) /\ exists ff_q_pfp_both_exists_productcoefficientscoefficientdiagonalentry. pfc_terms_code_both_exists_productcoefficientscoefficient = ff_q_pfp_both_exists_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_both_exists_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_both_exists_productcoefficientscoefficient) + (pfc_value_both_exists_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_both_exists_productcoefficientscoefficientdiagonalterm pfc_left_both_exists_productcoefficientscoefficientdiagonalterm pfc_right_both_exists_productcoefficientscoefficientdiagonalterm. (((pfc_index_both_exists_productcoefficientscoefficientdiagonal)+pfc_complement_both_exists_productcoefficientscoefficientdiagonalterm=(pfc_index_both_exists_productcoefficients)) /\ ((((((exists pfa_gap_both_exists_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_both_exists_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_both_exists_productcoefficientscoefficientdiagonal) = (t+L)) /\ ((((exists ff_h_pfp_both_exists_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_both_exists_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_both_exists_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_both_exists_productcoefficientscoefficientdiagonal)) * AC)) /\ exists ff_q_pfp_both_exists_productcoefficientscoefficientdiagonaltermleftentry. AB = ff_q_pfp_both_exists_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_both_exists_productcoefficientscoefficientdiagonal)) * AC) + (pfc_left_both_exists_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_both_exists_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_both_exists_productcoefficientscoefficientdiagonaltermleftoutside+(t+L)=(pfc_index_both_exists_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_both_exists_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_both_exists_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_both_exists_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_both_exists_productcoefficientscoefficientdiagonalterm) = (s+M)) /\ ((((exists ff_h_pfp_both_exists_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_both_exists_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_both_exists_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_both_exists_productcoefficientscoefficientdiagonalterm)) * BC)) /\ exists ff_q_pfp_both_exists_productcoefficientscoefficientdiagonaltermrightentry. BB = ff_q_pfp_both_exists_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_both_exists_productcoefficientscoefficientdiagonalterm)) * BC) + (pfc_right_both_exists_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_both_exists_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_both_exists_productcoefficientscoefficientdiagonaltermrightoutside+(s+M)=(pfc_complement_both_exists_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_both_exists_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_both_exists_productcoefficientscoefficientdiagonal)=pfc_left_both_exists_productcoefficientscoefficientdiagonalterm*pfc_right_both_exists_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_both_exists_productcoefficientscoefficientsum fs_v_pfc_both_exists_productcoefficientscoefficientsum. ((((exists fs_h_pfc_both_exists_productcoefficientscoefficientsum_body_start. fs_h_pfc_both_exists_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_both_exists_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_exists_productcoefficientscoefficientsum_body_start. fs_u_pfc_both_exists_productcoefficientscoefficientsum = fs_q_pfc_both_exists_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_both_exists_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_both_exists_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_both_exists_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_both_exists_productcoefficientscoefficient) = S ((S (S (pfc_index_both_exists_productcoefficients))) * fs_v_pfc_both_exists_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_exists_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_both_exists_productcoefficientscoefficientsum = fs_q_pfc_both_exists_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_both_exists_productcoefficients))) * fs_v_pfc_both_exists_productcoefficientscoefficientsum) + (pfc_natural_sum_both_exists_productcoefficientscoefficient))) /\ forall fs_i_pfc_both_exists_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_both_exists_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_both_exists_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_both_exists_productcoefficientscoefficientsum_body_steps = S (pfc_index_both_exists_productcoefficients)) -> exists fs_a_pfc_both_exists_productcoefficientscoefficientsum_body_steps fs_r_pfc_both_exists_productcoefficientscoefficientsum_body_steps fs_s_pfc_both_exists_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_both_exists_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_both_exists_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_both_exists_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_both_exists_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_both_exists_productcoefficientscoefficient)) /\ exists fs_q_pfc_both_exists_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_both_exists_productcoefficientscoefficient = fs_q_pfc_both_exists_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_both_exists_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_both_exists_productcoefficientscoefficient) + (fs_a_pfc_both_exists_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_both_exists_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_both_exists_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_both_exists_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_both_exists_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_exists_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_exists_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_both_exists_productcoefficientscoefficientsum = fs_q_pfc_both_exists_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_both_exists_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_exists_productcoefficientscoefficientsum) + (fs_r_pfc_both_exists_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_both_exists_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_both_exists_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_both_exists_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_both_exists_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_exists_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_both_exists_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_both_exists_productcoefficientscoefficientsum = fs_q_pfc_both_exists_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_both_exists_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_both_exists_productcoefficientscoefficientsum) + (fs_s_pfc_both_exists_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_both_exists_productcoefficientscoefficientsum_body_steps = fs_r_pfc_both_exists_productcoefficientscoefficientsum_body_steps + fs_a_pfc_both_exists_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_both_exists_productcoefficientscoefficientresiduebound. pfa_gap_both_exists_productcoefficientscoefficientresiduebound + S (pfc_value_both_exists_productcoefficients) = (p)) /\ ((exists pfa_offset_left_both_exists_productcoefficientscoefficientresiduecongruence pfa_offset_right_both_exists_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_both_exists_productcoefficientscoefficient) + (p) * pfa_offset_left_both_exists_productcoefficientscoefficientresiduecongruence = (pfc_value_both_exists_productcoefficients) + (p) * pfa_offset_right_both_exists_productcoefficientscoefficientresiduecongruence)))))))))))))))))) - 0038
specialize prime_field_polynomial_convolution_at_length_exists (p) - 0039
specialize prime_field_polynomial_convolution_at_length_exists (AB) - 0040
specialize prime_field_polynomial_convolution_at_length_exists (AC) - 0041
specialize prime_field_polynomial_convolution_at_length_exists (t+L) - 0042
specialize prime_field_polynomial_convolution_at_length_exists (BB) - 0043
specialize prime_field_polynomial_convolution_at_length_exists (BC) - 0044
specialize prime_field_polynomial_convolution_at_length_exists (s+M) - 0045
specialize prime_field_polynomial_convolution_at_length_exists (x) - 0046
apply prime_field_polynomial_convolution_at_length_exists - 0047
exact hp - 0048
specialize prime_field_polynomial_left_pad_bounded (p) - 0049
specialize prime_field_polynomial_left_pad_bounded (ab) - 0050
specialize prime_field_polynomial_left_pad_bounded (ac) - 0051
specialize prime_field_polynomial_left_pad_bounded (L) - 0052
specialize prime_field_polynomial_left_pad_bounded (t) - 0053
specialize prime_field_polynomial_left_pad_bounded (AB) - 0054
specialize prime_field_polynomial_left_pad_bounded (AC) - 0055
apply prime_field_polynomial_left_pad_bounded - 0056
exact hprime - 0057
exact hcopy_left - 0058
exact hA - 0059
specialize prime_field_polynomial_left_pad_bounded (p) - 0060
specialize prime_field_polynomial_left_pad_bounded (bb) - 0061
specialize prime_field_polynomial_left_pad_bounded (bc) - 0062
specialize prime_field_polynomial_left_pad_bounded (M) - 0063
specialize prime_field_polynomial_left_pad_bounded (s) - 0064
specialize prime_field_polynomial_left_pad_bounded (BB) - 0065
specialize prime_field_polynomial_left_pad_bounded (BC) - 0066
apply prime_field_polynomial_left_pad_bounded - 0067
exact hprime - 0068
exact hcopy_right_left - 0069
exact hB - 0070
exact hlength_witness - 0071
cases hnew - 0072
cases hnew_witness - 0073
exists x - 0074
exists x1 - 0075
exists x2 - 0076
split - 0077
exact hnew_witness_witness - 0078
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (p) - 0079
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (ab) - 0080
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (ac) - 0081
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (L) - 0082
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (bb) - 0083
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (bc) - 0084
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (M) - 0085
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (cb) - 0086
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (cc) - 0087
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (N) - 0088
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (AB) - 0089
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (AC) - 0090
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (t) - 0091
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (BB) - 0092
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (BC) - 0093
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (s) - 0094
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (x1) - 0095
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (x2) - 0096
specialize prime_field_polynomial_convolution_both_left_paddings_equivalent (x) - 0097
apply prime_field_polynomial_convolution_both_left_paddings_equivalent - 0098
exact hp - 0099
exact hA - 0100
exact hB - 0101
exact hc - 0102
exact hnew_witness_witness