PG0023

prime_field_polynomial_convolution_associativity_append_step

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

An actual formal-coefficient associativity hypothesis for one rightmost prefix extends through one genuine appended coefficient. Every old and new product is an actual proper-length convolution; the proof derives the canonical appended coefficient bound, constructs three real shift/scale/pad/add alignments and a real intermediate product, and concludes only the next formal equivalence. Empty factors are retained, no successor product-length identity is assumed, and the induction step alone is not full associativity.

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 pb pc N cb cc J q0b q0c K0 r0b r0c U0 s0b s0c V0 c db dc q1b q1c K1 r1b r1c U1 s1b s1c V1. (~((p) = 1) /\ forall pfa_factor_left_append_step_prime pfa_factor_right_append_step_prime. (p) = pfa_factor_left_append_step_prime * pfa_factor_right_append_step_prime -> pfa_factor_left_append_step_prime = 1 \/ pfa_factor_right_append_step_prime = 1) -> (((forall fom_index_pfp_append_step_ABleft. (exists fom_gap_pfp_append_step_ABleft_index_bound. fom_gap_pfp_append_step_ABleft_index_bound + S (fom_index_pfp_append_step_ABleft) = L) -> exists fom_value_pfp_append_step_ABleft. ((((exists fom_beta_height_pfp_append_step_ABleft_entry. fom_beta_height_pfp_append_step_ABleft_entry + S (fom_value_pfp_append_step_ABleft) = S ((S (fom_index_pfp_append_step_ABleft)) * ac)) /\ exists fom_beta_quotient_pfp_append_step_ABleft_entry. ab = fom_beta_quotient_pfp_append_step_ABleft_entry * S ((S (fom_index_pfp_append_step_ABleft)) * ac) + (fom_value_pfp_append_step_ABleft))) /\ (exists fom_gap_pfp_append_step_ABleft_value_bound. fom_gap_pfp_append_step_ABleft_value_bound + S (fom_value_pfp_append_step_ABleft) = p))) /\ (((forall fom_index_pfp_append_step_ABright. (exists fom_gap_pfp_append_step_ABright_index_bound. fom_gap_pfp_append_step_ABright_index_bound + S (fom_index_pfp_append_step_ABright) = M) -> exists fom_value_pfp_append_step_ABright. ((((exists fom_beta_height_pfp_append_step_ABright_entry. fom_beta_height_pfp_append_step_ABright_entry + S (fom_value_pfp_append_step_ABright) = S ((S (fom_index_pfp_append_step_ABright)) * bc)) /\ exists fom_beta_quotient_pfp_append_step_ABright_entry. bb = fom_beta_quotient_pfp_append_step_ABright_entry * S ((S (fom_index_pfp_append_step_ABright)) * bc) + (fom_value_pfp_append_step_ABright))) /\ (exists fom_gap_pfp_append_step_ABright_value_bound. fom_gap_pfp_append_step_ABright_value_bound + S (fom_value_pfp_append_step_ABright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_append_step_ABcoefficients. (exists pfa_gap_append_step_ABcoefficientsbound. pfa_gap_append_step_ABcoefficientsbound + S (pfc_index_append_step_ABcoefficients) = (N)) -> exists pfc_value_append_step_ABcoefficients. ((((exists ff_h_pfp_append_step_ABcoefficientsentry. ff_h_pfp_append_step_ABcoefficientsentry + S (pfc_value_append_step_ABcoefficients) = S ((S (pfc_index_append_step_ABcoefficients)) * pc)) /\ exists ff_q_pfp_append_step_ABcoefficientsentry. pb = ff_q_pfp_append_step_ABcoefficientsentry * S ((S (pfc_index_append_step_ABcoefficients)) * pc) + (pfc_value_append_step_ABcoefficients))) /\ ((exists pfc_terms_code_append_step_ABcoefficientscoefficient pfc_terms_scale_append_step_ABcoefficientscoefficient pfc_natural_sum_append_step_ABcoefficientscoefficient. ((forall pfc_index_append_step_ABcoefficientscoefficientdiagonal. (exists pfa_gap_append_step_ABcoefficientscoefficientdiagonalbound. pfa_gap_append_step_ABcoefficientscoefficientdiagonalbound + S (pfc_index_append_step_ABcoefficientscoefficientdiagonal) = (S (pfc_index_append_step_ABcoefficients))) -> exists pfc_value_append_step_ABcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_append_step_ABcoefficientscoefficientdiagonalentry. ff_h_pfp_append_step_ABcoefficientscoefficientdiagonalentry + S (pfc_value_append_step_ABcoefficientscoefficientdiagonal) = S ((S (pfc_index_append_step_ABcoefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_ABcoefficientscoefficient)) /\ exists ff_q_pfp_append_step_ABcoefficientscoefficientdiagonalentry. pfc_terms_code_append_step_ABcoefficientscoefficient = ff_q_pfp_append_step_ABcoefficientscoefficientdiagonalentry * S ((S (pfc_index_append_step_ABcoefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_ABcoefficientscoefficient) + (pfc_value_append_step_ABcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_append_step_ABcoefficientscoefficientdiagonalterm pfc_left_append_step_ABcoefficientscoefficientdiagonalterm pfc_right_append_step_ABcoefficientscoefficientdiagonalterm. (((pfc_index_append_step_ABcoefficientscoefficientdiagonal)+pfc_complement_append_step_ABcoefficientscoefficientdiagonalterm=(pfc_index_append_step_ABcoefficients)) /\ ((((((exists pfa_gap_append_step_ABcoefficientscoefficientdiagonaltermleftinside. pfa_gap_append_step_ABcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_append_step_ABcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_append_step_ABcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_append_step_ABcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_append_step_ABcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_append_step_ABcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_append_step_ABcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_append_step_ABcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_append_step_ABcoefficientscoefficientdiagonal)) * ac) + (pfc_left_append_step_ABcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_ABcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_append_step_ABcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_append_step_ABcoefficientscoefficientdiagonal)) /\ (((pfc_left_append_step_ABcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_append_step_ABcoefficientscoefficientdiagonaltermrightinside. pfa_gap_append_step_ABcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_append_step_ABcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_append_step_ABcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_append_step_ABcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_append_step_ABcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_append_step_ABcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_append_step_ABcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_append_step_ABcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_append_step_ABcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_append_step_ABcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_ABcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_append_step_ABcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_append_step_ABcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_append_step_ABcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_append_step_ABcoefficientscoefficientdiagonal)=pfc_left_append_step_ABcoefficientscoefficientdiagonalterm*pfc_right_append_step_ABcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_append_step_ABcoefficientscoefficientsum fs_v_pfc_append_step_ABcoefficientscoefficientsum. ((((exists fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_start. fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_append_step_ABcoefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_start. fs_u_pfc_append_step_ABcoefficientscoefficientsum = fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_append_step_ABcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_terminal. fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_append_step_ABcoefficientscoefficient) = S ((S (S (pfc_index_append_step_ABcoefficients))) * fs_v_pfc_append_step_ABcoefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_terminal. fs_u_pfc_append_step_ABcoefficientscoefficientsum = fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_append_step_ABcoefficients))) * fs_v_pfc_append_step_ABcoefficientscoefficientsum) + (pfc_natural_sum_append_step_ABcoefficientscoefficient))) /\ forall fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_append_step_ABcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_append_step_ABcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps = S (pfc_index_append_step_ABcoefficients)) -> exists fs_a_pfc_append_step_ABcoefficientscoefficientsum_body_steps fs_r_pfc_append_step_ABcoefficientscoefficientsum_body_steps fs_s_pfc_append_step_ABcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_append_step_ABcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_ABcoefficientscoefficient)) /\ exists fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_append_step_ABcoefficientscoefficient = fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_ABcoefficientscoefficient) + (fs_a_pfc_append_step_ABcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_append_step_ABcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_ABcoefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_append_step_ABcoefficientscoefficientsum = fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_ABcoefficientscoefficientsum) + (fs_r_pfc_append_step_ABcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_append_step_ABcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_ABcoefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_append_step_ABcoefficientscoefficientsum = fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_ABcoefficientscoefficientsum) + (fs_s_pfc_append_step_ABcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_append_step_ABcoefficientscoefficientsum_body_steps = fs_r_pfc_append_step_ABcoefficientscoefficientsum_body_steps + fs_a_pfc_append_step_ABcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_append_step_ABcoefficientscoefficientresiduebound. pfa_gap_append_step_ABcoefficientscoefficientresiduebound + S (pfc_value_append_step_ABcoefficients) = (p)) /\ ((exists pfa_offset_left_append_step_ABcoefficientscoefficientresiduecongruence pfa_offset_right_append_step_ABcoefficientscoefficientresiduecongruence. (pfc_natural_sum_append_step_ABcoefficientscoefficient) + (p) * pfa_offset_left_append_step_ABcoefficientscoefficientresiduecongruence = (pfc_value_append_step_ABcoefficients) + (p) * pfa_offset_right_append_step_ABcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_append_step_Q0left. (exists fom_gap_pfp_append_step_Q0left_index_bound. fom_gap_pfp_append_step_Q0left_index_bound + S (fom_index_pfp_append_step_Q0left) = M) -> exists fom_value_pfp_append_step_Q0left. ((((exists fom_beta_height_pfp_append_step_Q0left_entry. fom_beta_height_pfp_append_step_Q0left_entry + S (fom_value_pfp_append_step_Q0left) = S ((S (fom_index_pfp_append_step_Q0left)) * bc)) /\ exists fom_beta_quotient_pfp_append_step_Q0left_entry. bb = fom_beta_quotient_pfp_append_step_Q0left_entry * S ((S (fom_index_pfp_append_step_Q0left)) * bc) + (fom_value_pfp_append_step_Q0left))) /\ (exists fom_gap_pfp_append_step_Q0left_value_bound. fom_gap_pfp_append_step_Q0left_value_bound + S (fom_value_pfp_append_step_Q0left) = p))) /\ (((forall fom_index_pfp_append_step_Q0right. (exists fom_gap_pfp_append_step_Q0right_index_bound. fom_gap_pfp_append_step_Q0right_index_bound + S (fom_index_pfp_append_step_Q0right) = J) -> exists fom_value_pfp_append_step_Q0right. ((((exists fom_beta_height_pfp_append_step_Q0right_entry. fom_beta_height_pfp_append_step_Q0right_entry + S (fom_value_pfp_append_step_Q0right) = S ((S (fom_index_pfp_append_step_Q0right)) * cc)) /\ exists fom_beta_quotient_pfp_append_step_Q0right_entry. cb = fom_beta_quotient_pfp_append_step_Q0right_entry * S ((S (fom_index_pfp_append_step_Q0right)) * cc) + (fom_value_pfp_append_step_Q0right))) /\ (exists fom_gap_pfp_append_step_Q0right_value_bound. fom_gap_pfp_append_step_Q0right_value_bound + S (fom_value_pfp_append_step_Q0right) = p))) /\ (((((((M)=0 \/ (J)=0) /\ (((K0)=0)))) \/ (((~((M)=0)) /\ (((~((J)=0)) /\ (((M)+(J)=S (K0)))))))) /\ ((forall pfc_index_append_step_Q0coefficients. (exists pfa_gap_append_step_Q0coefficientsbound. pfa_gap_append_step_Q0coefficientsbound + S (pfc_index_append_step_Q0coefficients) = (K0)) -> exists pfc_value_append_step_Q0coefficients. ((((exists ff_h_pfp_append_step_Q0coefficientsentry. ff_h_pfp_append_step_Q0coefficientsentry + S (pfc_value_append_step_Q0coefficients) = S ((S (pfc_index_append_step_Q0coefficients)) * q0c)) /\ exists ff_q_pfp_append_step_Q0coefficientsentry. q0b = ff_q_pfp_append_step_Q0coefficientsentry * S ((S (pfc_index_append_step_Q0coefficients)) * q0c) + (pfc_value_append_step_Q0coefficients))) /\ ((exists pfc_terms_code_append_step_Q0coefficientscoefficient pfc_terms_scale_append_step_Q0coefficientscoefficient pfc_natural_sum_append_step_Q0coefficientscoefficient. ((forall pfc_index_append_step_Q0coefficientscoefficientdiagonal. (exists pfa_gap_append_step_Q0coefficientscoefficientdiagonalbound. pfa_gap_append_step_Q0coefficientscoefficientdiagonalbound + S (pfc_index_append_step_Q0coefficientscoefficientdiagonal) = (S (pfc_index_append_step_Q0coefficients))) -> exists pfc_value_append_step_Q0coefficientscoefficientdiagonal. ((((exists ff_h_pfp_append_step_Q0coefficientscoefficientdiagonalentry. ff_h_pfp_append_step_Q0coefficientscoefficientdiagonalentry + S (pfc_value_append_step_Q0coefficientscoefficientdiagonal) = S ((S (pfc_index_append_step_Q0coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_Q0coefficientscoefficient)) /\ exists ff_q_pfp_append_step_Q0coefficientscoefficientdiagonalentry. pfc_terms_code_append_step_Q0coefficientscoefficient = ff_q_pfp_append_step_Q0coefficientscoefficientdiagonalentry * S ((S (pfc_index_append_step_Q0coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_Q0coefficientscoefficient) + (pfc_value_append_step_Q0coefficientscoefficientdiagonal))) /\ ((exists pfc_complement_append_step_Q0coefficientscoefficientdiagonalterm pfc_left_append_step_Q0coefficientscoefficientdiagonalterm pfc_right_append_step_Q0coefficientscoefficientdiagonalterm. (((pfc_index_append_step_Q0coefficientscoefficientdiagonal)+pfc_complement_append_step_Q0coefficientscoefficientdiagonalterm=(pfc_index_append_step_Q0coefficients)) /\ ((((((exists pfa_gap_append_step_Q0coefficientscoefficientdiagonaltermleftinside. pfa_gap_append_step_Q0coefficientscoefficientdiagonaltermleftinside + S (pfc_index_append_step_Q0coefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_append_step_Q0coefficientscoefficientdiagonaltermleftentry. ff_h_pfp_append_step_Q0coefficientscoefficientdiagonaltermleftentry + S (pfc_left_append_step_Q0coefficientscoefficientdiagonalterm) = S ((S (pfc_index_append_step_Q0coefficientscoefficientdiagonal)) * bc)) /\ exists ff_q_pfp_append_step_Q0coefficientscoefficientdiagonaltermleftentry. bb = ff_q_pfp_append_step_Q0coefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_append_step_Q0coefficientscoefficientdiagonal)) * bc) + (pfc_left_append_step_Q0coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_Q0coefficientscoefficientdiagonaltermleftoutside. pfc_gap_append_step_Q0coefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_append_step_Q0coefficientscoefficientdiagonal)) /\ (((pfc_left_append_step_Q0coefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_append_step_Q0coefficientscoefficientdiagonaltermrightinside. pfa_gap_append_step_Q0coefficientscoefficientdiagonaltermrightinside + S (pfc_complement_append_step_Q0coefficientscoefficientdiagonalterm) = (J)) /\ ((((exists ff_h_pfp_append_step_Q0coefficientscoefficientdiagonaltermrightentry. ff_h_pfp_append_step_Q0coefficientscoefficientdiagonaltermrightentry + S (pfc_right_append_step_Q0coefficientscoefficientdiagonalterm) = S ((S (pfc_complement_append_step_Q0coefficientscoefficientdiagonalterm)) * cc)) /\ exists ff_q_pfp_append_step_Q0coefficientscoefficientdiagonaltermrightentry. cb = ff_q_pfp_append_step_Q0coefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_append_step_Q0coefficientscoefficientdiagonalterm)) * cc) + (pfc_right_append_step_Q0coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_Q0coefficientscoefficientdiagonaltermrightoutside. pfc_gap_append_step_Q0coefficientscoefficientdiagonaltermrightoutside+(J)=(pfc_complement_append_step_Q0coefficientscoefficientdiagonalterm)) /\ (((pfc_right_append_step_Q0coefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_append_step_Q0coefficientscoefficientdiagonal)=pfc_left_append_step_Q0coefficientscoefficientdiagonalterm*pfc_right_append_step_Q0coefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_append_step_Q0coefficientscoefficientsum fs_v_pfc_append_step_Q0coefficientscoefficientsum. ((((exists fs_h_pfc_append_step_Q0coefficientscoefficientsum_body_start. fs_h_pfc_append_step_Q0coefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_append_step_Q0coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_Q0coefficientscoefficientsum_body_start. fs_u_pfc_append_step_Q0coefficientscoefficientsum = fs_q_pfc_append_step_Q0coefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_append_step_Q0coefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_append_step_Q0coefficientscoefficientsum_body_terminal. fs_h_pfc_append_step_Q0coefficientscoefficientsum_body_terminal + S (pfc_natural_sum_append_step_Q0coefficientscoefficient) = S ((S (S (pfc_index_append_step_Q0coefficients))) * fs_v_pfc_append_step_Q0coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_Q0coefficientscoefficientsum_body_terminal. fs_u_pfc_append_step_Q0coefficientscoefficientsum = fs_q_pfc_append_step_Q0coefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_append_step_Q0coefficients))) * fs_v_pfc_append_step_Q0coefficientscoefficientsum) + (pfc_natural_sum_append_step_Q0coefficientscoefficient))) /\ forall fs_i_pfc_append_step_Q0coefficientscoefficientsum_body_steps. (exists fs_lt_pfc_append_step_Q0coefficientscoefficientsum_body_steps_bound. fs_lt_pfc_append_step_Q0coefficientscoefficientsum_body_steps_bound + S fs_i_pfc_append_step_Q0coefficientscoefficientsum_body_steps = S (pfc_index_append_step_Q0coefficients)) -> exists fs_a_pfc_append_step_Q0coefficientscoefficientsum_body_steps fs_r_pfc_append_step_Q0coefficientscoefficientsum_body_steps fs_s_pfc_append_step_Q0coefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_append_step_Q0coefficientscoefficientsum_body_steps_summand. fs_h_pfc_append_step_Q0coefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_append_step_Q0coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_Q0coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_Q0coefficientscoefficient)) /\ exists fs_q_pfc_append_step_Q0coefficientscoefficientsum_body_steps_summand. pfc_terms_code_append_step_Q0coefficientscoefficient = fs_q_pfc_append_step_Q0coefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_append_step_Q0coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_Q0coefficientscoefficient) + (fs_a_pfc_append_step_Q0coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_Q0coefficientscoefficientsum_body_steps_partial. fs_h_pfc_append_step_Q0coefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_append_step_Q0coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_Q0coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_Q0coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_Q0coefficientscoefficientsum_body_steps_partial. fs_u_pfc_append_step_Q0coefficientscoefficientsum = fs_q_pfc_append_step_Q0coefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_append_step_Q0coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_Q0coefficientscoefficientsum) + (fs_r_pfc_append_step_Q0coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_Q0coefficientscoefficientsum_body_steps_successor. fs_h_pfc_append_step_Q0coefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_append_step_Q0coefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_append_step_Q0coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_Q0coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_Q0coefficientscoefficientsum_body_steps_successor. fs_u_pfc_append_step_Q0coefficientscoefficientsum = fs_q_pfc_append_step_Q0coefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_append_step_Q0coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_Q0coefficientscoefficientsum) + (fs_s_pfc_append_step_Q0coefficientscoefficientsum_body_steps))) /\ fs_s_pfc_append_step_Q0coefficientscoefficientsum_body_steps = fs_r_pfc_append_step_Q0coefficientscoefficientsum_body_steps + fs_a_pfc_append_step_Q0coefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_append_step_Q0coefficientscoefficientresiduebound. pfa_gap_append_step_Q0coefficientscoefficientresiduebound + S (pfc_value_append_step_Q0coefficients) = (p)) /\ ((exists pfa_offset_left_append_step_Q0coefficientscoefficientresiduecongruence pfa_offset_right_append_step_Q0coefficientscoefficientresiduecongruence. (pfc_natural_sum_append_step_Q0coefficientscoefficient) + (p) * pfa_offset_left_append_step_Q0coefficientscoefficientresiduecongruence = (pfc_value_append_step_Q0coefficients) + (p) * pfa_offset_right_append_step_Q0coefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_append_step_R0left. (exists fom_gap_pfp_append_step_R0left_index_bound. fom_gap_pfp_append_step_R0left_index_bound + S (fom_index_pfp_append_step_R0left) = N) -> exists fom_value_pfp_append_step_R0left. ((((exists fom_beta_height_pfp_append_step_R0left_entry. fom_beta_height_pfp_append_step_R0left_entry + S (fom_value_pfp_append_step_R0left) = S ((S (fom_index_pfp_append_step_R0left)) * pc)) /\ exists fom_beta_quotient_pfp_append_step_R0left_entry. pb = fom_beta_quotient_pfp_append_step_R0left_entry * S ((S (fom_index_pfp_append_step_R0left)) * pc) + (fom_value_pfp_append_step_R0left))) /\ (exists fom_gap_pfp_append_step_R0left_value_bound. fom_gap_pfp_append_step_R0left_value_bound + S (fom_value_pfp_append_step_R0left) = p))) /\ (((forall fom_index_pfp_append_step_R0right. (exists fom_gap_pfp_append_step_R0right_index_bound. fom_gap_pfp_append_step_R0right_index_bound + S (fom_index_pfp_append_step_R0right) = J) -> exists fom_value_pfp_append_step_R0right. ((((exists fom_beta_height_pfp_append_step_R0right_entry. fom_beta_height_pfp_append_step_R0right_entry + S (fom_value_pfp_append_step_R0right) = S ((S (fom_index_pfp_append_step_R0right)) * cc)) /\ exists fom_beta_quotient_pfp_append_step_R0right_entry. cb = fom_beta_quotient_pfp_append_step_R0right_entry * S ((S (fom_index_pfp_append_step_R0right)) * cc) + (fom_value_pfp_append_step_R0right))) /\ (exists fom_gap_pfp_append_step_R0right_value_bound. fom_gap_pfp_append_step_R0right_value_bound + S (fom_value_pfp_append_step_R0right) = p))) /\ (((((((N)=0 \/ (J)=0) /\ (((U0)=0)))) \/ (((~((N)=0)) /\ (((~((J)=0)) /\ (((N)+(J)=S (U0)))))))) /\ ((forall pfc_index_append_step_R0coefficients. (exists pfa_gap_append_step_R0coefficientsbound. pfa_gap_append_step_R0coefficientsbound + S (pfc_index_append_step_R0coefficients) = (U0)) -> exists pfc_value_append_step_R0coefficients. ((((exists ff_h_pfp_append_step_R0coefficientsentry. ff_h_pfp_append_step_R0coefficientsentry + S (pfc_value_append_step_R0coefficients) = S ((S (pfc_index_append_step_R0coefficients)) * r0c)) /\ exists ff_q_pfp_append_step_R0coefficientsentry. r0b = ff_q_pfp_append_step_R0coefficientsentry * S ((S (pfc_index_append_step_R0coefficients)) * r0c) + (pfc_value_append_step_R0coefficients))) /\ ((exists pfc_terms_code_append_step_R0coefficientscoefficient pfc_terms_scale_append_step_R0coefficientscoefficient pfc_natural_sum_append_step_R0coefficientscoefficient. ((forall pfc_index_append_step_R0coefficientscoefficientdiagonal. (exists pfa_gap_append_step_R0coefficientscoefficientdiagonalbound. pfa_gap_append_step_R0coefficientscoefficientdiagonalbound + S (pfc_index_append_step_R0coefficientscoefficientdiagonal) = (S (pfc_index_append_step_R0coefficients))) -> exists pfc_value_append_step_R0coefficientscoefficientdiagonal. ((((exists ff_h_pfp_append_step_R0coefficientscoefficientdiagonalentry. ff_h_pfp_append_step_R0coefficientscoefficientdiagonalentry + S (pfc_value_append_step_R0coefficientscoefficientdiagonal) = S ((S (pfc_index_append_step_R0coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_R0coefficientscoefficient)) /\ exists ff_q_pfp_append_step_R0coefficientscoefficientdiagonalentry. pfc_terms_code_append_step_R0coefficientscoefficient = ff_q_pfp_append_step_R0coefficientscoefficientdiagonalentry * S ((S (pfc_index_append_step_R0coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_R0coefficientscoefficient) + (pfc_value_append_step_R0coefficientscoefficientdiagonal))) /\ ((exists pfc_complement_append_step_R0coefficientscoefficientdiagonalterm pfc_left_append_step_R0coefficientscoefficientdiagonalterm pfc_right_append_step_R0coefficientscoefficientdiagonalterm. (((pfc_index_append_step_R0coefficientscoefficientdiagonal)+pfc_complement_append_step_R0coefficientscoefficientdiagonalterm=(pfc_index_append_step_R0coefficients)) /\ ((((((exists pfa_gap_append_step_R0coefficientscoefficientdiagonaltermleftinside. pfa_gap_append_step_R0coefficientscoefficientdiagonaltermleftinside + S (pfc_index_append_step_R0coefficientscoefficientdiagonal) = (N)) /\ ((((exists ff_h_pfp_append_step_R0coefficientscoefficientdiagonaltermleftentry. ff_h_pfp_append_step_R0coefficientscoefficientdiagonaltermleftentry + S (pfc_left_append_step_R0coefficientscoefficientdiagonalterm) = S ((S (pfc_index_append_step_R0coefficientscoefficientdiagonal)) * pc)) /\ exists ff_q_pfp_append_step_R0coefficientscoefficientdiagonaltermleftentry. pb = ff_q_pfp_append_step_R0coefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_append_step_R0coefficientscoefficientdiagonal)) * pc) + (pfc_left_append_step_R0coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_R0coefficientscoefficientdiagonaltermleftoutside. pfc_gap_append_step_R0coefficientscoefficientdiagonaltermleftoutside+(N)=(pfc_index_append_step_R0coefficientscoefficientdiagonal)) /\ (((pfc_left_append_step_R0coefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_append_step_R0coefficientscoefficientdiagonaltermrightinside. pfa_gap_append_step_R0coefficientscoefficientdiagonaltermrightinside + S (pfc_complement_append_step_R0coefficientscoefficientdiagonalterm) = (J)) /\ ((((exists ff_h_pfp_append_step_R0coefficientscoefficientdiagonaltermrightentry. ff_h_pfp_append_step_R0coefficientscoefficientdiagonaltermrightentry + S (pfc_right_append_step_R0coefficientscoefficientdiagonalterm) = S ((S (pfc_complement_append_step_R0coefficientscoefficientdiagonalterm)) * cc)) /\ exists ff_q_pfp_append_step_R0coefficientscoefficientdiagonaltermrightentry. cb = ff_q_pfp_append_step_R0coefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_append_step_R0coefficientscoefficientdiagonalterm)) * cc) + (pfc_right_append_step_R0coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_R0coefficientscoefficientdiagonaltermrightoutside. pfc_gap_append_step_R0coefficientscoefficientdiagonaltermrightoutside+(J)=(pfc_complement_append_step_R0coefficientscoefficientdiagonalterm)) /\ (((pfc_right_append_step_R0coefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_append_step_R0coefficientscoefficientdiagonal)=pfc_left_append_step_R0coefficientscoefficientdiagonalterm*pfc_right_append_step_R0coefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_append_step_R0coefficientscoefficientsum fs_v_pfc_append_step_R0coefficientscoefficientsum. ((((exists fs_h_pfc_append_step_R0coefficientscoefficientsum_body_start. fs_h_pfc_append_step_R0coefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_append_step_R0coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_R0coefficientscoefficientsum_body_start. fs_u_pfc_append_step_R0coefficientscoefficientsum = fs_q_pfc_append_step_R0coefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_append_step_R0coefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_append_step_R0coefficientscoefficientsum_body_terminal. fs_h_pfc_append_step_R0coefficientscoefficientsum_body_terminal + S (pfc_natural_sum_append_step_R0coefficientscoefficient) = S ((S (S (pfc_index_append_step_R0coefficients))) * fs_v_pfc_append_step_R0coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_R0coefficientscoefficientsum_body_terminal. fs_u_pfc_append_step_R0coefficientscoefficientsum = fs_q_pfc_append_step_R0coefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_append_step_R0coefficients))) * fs_v_pfc_append_step_R0coefficientscoefficientsum) + (pfc_natural_sum_append_step_R0coefficientscoefficient))) /\ forall fs_i_pfc_append_step_R0coefficientscoefficientsum_body_steps. (exists fs_lt_pfc_append_step_R0coefficientscoefficientsum_body_steps_bound. fs_lt_pfc_append_step_R0coefficientscoefficientsum_body_steps_bound + S fs_i_pfc_append_step_R0coefficientscoefficientsum_body_steps = S (pfc_index_append_step_R0coefficients)) -> exists fs_a_pfc_append_step_R0coefficientscoefficientsum_body_steps fs_r_pfc_append_step_R0coefficientscoefficientsum_body_steps fs_s_pfc_append_step_R0coefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_append_step_R0coefficientscoefficientsum_body_steps_summand. fs_h_pfc_append_step_R0coefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_append_step_R0coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_R0coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_R0coefficientscoefficient)) /\ exists fs_q_pfc_append_step_R0coefficientscoefficientsum_body_steps_summand. pfc_terms_code_append_step_R0coefficientscoefficient = fs_q_pfc_append_step_R0coefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_append_step_R0coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_R0coefficientscoefficient) + (fs_a_pfc_append_step_R0coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_R0coefficientscoefficientsum_body_steps_partial. fs_h_pfc_append_step_R0coefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_append_step_R0coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_R0coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_R0coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_R0coefficientscoefficientsum_body_steps_partial. fs_u_pfc_append_step_R0coefficientscoefficientsum = fs_q_pfc_append_step_R0coefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_append_step_R0coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_R0coefficientscoefficientsum) + (fs_r_pfc_append_step_R0coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_R0coefficientscoefficientsum_body_steps_successor. fs_h_pfc_append_step_R0coefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_append_step_R0coefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_append_step_R0coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_R0coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_R0coefficientscoefficientsum_body_steps_successor. fs_u_pfc_append_step_R0coefficientscoefficientsum = fs_q_pfc_append_step_R0coefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_append_step_R0coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_R0coefficientscoefficientsum) + (fs_s_pfc_append_step_R0coefficientscoefficientsum_body_steps))) /\ fs_s_pfc_append_step_R0coefficientscoefficientsum_body_steps = fs_r_pfc_append_step_R0coefficientscoefficientsum_body_steps + fs_a_pfc_append_step_R0coefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_append_step_R0coefficientscoefficientresiduebound. pfa_gap_append_step_R0coefficientscoefficientresiduebound + S (pfc_value_append_step_R0coefficients) = (p)) /\ ((exists pfa_offset_left_append_step_R0coefficientscoefficientresiduecongruence pfa_offset_right_append_step_R0coefficientscoefficientresiduecongruence. (pfc_natural_sum_append_step_R0coefficientscoefficient) + (p) * pfa_offset_left_append_step_R0coefficientscoefficientresiduecongruence = (pfc_value_append_step_R0coefficients) + (p) * pfa_offset_right_append_step_R0coefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_append_step_S0left. (exists fom_gap_pfp_append_step_S0left_index_bound. fom_gap_pfp_append_step_S0left_index_bound + S (fom_index_pfp_append_step_S0left) = L) -> exists fom_value_pfp_append_step_S0left. ((((exists fom_beta_height_pfp_append_step_S0left_entry. fom_beta_height_pfp_append_step_S0left_entry + S (fom_value_pfp_append_step_S0left) = S ((S (fom_index_pfp_append_step_S0left)) * ac)) /\ exists fom_beta_quotient_pfp_append_step_S0left_entry. ab = fom_beta_quotient_pfp_append_step_S0left_entry * S ((S (fom_index_pfp_append_step_S0left)) * ac) + (fom_value_pfp_append_step_S0left))) /\ (exists fom_gap_pfp_append_step_S0left_value_bound. fom_gap_pfp_append_step_S0left_value_bound + S (fom_value_pfp_append_step_S0left) = p))) /\ (((forall fom_index_pfp_append_step_S0right. (exists fom_gap_pfp_append_step_S0right_index_bound. fom_gap_pfp_append_step_S0right_index_bound + S (fom_index_pfp_append_step_S0right) = K0) -> exists fom_value_pfp_append_step_S0right. ((((exists fom_beta_height_pfp_append_step_S0right_entry. fom_beta_height_pfp_append_step_S0right_entry + S (fom_value_pfp_append_step_S0right) = S ((S (fom_index_pfp_append_step_S0right)) * q0c)) /\ exists fom_beta_quotient_pfp_append_step_S0right_entry. q0b = fom_beta_quotient_pfp_append_step_S0right_entry * S ((S (fom_index_pfp_append_step_S0right)) * q0c) + (fom_value_pfp_append_step_S0right))) /\ (exists fom_gap_pfp_append_step_S0right_value_bound. fom_gap_pfp_append_step_S0right_value_bound + S (fom_value_pfp_append_step_S0right) = p))) /\ (((((((L)=0 \/ (K0)=0) /\ (((V0)=0)))) \/ (((~((L)=0)) /\ (((~((K0)=0)) /\ (((L)+(K0)=S (V0)))))))) /\ ((forall pfc_index_append_step_S0coefficients. (exists pfa_gap_append_step_S0coefficientsbound. pfa_gap_append_step_S0coefficientsbound + S (pfc_index_append_step_S0coefficients) = (V0)) -> exists pfc_value_append_step_S0coefficients. ((((exists ff_h_pfp_append_step_S0coefficientsentry. ff_h_pfp_append_step_S0coefficientsentry + S (pfc_value_append_step_S0coefficients) = S ((S (pfc_index_append_step_S0coefficients)) * s0c)) /\ exists ff_q_pfp_append_step_S0coefficientsentry. s0b = ff_q_pfp_append_step_S0coefficientsentry * S ((S (pfc_index_append_step_S0coefficients)) * s0c) + (pfc_value_append_step_S0coefficients))) /\ ((exists pfc_terms_code_append_step_S0coefficientscoefficient pfc_terms_scale_append_step_S0coefficientscoefficient pfc_natural_sum_append_step_S0coefficientscoefficient. ((forall pfc_index_append_step_S0coefficientscoefficientdiagonal. (exists pfa_gap_append_step_S0coefficientscoefficientdiagonalbound. pfa_gap_append_step_S0coefficientscoefficientdiagonalbound + S (pfc_index_append_step_S0coefficientscoefficientdiagonal) = (S (pfc_index_append_step_S0coefficients))) -> exists pfc_value_append_step_S0coefficientscoefficientdiagonal. ((((exists ff_h_pfp_append_step_S0coefficientscoefficientdiagonalentry. ff_h_pfp_append_step_S0coefficientscoefficientdiagonalentry + S (pfc_value_append_step_S0coefficientscoefficientdiagonal) = S ((S (pfc_index_append_step_S0coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_S0coefficientscoefficient)) /\ exists ff_q_pfp_append_step_S0coefficientscoefficientdiagonalentry. pfc_terms_code_append_step_S0coefficientscoefficient = ff_q_pfp_append_step_S0coefficientscoefficientdiagonalentry * S ((S (pfc_index_append_step_S0coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_S0coefficientscoefficient) + (pfc_value_append_step_S0coefficientscoefficientdiagonal))) /\ ((exists pfc_complement_append_step_S0coefficientscoefficientdiagonalterm pfc_left_append_step_S0coefficientscoefficientdiagonalterm pfc_right_append_step_S0coefficientscoefficientdiagonalterm. (((pfc_index_append_step_S0coefficientscoefficientdiagonal)+pfc_complement_append_step_S0coefficientscoefficientdiagonalterm=(pfc_index_append_step_S0coefficients)) /\ ((((((exists pfa_gap_append_step_S0coefficientscoefficientdiagonaltermleftinside. pfa_gap_append_step_S0coefficientscoefficientdiagonaltermleftinside + S (pfc_index_append_step_S0coefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_append_step_S0coefficientscoefficientdiagonaltermleftentry. ff_h_pfp_append_step_S0coefficientscoefficientdiagonaltermleftentry + S (pfc_left_append_step_S0coefficientscoefficientdiagonalterm) = S ((S (pfc_index_append_step_S0coefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_append_step_S0coefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_append_step_S0coefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_append_step_S0coefficientscoefficientdiagonal)) * ac) + (pfc_left_append_step_S0coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_S0coefficientscoefficientdiagonaltermleftoutside. pfc_gap_append_step_S0coefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_append_step_S0coefficientscoefficientdiagonal)) /\ (((pfc_left_append_step_S0coefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_append_step_S0coefficientscoefficientdiagonaltermrightinside. pfa_gap_append_step_S0coefficientscoefficientdiagonaltermrightinside + S (pfc_complement_append_step_S0coefficientscoefficientdiagonalterm) = (K0)) /\ ((((exists ff_h_pfp_append_step_S0coefficientscoefficientdiagonaltermrightentry. ff_h_pfp_append_step_S0coefficientscoefficientdiagonaltermrightentry + S (pfc_right_append_step_S0coefficientscoefficientdiagonalterm) = S ((S (pfc_complement_append_step_S0coefficientscoefficientdiagonalterm)) * q0c)) /\ exists ff_q_pfp_append_step_S0coefficientscoefficientdiagonaltermrightentry. q0b = ff_q_pfp_append_step_S0coefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_append_step_S0coefficientscoefficientdiagonalterm)) * q0c) + (pfc_right_append_step_S0coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_S0coefficientscoefficientdiagonaltermrightoutside. pfc_gap_append_step_S0coefficientscoefficientdiagonaltermrightoutside+(K0)=(pfc_complement_append_step_S0coefficientscoefficientdiagonalterm)) /\ (((pfc_right_append_step_S0coefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_append_step_S0coefficientscoefficientdiagonal)=pfc_left_append_step_S0coefficientscoefficientdiagonalterm*pfc_right_append_step_S0coefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_append_step_S0coefficientscoefficientsum fs_v_pfc_append_step_S0coefficientscoefficientsum. ((((exists fs_h_pfc_append_step_S0coefficientscoefficientsum_body_start. fs_h_pfc_append_step_S0coefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_append_step_S0coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_S0coefficientscoefficientsum_body_start. fs_u_pfc_append_step_S0coefficientscoefficientsum = fs_q_pfc_append_step_S0coefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_append_step_S0coefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_append_step_S0coefficientscoefficientsum_body_terminal. fs_h_pfc_append_step_S0coefficientscoefficientsum_body_terminal + S (pfc_natural_sum_append_step_S0coefficientscoefficient) = S ((S (S (pfc_index_append_step_S0coefficients))) * fs_v_pfc_append_step_S0coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_S0coefficientscoefficientsum_body_terminal. fs_u_pfc_append_step_S0coefficientscoefficientsum = fs_q_pfc_append_step_S0coefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_append_step_S0coefficients))) * fs_v_pfc_append_step_S0coefficientscoefficientsum) + (pfc_natural_sum_append_step_S0coefficientscoefficient))) /\ forall fs_i_pfc_append_step_S0coefficientscoefficientsum_body_steps. (exists fs_lt_pfc_append_step_S0coefficientscoefficientsum_body_steps_bound. fs_lt_pfc_append_step_S0coefficientscoefficientsum_body_steps_bound + S fs_i_pfc_append_step_S0coefficientscoefficientsum_body_steps = S (pfc_index_append_step_S0coefficients)) -> exists fs_a_pfc_append_step_S0coefficientscoefficientsum_body_steps fs_r_pfc_append_step_S0coefficientscoefficientsum_body_steps fs_s_pfc_append_step_S0coefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_append_step_S0coefficientscoefficientsum_body_steps_summand. fs_h_pfc_append_step_S0coefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_append_step_S0coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_S0coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_S0coefficientscoefficient)) /\ exists fs_q_pfc_append_step_S0coefficientscoefficientsum_body_steps_summand. pfc_terms_code_append_step_S0coefficientscoefficient = fs_q_pfc_append_step_S0coefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_append_step_S0coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_S0coefficientscoefficient) + (fs_a_pfc_append_step_S0coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_S0coefficientscoefficientsum_body_steps_partial. fs_h_pfc_append_step_S0coefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_append_step_S0coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_S0coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_S0coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_S0coefficientscoefficientsum_body_steps_partial. fs_u_pfc_append_step_S0coefficientscoefficientsum = fs_q_pfc_append_step_S0coefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_append_step_S0coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_S0coefficientscoefficientsum) + (fs_r_pfc_append_step_S0coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_S0coefficientscoefficientsum_body_steps_successor. fs_h_pfc_append_step_S0coefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_append_step_S0coefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_append_step_S0coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_S0coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_S0coefficientscoefficientsum_body_steps_successor. fs_u_pfc_append_step_S0coefficientscoefficientsum = fs_q_pfc_append_step_S0coefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_append_step_S0coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_S0coefficientscoefficientsum) + (fs_s_pfc_append_step_S0coefficientscoefficientsum_body_steps))) /\ fs_s_pfc_append_step_S0coefficientscoefficientsum_body_steps = fs_r_pfc_append_step_S0coefficientscoefficientsum_body_steps + fs_a_pfc_append_step_S0coefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_append_step_S0coefficientscoefficientresiduebound. pfa_gap_append_step_S0coefficientscoefficientresiduebound + S (pfc_value_append_step_S0coefficients) = (p)) /\ ((exists pfa_offset_left_append_step_S0coefficientscoefficientresiduecongruence pfa_offset_right_append_step_S0coefficientscoefficientresiduecongruence. (pfc_natural_sum_append_step_S0coefficientscoefficient) + (p) * pfa_offset_left_append_step_S0coefficientscoefficientresiduecongruence = (pfc_value_append_step_S0coefficients) + (p) * pfa_offset_right_append_step_S0coefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfrep_power_append_step_actual_induction_hypothesis pfrep_left_append_step_actual_induction_hypothesis pfrep_right_append_step_actual_induction_hypothesis. ((exists pfrep_position_append_step_actual_induction_hypothesisfirst. ((pfrep_position_append_step_actual_induction_hypothesisfirst+S (pfrep_power_append_step_actual_induction_hypothesis)=(U0)) /\ ((((exists ff_h_pfp_append_step_actual_induction_hypothesisfirstentry. ff_h_pfp_append_step_actual_induction_hypothesisfirstentry + S (pfrep_left_append_step_actual_induction_hypothesis) = S ((S (pfrep_position_append_step_actual_induction_hypothesisfirst)) * r0c)) /\ exists ff_q_pfp_append_step_actual_induction_hypothesisfirstentry. r0b = ff_q_pfp_append_step_actual_induction_hypothesisfirstentry * S ((S (pfrep_position_append_step_actual_induction_hypothesisfirst)) * r0c) + (pfrep_left_append_step_actual_induction_hypothesis)))))) \/ (((exists pfrep_gap_append_step_actual_induction_hypothesisfirstoutside. pfrep_gap_append_step_actual_induction_hypothesisfirstoutside+(U0)=(pfrep_power_append_step_actual_induction_hypothesis)) /\ (((pfrep_left_append_step_actual_induction_hypothesis)=0))))) -> ((exists pfrep_position_append_step_actual_induction_hypothesissecond. ((pfrep_position_append_step_actual_induction_hypothesissecond+S (pfrep_power_append_step_actual_induction_hypothesis)=(V0)) /\ ((((exists ff_h_pfp_append_step_actual_induction_hypothesissecondentry. ff_h_pfp_append_step_actual_induction_hypothesissecondentry + S (pfrep_right_append_step_actual_induction_hypothesis) = S ((S (pfrep_position_append_step_actual_induction_hypothesissecond)) * s0c)) /\ exists ff_q_pfp_append_step_actual_induction_hypothesissecondentry. s0b = ff_q_pfp_append_step_actual_induction_hypothesissecondentry * S ((S (pfrep_position_append_step_actual_induction_hypothesissecond)) * s0c) + (pfrep_right_append_step_actual_induction_hypothesis)))))) \/ (((exists pfrep_gap_append_step_actual_induction_hypothesissecondoutside. pfrep_gap_append_step_actual_induction_hypothesissecondoutside+(V0)=(pfrep_power_append_step_actual_induction_hypothesis)) /\ (((pfrep_right_append_step_actual_induction_hypothesis)=0))))) -> pfrep_left_append_step_actual_induction_hypothesis=pfrep_right_append_step_actual_induction_hypothesis) -> (forall mdr_i_pfp_append_step_prefix mdr_a_pfp_append_step_prefix. (exists mdr_gap_pfp_append_step_prefixb. mdr_gap_pfp_append_step_prefixb + S (mdr_i_pfp_append_step_prefix) = (J)) -> (((exists ff_h_mdr_pfp_append_step_prefixo. ff_h_mdr_pfp_append_step_prefixo + S (mdr_a_pfp_append_step_prefix) = S ((S (mdr_i_pfp_append_step_prefix)) * cc)) /\ exists ff_q_mdr_pfp_append_step_prefixo. cb = ff_q_mdr_pfp_append_step_prefixo * S ((S (mdr_i_pfp_append_step_prefix)) * cc) + (mdr_a_pfp_append_step_prefix))) -> (((exists ff_h_mdr_pfp_append_step_prefixn. ff_h_mdr_pfp_append_step_prefixn + S (mdr_a_pfp_append_step_prefix) = S ((S (mdr_i_pfp_append_step_prefix)) * dc)) /\ exists ff_q_mdr_pfp_append_step_prefixn. db = ff_q_mdr_pfp_append_step_prefixn * S ((S (mdr_i_pfp_append_step_prefix)) * dc) + (mdr_a_pfp_append_step_prefix)))) -> (((exists ff_h_pfp_append_step_last. ff_h_pfp_append_step_last + S (c) = S ((S (J)) * dc)) /\ exists ff_q_pfp_append_step_last. db = ff_q_pfp_append_step_last * S ((S (J)) * dc) + (c))) -> (((forall fom_index_pfp_append_step_Q1left. (exists fom_gap_pfp_append_step_Q1left_index_bound. fom_gap_pfp_append_step_Q1left_index_bound + S (fom_index_pfp_append_step_Q1left) = M) -> exists fom_value_pfp_append_step_Q1left. ((((exists fom_beta_height_pfp_append_step_Q1left_entry. fom_beta_height_pfp_append_step_Q1left_entry + S (fom_value_pfp_append_step_Q1left) = S ((S (fom_index_pfp_append_step_Q1left)) * bc)) /\ exists fom_beta_quotient_pfp_append_step_Q1left_entry. bb = fom_beta_quotient_pfp_append_step_Q1left_entry * S ((S (fom_index_pfp_append_step_Q1left)) * bc) + (fom_value_pfp_append_step_Q1left))) /\ (exists fom_gap_pfp_append_step_Q1left_value_bound. fom_gap_pfp_append_step_Q1left_value_bound + S (fom_value_pfp_append_step_Q1left) = p))) /\ (((forall fom_index_pfp_append_step_Q1right. (exists fom_gap_pfp_append_step_Q1right_index_bound. fom_gap_pfp_append_step_Q1right_index_bound + S (fom_index_pfp_append_step_Q1right) = S J) -> exists fom_value_pfp_append_step_Q1right. ((((exists fom_beta_height_pfp_append_step_Q1right_entry. fom_beta_height_pfp_append_step_Q1right_entry + S (fom_value_pfp_append_step_Q1right) = S ((S (fom_index_pfp_append_step_Q1right)) * dc)) /\ exists fom_beta_quotient_pfp_append_step_Q1right_entry. db = fom_beta_quotient_pfp_append_step_Q1right_entry * S ((S (fom_index_pfp_append_step_Q1right)) * dc) + (fom_value_pfp_append_step_Q1right))) /\ (exists fom_gap_pfp_append_step_Q1right_value_bound. fom_gap_pfp_append_step_Q1right_value_bound + S (fom_value_pfp_append_step_Q1right) = p))) /\ (((((((M)=0 \/ (S J)=0) /\ (((K1)=0)))) \/ (((~((M)=0)) /\ (((~((S J)=0)) /\ (((M)+(S J)=S (K1)))))))) /\ ((forall pfc_index_append_step_Q1coefficients. (exists pfa_gap_append_step_Q1coefficientsbound. pfa_gap_append_step_Q1coefficientsbound + S (pfc_index_append_step_Q1coefficients) = (K1)) -> exists pfc_value_append_step_Q1coefficients. ((((exists ff_h_pfp_append_step_Q1coefficientsentry. ff_h_pfp_append_step_Q1coefficientsentry + S (pfc_value_append_step_Q1coefficients) = S ((S (pfc_index_append_step_Q1coefficients)) * q1c)) /\ exists ff_q_pfp_append_step_Q1coefficientsentry. q1b = ff_q_pfp_append_step_Q1coefficientsentry * S ((S (pfc_index_append_step_Q1coefficients)) * q1c) + (pfc_value_append_step_Q1coefficients))) /\ ((exists pfc_terms_code_append_step_Q1coefficientscoefficient pfc_terms_scale_append_step_Q1coefficientscoefficient pfc_natural_sum_append_step_Q1coefficientscoefficient. ((forall pfc_index_append_step_Q1coefficientscoefficientdiagonal. (exists pfa_gap_append_step_Q1coefficientscoefficientdiagonalbound. pfa_gap_append_step_Q1coefficientscoefficientdiagonalbound + S (pfc_index_append_step_Q1coefficientscoefficientdiagonal) = (S (pfc_index_append_step_Q1coefficients))) -> exists pfc_value_append_step_Q1coefficientscoefficientdiagonal. ((((exists ff_h_pfp_append_step_Q1coefficientscoefficientdiagonalentry. ff_h_pfp_append_step_Q1coefficientscoefficientdiagonalentry + S (pfc_value_append_step_Q1coefficientscoefficientdiagonal) = S ((S (pfc_index_append_step_Q1coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_Q1coefficientscoefficient)) /\ exists ff_q_pfp_append_step_Q1coefficientscoefficientdiagonalentry. pfc_terms_code_append_step_Q1coefficientscoefficient = ff_q_pfp_append_step_Q1coefficientscoefficientdiagonalentry * S ((S (pfc_index_append_step_Q1coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_Q1coefficientscoefficient) + (pfc_value_append_step_Q1coefficientscoefficientdiagonal))) /\ ((exists pfc_complement_append_step_Q1coefficientscoefficientdiagonalterm pfc_left_append_step_Q1coefficientscoefficientdiagonalterm pfc_right_append_step_Q1coefficientscoefficientdiagonalterm. (((pfc_index_append_step_Q1coefficientscoefficientdiagonal)+pfc_complement_append_step_Q1coefficientscoefficientdiagonalterm=(pfc_index_append_step_Q1coefficients)) /\ ((((((exists pfa_gap_append_step_Q1coefficientscoefficientdiagonaltermleftinside. pfa_gap_append_step_Q1coefficientscoefficientdiagonaltermleftinside + S (pfc_index_append_step_Q1coefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_append_step_Q1coefficientscoefficientdiagonaltermleftentry. ff_h_pfp_append_step_Q1coefficientscoefficientdiagonaltermleftentry + S (pfc_left_append_step_Q1coefficientscoefficientdiagonalterm) = S ((S (pfc_index_append_step_Q1coefficientscoefficientdiagonal)) * bc)) /\ exists ff_q_pfp_append_step_Q1coefficientscoefficientdiagonaltermleftentry. bb = ff_q_pfp_append_step_Q1coefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_append_step_Q1coefficientscoefficientdiagonal)) * bc) + (pfc_left_append_step_Q1coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_Q1coefficientscoefficientdiagonaltermleftoutside. pfc_gap_append_step_Q1coefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_append_step_Q1coefficientscoefficientdiagonal)) /\ (((pfc_left_append_step_Q1coefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_append_step_Q1coefficientscoefficientdiagonaltermrightinside. pfa_gap_append_step_Q1coefficientscoefficientdiagonaltermrightinside + S (pfc_complement_append_step_Q1coefficientscoefficientdiagonalterm) = (S J)) /\ ((((exists ff_h_pfp_append_step_Q1coefficientscoefficientdiagonaltermrightentry. ff_h_pfp_append_step_Q1coefficientscoefficientdiagonaltermrightentry + S (pfc_right_append_step_Q1coefficientscoefficientdiagonalterm) = S ((S (pfc_complement_append_step_Q1coefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_append_step_Q1coefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_append_step_Q1coefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_append_step_Q1coefficientscoefficientdiagonalterm)) * dc) + (pfc_right_append_step_Q1coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_Q1coefficientscoefficientdiagonaltermrightoutside. pfc_gap_append_step_Q1coefficientscoefficientdiagonaltermrightoutside+(S J)=(pfc_complement_append_step_Q1coefficientscoefficientdiagonalterm)) /\ (((pfc_right_append_step_Q1coefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_append_step_Q1coefficientscoefficientdiagonal)=pfc_left_append_step_Q1coefficientscoefficientdiagonalterm*pfc_right_append_step_Q1coefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_append_step_Q1coefficientscoefficientsum fs_v_pfc_append_step_Q1coefficientscoefficientsum. ((((exists fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_start. fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_append_step_Q1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_start. fs_u_pfc_append_step_Q1coefficientscoefficientsum = fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_append_step_Q1coefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_terminal. fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_terminal + S (pfc_natural_sum_append_step_Q1coefficientscoefficient) = S ((S (S (pfc_index_append_step_Q1coefficients))) * fs_v_pfc_append_step_Q1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_terminal. fs_u_pfc_append_step_Q1coefficientscoefficientsum = fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_append_step_Q1coefficients))) * fs_v_pfc_append_step_Q1coefficientscoefficientsum) + (pfc_natural_sum_append_step_Q1coefficientscoefficient))) /\ forall fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps. (exists fs_lt_pfc_append_step_Q1coefficientscoefficientsum_body_steps_bound. fs_lt_pfc_append_step_Q1coefficientscoefficientsum_body_steps_bound + S fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps = S (pfc_index_append_step_Q1coefficients)) -> exists fs_a_pfc_append_step_Q1coefficientscoefficientsum_body_steps fs_r_pfc_append_step_Q1coefficientscoefficientsum_body_steps fs_s_pfc_append_step_Q1coefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_steps_summand. fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_append_step_Q1coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_Q1coefficientscoefficient)) /\ exists fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_steps_summand. pfc_terms_code_append_step_Q1coefficientscoefficient = fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_Q1coefficientscoefficient) + (fs_a_pfc_append_step_Q1coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_steps_partial. fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_append_step_Q1coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_Q1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_steps_partial. fs_u_pfc_append_step_Q1coefficientscoefficientsum = fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_Q1coefficientscoefficientsum) + (fs_r_pfc_append_step_Q1coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_steps_successor. fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_append_step_Q1coefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_Q1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_steps_successor. fs_u_pfc_append_step_Q1coefficientscoefficientsum = fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_Q1coefficientscoefficientsum) + (fs_s_pfc_append_step_Q1coefficientscoefficientsum_body_steps))) /\ fs_s_pfc_append_step_Q1coefficientscoefficientsum_body_steps = fs_r_pfc_append_step_Q1coefficientscoefficientsum_body_steps + fs_a_pfc_append_step_Q1coefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_append_step_Q1coefficientscoefficientresiduebound. pfa_gap_append_step_Q1coefficientscoefficientresiduebound + S (pfc_value_append_step_Q1coefficients) = (p)) /\ ((exists pfa_offset_left_append_step_Q1coefficientscoefficientresiduecongruence pfa_offset_right_append_step_Q1coefficientscoefficientresiduecongruence. (pfc_natural_sum_append_step_Q1coefficientscoefficient) + (p) * pfa_offset_left_append_step_Q1coefficientscoefficientresiduecongruence = (pfc_value_append_step_Q1coefficients) + (p) * pfa_offset_right_append_step_Q1coefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_append_step_R1left. (exists fom_gap_pfp_append_step_R1left_index_bound. fom_gap_pfp_append_step_R1left_index_bound + S (fom_index_pfp_append_step_R1left) = N) -> exists fom_value_pfp_append_step_R1left. ((((exists fom_beta_height_pfp_append_step_R1left_entry. fom_beta_height_pfp_append_step_R1left_entry + S (fom_value_pfp_append_step_R1left) = S ((S (fom_index_pfp_append_step_R1left)) * pc)) /\ exists fom_beta_quotient_pfp_append_step_R1left_entry. pb = fom_beta_quotient_pfp_append_step_R1left_entry * S ((S (fom_index_pfp_append_step_R1left)) * pc) + (fom_value_pfp_append_step_R1left))) /\ (exists fom_gap_pfp_append_step_R1left_value_bound. fom_gap_pfp_append_step_R1left_value_bound + S (fom_value_pfp_append_step_R1left) = p))) /\ (((forall fom_index_pfp_append_step_R1right. (exists fom_gap_pfp_append_step_R1right_index_bound. fom_gap_pfp_append_step_R1right_index_bound + S (fom_index_pfp_append_step_R1right) = S J) -> exists fom_value_pfp_append_step_R1right. ((((exists fom_beta_height_pfp_append_step_R1right_entry. fom_beta_height_pfp_append_step_R1right_entry + S (fom_value_pfp_append_step_R1right) = S ((S (fom_index_pfp_append_step_R1right)) * dc)) /\ exists fom_beta_quotient_pfp_append_step_R1right_entry. db = fom_beta_quotient_pfp_append_step_R1right_entry * S ((S (fom_index_pfp_append_step_R1right)) * dc) + (fom_value_pfp_append_step_R1right))) /\ (exists fom_gap_pfp_append_step_R1right_value_bound. fom_gap_pfp_append_step_R1right_value_bound + S (fom_value_pfp_append_step_R1right) = p))) /\ (((((((N)=0 \/ (S J)=0) /\ (((U1)=0)))) \/ (((~((N)=0)) /\ (((~((S J)=0)) /\ (((N)+(S J)=S (U1)))))))) /\ ((forall pfc_index_append_step_R1coefficients. (exists pfa_gap_append_step_R1coefficientsbound. pfa_gap_append_step_R1coefficientsbound + S (pfc_index_append_step_R1coefficients) = (U1)) -> exists pfc_value_append_step_R1coefficients. ((((exists ff_h_pfp_append_step_R1coefficientsentry. ff_h_pfp_append_step_R1coefficientsentry + S (pfc_value_append_step_R1coefficients) = S ((S (pfc_index_append_step_R1coefficients)) * r1c)) /\ exists ff_q_pfp_append_step_R1coefficientsentry. r1b = ff_q_pfp_append_step_R1coefficientsentry * S ((S (pfc_index_append_step_R1coefficients)) * r1c) + (pfc_value_append_step_R1coefficients))) /\ ((exists pfc_terms_code_append_step_R1coefficientscoefficient pfc_terms_scale_append_step_R1coefficientscoefficient pfc_natural_sum_append_step_R1coefficientscoefficient. ((forall pfc_index_append_step_R1coefficientscoefficientdiagonal. (exists pfa_gap_append_step_R1coefficientscoefficientdiagonalbound. pfa_gap_append_step_R1coefficientscoefficientdiagonalbound + S (pfc_index_append_step_R1coefficientscoefficientdiagonal) = (S (pfc_index_append_step_R1coefficients))) -> exists pfc_value_append_step_R1coefficientscoefficientdiagonal. ((((exists ff_h_pfp_append_step_R1coefficientscoefficientdiagonalentry. ff_h_pfp_append_step_R1coefficientscoefficientdiagonalentry + S (pfc_value_append_step_R1coefficientscoefficientdiagonal) = S ((S (pfc_index_append_step_R1coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_R1coefficientscoefficient)) /\ exists ff_q_pfp_append_step_R1coefficientscoefficientdiagonalentry. pfc_terms_code_append_step_R1coefficientscoefficient = ff_q_pfp_append_step_R1coefficientscoefficientdiagonalentry * S ((S (pfc_index_append_step_R1coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_R1coefficientscoefficient) + (pfc_value_append_step_R1coefficientscoefficientdiagonal))) /\ ((exists pfc_complement_append_step_R1coefficientscoefficientdiagonalterm pfc_left_append_step_R1coefficientscoefficientdiagonalterm pfc_right_append_step_R1coefficientscoefficientdiagonalterm. (((pfc_index_append_step_R1coefficientscoefficientdiagonal)+pfc_complement_append_step_R1coefficientscoefficientdiagonalterm=(pfc_index_append_step_R1coefficients)) /\ ((((((exists pfa_gap_append_step_R1coefficientscoefficientdiagonaltermleftinside. pfa_gap_append_step_R1coefficientscoefficientdiagonaltermleftinside + S (pfc_index_append_step_R1coefficientscoefficientdiagonal) = (N)) /\ ((((exists ff_h_pfp_append_step_R1coefficientscoefficientdiagonaltermleftentry. ff_h_pfp_append_step_R1coefficientscoefficientdiagonaltermleftentry + S (pfc_left_append_step_R1coefficientscoefficientdiagonalterm) = S ((S (pfc_index_append_step_R1coefficientscoefficientdiagonal)) * pc)) /\ exists ff_q_pfp_append_step_R1coefficientscoefficientdiagonaltermleftentry. pb = ff_q_pfp_append_step_R1coefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_append_step_R1coefficientscoefficientdiagonal)) * pc) + (pfc_left_append_step_R1coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_R1coefficientscoefficientdiagonaltermleftoutside. pfc_gap_append_step_R1coefficientscoefficientdiagonaltermleftoutside+(N)=(pfc_index_append_step_R1coefficientscoefficientdiagonal)) /\ (((pfc_left_append_step_R1coefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_append_step_R1coefficientscoefficientdiagonaltermrightinside. pfa_gap_append_step_R1coefficientscoefficientdiagonaltermrightinside + S (pfc_complement_append_step_R1coefficientscoefficientdiagonalterm) = (S J)) /\ ((((exists ff_h_pfp_append_step_R1coefficientscoefficientdiagonaltermrightentry. ff_h_pfp_append_step_R1coefficientscoefficientdiagonaltermrightentry + S (pfc_right_append_step_R1coefficientscoefficientdiagonalterm) = S ((S (pfc_complement_append_step_R1coefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_append_step_R1coefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_append_step_R1coefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_append_step_R1coefficientscoefficientdiagonalterm)) * dc) + (pfc_right_append_step_R1coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_R1coefficientscoefficientdiagonaltermrightoutside. pfc_gap_append_step_R1coefficientscoefficientdiagonaltermrightoutside+(S J)=(pfc_complement_append_step_R1coefficientscoefficientdiagonalterm)) /\ (((pfc_right_append_step_R1coefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_append_step_R1coefficientscoefficientdiagonal)=pfc_left_append_step_R1coefficientscoefficientdiagonalterm*pfc_right_append_step_R1coefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_append_step_R1coefficientscoefficientsum fs_v_pfc_append_step_R1coefficientscoefficientsum. ((((exists fs_h_pfc_append_step_R1coefficientscoefficientsum_body_start. fs_h_pfc_append_step_R1coefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_append_step_R1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_R1coefficientscoefficientsum_body_start. fs_u_pfc_append_step_R1coefficientscoefficientsum = fs_q_pfc_append_step_R1coefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_append_step_R1coefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_append_step_R1coefficientscoefficientsum_body_terminal. fs_h_pfc_append_step_R1coefficientscoefficientsum_body_terminal + S (pfc_natural_sum_append_step_R1coefficientscoefficient) = S ((S (S (pfc_index_append_step_R1coefficients))) * fs_v_pfc_append_step_R1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_R1coefficientscoefficientsum_body_terminal. fs_u_pfc_append_step_R1coefficientscoefficientsum = fs_q_pfc_append_step_R1coefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_append_step_R1coefficients))) * fs_v_pfc_append_step_R1coefficientscoefficientsum) + (pfc_natural_sum_append_step_R1coefficientscoefficient))) /\ forall fs_i_pfc_append_step_R1coefficientscoefficientsum_body_steps. (exists fs_lt_pfc_append_step_R1coefficientscoefficientsum_body_steps_bound. fs_lt_pfc_append_step_R1coefficientscoefficientsum_body_steps_bound + S fs_i_pfc_append_step_R1coefficientscoefficientsum_body_steps = S (pfc_index_append_step_R1coefficients)) -> exists fs_a_pfc_append_step_R1coefficientscoefficientsum_body_steps fs_r_pfc_append_step_R1coefficientscoefficientsum_body_steps fs_s_pfc_append_step_R1coefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_append_step_R1coefficientscoefficientsum_body_steps_summand. fs_h_pfc_append_step_R1coefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_append_step_R1coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_R1coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_R1coefficientscoefficient)) /\ exists fs_q_pfc_append_step_R1coefficientscoefficientsum_body_steps_summand. pfc_terms_code_append_step_R1coefficientscoefficient = fs_q_pfc_append_step_R1coefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_append_step_R1coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_R1coefficientscoefficient) + (fs_a_pfc_append_step_R1coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_R1coefficientscoefficientsum_body_steps_partial. fs_h_pfc_append_step_R1coefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_append_step_R1coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_R1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_R1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_R1coefficientscoefficientsum_body_steps_partial. fs_u_pfc_append_step_R1coefficientscoefficientsum = fs_q_pfc_append_step_R1coefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_append_step_R1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_R1coefficientscoefficientsum) + (fs_r_pfc_append_step_R1coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_R1coefficientscoefficientsum_body_steps_successor. fs_h_pfc_append_step_R1coefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_append_step_R1coefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_append_step_R1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_R1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_R1coefficientscoefficientsum_body_steps_successor. fs_u_pfc_append_step_R1coefficientscoefficientsum = fs_q_pfc_append_step_R1coefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_append_step_R1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_R1coefficientscoefficientsum) + (fs_s_pfc_append_step_R1coefficientscoefficientsum_body_steps))) /\ fs_s_pfc_append_step_R1coefficientscoefficientsum_body_steps = fs_r_pfc_append_step_R1coefficientscoefficientsum_body_steps + fs_a_pfc_append_step_R1coefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_append_step_R1coefficientscoefficientresiduebound. pfa_gap_append_step_R1coefficientscoefficientresiduebound + S (pfc_value_append_step_R1coefficients) = (p)) /\ ((exists pfa_offset_left_append_step_R1coefficientscoefficientresiduecongruence pfa_offset_right_append_step_R1coefficientscoefficientresiduecongruence. (pfc_natural_sum_append_step_R1coefficientscoefficient) + (p) * pfa_offset_left_append_step_R1coefficientscoefficientresiduecongruence = (pfc_value_append_step_R1coefficients) + (p) * pfa_offset_right_append_step_R1coefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_append_step_S1left. (exists fom_gap_pfp_append_step_S1left_index_bound. fom_gap_pfp_append_step_S1left_index_bound + S (fom_index_pfp_append_step_S1left) = L) -> exists fom_value_pfp_append_step_S1left. ((((exists fom_beta_height_pfp_append_step_S1left_entry. fom_beta_height_pfp_append_step_S1left_entry + S (fom_value_pfp_append_step_S1left) = S ((S (fom_index_pfp_append_step_S1left)) * ac)) /\ exists fom_beta_quotient_pfp_append_step_S1left_entry. ab = fom_beta_quotient_pfp_append_step_S1left_entry * S ((S (fom_index_pfp_append_step_S1left)) * ac) + (fom_value_pfp_append_step_S1left))) /\ (exists fom_gap_pfp_append_step_S1left_value_bound. fom_gap_pfp_append_step_S1left_value_bound + S (fom_value_pfp_append_step_S1left) = p))) /\ (((forall fom_index_pfp_append_step_S1right. (exists fom_gap_pfp_append_step_S1right_index_bound. fom_gap_pfp_append_step_S1right_index_bound + S (fom_index_pfp_append_step_S1right) = K1) -> exists fom_value_pfp_append_step_S1right. ((((exists fom_beta_height_pfp_append_step_S1right_entry. fom_beta_height_pfp_append_step_S1right_entry + S (fom_value_pfp_append_step_S1right) = S ((S (fom_index_pfp_append_step_S1right)) * q1c)) /\ exists fom_beta_quotient_pfp_append_step_S1right_entry. q1b = fom_beta_quotient_pfp_append_step_S1right_entry * S ((S (fom_index_pfp_append_step_S1right)) * q1c) + (fom_value_pfp_append_step_S1right))) /\ (exists fom_gap_pfp_append_step_S1right_value_bound. fom_gap_pfp_append_step_S1right_value_bound + S (fom_value_pfp_append_step_S1right) = p))) /\ (((((((L)=0 \/ (K1)=0) /\ (((V1)=0)))) \/ (((~((L)=0)) /\ (((~((K1)=0)) /\ (((L)+(K1)=S (V1)))))))) /\ ((forall pfc_index_append_step_S1coefficients. (exists pfa_gap_append_step_S1coefficientsbound. pfa_gap_append_step_S1coefficientsbound + S (pfc_index_append_step_S1coefficients) = (V1)) -> exists pfc_value_append_step_S1coefficients. ((((exists ff_h_pfp_append_step_S1coefficientsentry. ff_h_pfp_append_step_S1coefficientsentry + S (pfc_value_append_step_S1coefficients) = S ((S (pfc_index_append_step_S1coefficients)) * s1c)) /\ exists ff_q_pfp_append_step_S1coefficientsentry. s1b = ff_q_pfp_append_step_S1coefficientsentry * S ((S (pfc_index_append_step_S1coefficients)) * s1c) + (pfc_value_append_step_S1coefficients))) /\ ((exists pfc_terms_code_append_step_S1coefficientscoefficient pfc_terms_scale_append_step_S1coefficientscoefficient pfc_natural_sum_append_step_S1coefficientscoefficient. ((forall pfc_index_append_step_S1coefficientscoefficientdiagonal. (exists pfa_gap_append_step_S1coefficientscoefficientdiagonalbound. pfa_gap_append_step_S1coefficientscoefficientdiagonalbound + S (pfc_index_append_step_S1coefficientscoefficientdiagonal) = (S (pfc_index_append_step_S1coefficients))) -> exists pfc_value_append_step_S1coefficientscoefficientdiagonal. ((((exists ff_h_pfp_append_step_S1coefficientscoefficientdiagonalentry. ff_h_pfp_append_step_S1coefficientscoefficientdiagonalentry + S (pfc_value_append_step_S1coefficientscoefficientdiagonal) = S ((S (pfc_index_append_step_S1coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_S1coefficientscoefficient)) /\ exists ff_q_pfp_append_step_S1coefficientscoefficientdiagonalentry. pfc_terms_code_append_step_S1coefficientscoefficient = ff_q_pfp_append_step_S1coefficientscoefficientdiagonalentry * S ((S (pfc_index_append_step_S1coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_S1coefficientscoefficient) + (pfc_value_append_step_S1coefficientscoefficientdiagonal))) /\ ((exists pfc_complement_append_step_S1coefficientscoefficientdiagonalterm pfc_left_append_step_S1coefficientscoefficientdiagonalterm pfc_right_append_step_S1coefficientscoefficientdiagonalterm. (((pfc_index_append_step_S1coefficientscoefficientdiagonal)+pfc_complement_append_step_S1coefficientscoefficientdiagonalterm=(pfc_index_append_step_S1coefficients)) /\ ((((((exists pfa_gap_append_step_S1coefficientscoefficientdiagonaltermleftinside. pfa_gap_append_step_S1coefficientscoefficientdiagonaltermleftinside + S (pfc_index_append_step_S1coefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_append_step_S1coefficientscoefficientdiagonaltermleftentry. ff_h_pfp_append_step_S1coefficientscoefficientdiagonaltermleftentry + S (pfc_left_append_step_S1coefficientscoefficientdiagonalterm) = S ((S (pfc_index_append_step_S1coefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_append_step_S1coefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_append_step_S1coefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_append_step_S1coefficientscoefficientdiagonal)) * ac) + (pfc_left_append_step_S1coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_S1coefficientscoefficientdiagonaltermleftoutside. pfc_gap_append_step_S1coefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_append_step_S1coefficientscoefficientdiagonal)) /\ (((pfc_left_append_step_S1coefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_append_step_S1coefficientscoefficientdiagonaltermrightinside. pfa_gap_append_step_S1coefficientscoefficientdiagonaltermrightinside + S (pfc_complement_append_step_S1coefficientscoefficientdiagonalterm) = (K1)) /\ ((((exists ff_h_pfp_append_step_S1coefficientscoefficientdiagonaltermrightentry. ff_h_pfp_append_step_S1coefficientscoefficientdiagonaltermrightentry + S (pfc_right_append_step_S1coefficientscoefficientdiagonalterm) = S ((S (pfc_complement_append_step_S1coefficientscoefficientdiagonalterm)) * q1c)) /\ exists ff_q_pfp_append_step_S1coefficientscoefficientdiagonaltermrightentry. q1b = ff_q_pfp_append_step_S1coefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_append_step_S1coefficientscoefficientdiagonalterm)) * q1c) + (pfc_right_append_step_S1coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_S1coefficientscoefficientdiagonaltermrightoutside. pfc_gap_append_step_S1coefficientscoefficientdiagonaltermrightoutside+(K1)=(pfc_complement_append_step_S1coefficientscoefficientdiagonalterm)) /\ (((pfc_right_append_step_S1coefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_append_step_S1coefficientscoefficientdiagonal)=pfc_left_append_step_S1coefficientscoefficientdiagonalterm*pfc_right_append_step_S1coefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_append_step_S1coefficientscoefficientsum fs_v_pfc_append_step_S1coefficientscoefficientsum. ((((exists fs_h_pfc_append_step_S1coefficientscoefficientsum_body_start. fs_h_pfc_append_step_S1coefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_append_step_S1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_S1coefficientscoefficientsum_body_start. fs_u_pfc_append_step_S1coefficientscoefficientsum = fs_q_pfc_append_step_S1coefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_append_step_S1coefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_append_step_S1coefficientscoefficientsum_body_terminal. fs_h_pfc_append_step_S1coefficientscoefficientsum_body_terminal + S (pfc_natural_sum_append_step_S1coefficientscoefficient) = S ((S (S (pfc_index_append_step_S1coefficients))) * fs_v_pfc_append_step_S1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_S1coefficientscoefficientsum_body_terminal. fs_u_pfc_append_step_S1coefficientscoefficientsum = fs_q_pfc_append_step_S1coefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_append_step_S1coefficients))) * fs_v_pfc_append_step_S1coefficientscoefficientsum) + (pfc_natural_sum_append_step_S1coefficientscoefficient))) /\ forall fs_i_pfc_append_step_S1coefficientscoefficientsum_body_steps. (exists fs_lt_pfc_append_step_S1coefficientscoefficientsum_body_steps_bound. fs_lt_pfc_append_step_S1coefficientscoefficientsum_body_steps_bound + S fs_i_pfc_append_step_S1coefficientscoefficientsum_body_steps = S (pfc_index_append_step_S1coefficients)) -> exists fs_a_pfc_append_step_S1coefficientscoefficientsum_body_steps fs_r_pfc_append_step_S1coefficientscoefficientsum_body_steps fs_s_pfc_append_step_S1coefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_append_step_S1coefficientscoefficientsum_body_steps_summand. fs_h_pfc_append_step_S1coefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_append_step_S1coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_S1coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_S1coefficientscoefficient)) /\ exists fs_q_pfc_append_step_S1coefficientscoefficientsum_body_steps_summand. pfc_terms_code_append_step_S1coefficientscoefficient = fs_q_pfc_append_step_S1coefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_append_step_S1coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_S1coefficientscoefficient) + (fs_a_pfc_append_step_S1coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_S1coefficientscoefficientsum_body_steps_partial. fs_h_pfc_append_step_S1coefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_append_step_S1coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_S1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_S1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_S1coefficientscoefficientsum_body_steps_partial. fs_u_pfc_append_step_S1coefficientscoefficientsum = fs_q_pfc_append_step_S1coefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_append_step_S1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_S1coefficientscoefficientsum) + (fs_r_pfc_append_step_S1coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_S1coefficientscoefficientsum_body_steps_successor. fs_h_pfc_append_step_S1coefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_append_step_S1coefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_append_step_S1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_S1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_S1coefficientscoefficientsum_body_steps_successor. fs_u_pfc_append_step_S1coefficientscoefficientsum = fs_q_pfc_append_step_S1coefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_append_step_S1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_S1coefficientscoefficientsum) + (fs_s_pfc_append_step_S1coefficientscoefficientsum_body_steps))) /\ fs_s_pfc_append_step_S1coefficientscoefficientsum_body_steps = fs_r_pfc_append_step_S1coefficientscoefficientsum_body_steps + fs_a_pfc_append_step_S1coefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_append_step_S1coefficientscoefficientresiduebound. pfa_gap_append_step_S1coefficientscoefficientresiduebound + S (pfc_value_append_step_S1coefficients) = (p)) /\ ((exists pfa_offset_left_append_step_S1coefficientscoefficientresiduecongruence pfa_offset_right_append_step_S1coefficientscoefficientresiduecongruence. (pfc_natural_sum_append_step_S1coefficientscoefficient) + (p) * pfa_offset_left_append_step_S1coefficientscoefficientresiduecongruence = (pfc_value_append_step_S1coefficients) + (p) * pfa_offset_right_append_step_S1coefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfrep_power_append_step_result pfrep_left_append_step_result pfrep_right_append_step_result. ((exists pfrep_position_append_step_resultfirst. ((pfrep_position_append_step_resultfirst+S (pfrep_power_append_step_result)=(U1)) /\ ((((exists ff_h_pfp_append_step_resultfirstentry. ff_h_pfp_append_step_resultfirstentry + S (pfrep_left_append_step_result) = S ((S (pfrep_position_append_step_resultfirst)) * r1c)) /\ exists ff_q_pfp_append_step_resultfirstentry. r1b = ff_q_pfp_append_step_resultfirstentry * S ((S (pfrep_position_append_step_resultfirst)) * r1c) + (pfrep_left_append_step_result)))))) \/ (((exists pfrep_gap_append_step_resultfirstoutside. pfrep_gap_append_step_resultfirstoutside+(U1)=(pfrep_power_append_step_result)) /\ (((pfrep_left_append_step_result)=0))))) -> ((exists pfrep_position_append_step_resultsecond. ((pfrep_position_append_step_resultsecond+S (pfrep_power_append_step_result)=(V1)) /\ ((((exists ff_h_pfp_append_step_resultsecondentry. ff_h_pfp_append_step_resultsecondentry + S (pfrep_right_append_step_result) = S ((S (pfrep_position_append_step_resultsecond)) * s1c)) /\ exists ff_q_pfp_append_step_resultsecondentry. s1b = ff_q_pfp_append_step_resultsecondentry * S ((S (pfrep_position_append_step_resultsecond)) * s1c) + (pfrep_right_append_step_result)))))) \/ (((exists pfrep_gap_append_step_resultsecondoutside. pfrep_gap_append_step_resultsecondoutside+(V1)=(pfrep_power_append_step_result)) /\ (((pfrep_right_append_step_result)=0))))) -> pfrep_left_append_step_result=pfrep_right_append_step_result)

Constructive proof overview

Generated structural guide

An actual formal-coefficient associativity hypothesis for one rightmost prefix extends through one genuine appended coefficient. Every old and new product is an actual proper-length convolution; the proof derives the canonical appended coefficient bound, constructs three real shift/scale/pad/add alignments and a real intermediate product, and concludes only the next formal equivalence. Empty factors are retained, no successor product-length identity is assumed, and the induction step alone is not full associativity.

The unchanged tactic script uses 14 declared prerequisites and contains 487 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 matrix_rank_bounded_prefix_value Alpha theorem; checked-use authorized le_refl Alpha theorem; checked-use authorized prime_field_polynomial_convolution_bounded Alpha theorem; checked-use authorized PG001D prime_field_polynomial_shift_scale_aligned_sum_exists prime_field_polynomial_add_bounded 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 PG0021 prime_field_polynomial_convolution_shift_scale_aligned_equivalent PG001E prime_field_polynomial_convolution_right_append_equivalent prime_field_polynomial_convolution_equivalent_congruent_right Alpha theorem; checked-use authorized prime_field_polynomial_equivalent_transitive Alpha theorem; checked-use authorized PG0022 prime_field_polynomial_shift_scale_aligned_congruent prime_field_polynomial_equivalent_symmetric Alpha theorem; checked-use authorized

Direct dependents

Formal native tactic body

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

Read the argument

Proof checkpoints

487 script commands · 68 reading checkpoints · 21 local claims

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

Named ingredients (4)

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

01Fix variables and assumptionsL1–10

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

  1. L1
    intro p
  2. L2
    intro ab
  3. L3
    intro ac
  4. L4
    intro L
  5. L5
    intro bb
  6. L6
    intro bc
  7. L7
    intro M
  8. L8
    intro pb
  9. L9
    intro pc
  10. L10
    intro N
02Fix variables and assumptionsL11–20

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

  1. L11
    intro cb
  2. L12
    intro cc
  3. L13
    intro J
  4. L14
    intro q0b
  5. L15
    intro q0c
  6. L16
    intro K0
  7. L17
    intro r0b
  8. L18
    intro r0c
  9. L19
    intro U0
  10. L20
    intro s0b
03Fix variables and assumptionsL21–30

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

  1. L21
    intro s0c
  2. L22
    intro V0
  3. L23
    intro c
  4. L24
    intro db
  5. L25
    intro dc
  6. L26
    intro q1b
  7. L27
    intro q1c
  8. L28
    intro K1
  9. L29
    intro r1b
  10. L30
    intro r1c
04Fix variables and assumptionsL31–40

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

  1. L31
    intro U1
  2. L32
    intro s1b
  3. L33
    intro s1c
  4. L34
    intro V1
  5. L35
    intro hp
  6. L36
    intro hAB
  7. L37
    intro hQ0
  8. L38
    intro hR0
  9. L39
    intro hS0
  10. L40
    intro hIH
05Fix variables and assumptionsL41–45

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

  1. L41
    intro hprefix
  2. L42
    intro hlast
  3. L43
    intro hQ1
  4. L44
    intro hR1
  5. L45
    intro hS1
06Establish hp0L46–51

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

  1. L46
    have hp0 : ~(p=0)
  2. L47
    intro hz
  3. L48
    specialize prime_nonzero (p)
  4. L49
    apply prime_nonzero
  5. L50
    exact hp
  6. L51
    exact hz
07Establish hABcopyL52–53

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

  1. L52
    have hABcopy : FpPolyProduct(p,ab,ac,L,bb,bc,M,pb,pc,N)Definitions: FpPolyProduct
  2. L53
    exact hAB
08Separate the logical casesL54–56

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

  1. L54
    cases hABcopy
  2. L55
    cases hABcopy_right
  3. L56
    cases hABcopy_right_right
09Establish hQ1copyL57–58

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

  1. L57
    have hQ1copy : FpPolyProduct(p,bb,bc,M,db,dc,S J,q1b,q1c,K1)Definitions: FpPolyProduct
  2. L58
    exact hQ1
10Separate the logical casesL59–61

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

  1. L59
    cases hQ1copy
  2. L60
    cases hQ1copy_right
  3. L61
    cases hQ1copy_right_right
11Establish hcL62–71

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix rank bounded prefix value.

  1. L62
    have hc : exists pfa_gap_append_step_scalar_bound. pfa_gap_append_step_scalar_bound + S (c) = (p)
  2. L63
    specialize matrix_rank_bounded_prefix_value (db)
  3. L64
    specialize matrix_rank_bounded_prefix_value (dc)
  4. L65
    specialize matrix_rank_bounded_prefix_value (S J)
  5. L66
    specialize matrix_rank_bounded_prefix_value (p)
  6. L67
    specialize matrix_rank_bounded_prefix_value (J)
  7. L68
    specialize matrix_rank_bounded_prefix_value (c)
  8. L69
    apply matrix_rank_bounded_prefix_value
  9. L70
    exact hQ1copy_right_left
  10. L71
    specialize le_refl (S J)
12Use earlier factsL72–73

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

  1. L72
    apply le_refl
  2. L73
    exact hlast
13Establish hPboundL74–83

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

  1. L74
    have hPbound : BetaPrefixInto(pb,pc,N,p)Definitions: BetaPrefixInto
  2. L75
    specialize prime_field_polynomial_convolution_bounded (p)
  3. L76
    specialize prime_field_polynomial_convolution_bounded (ab)
  4. L77
    specialize prime_field_polynomial_convolution_bounded (ac)
  5. L78
    specialize prime_field_polynomial_convolution_bounded (L)
  6. L79
    specialize prime_field_polynomial_convolution_bounded (bb)
  7. L80
    specialize prime_field_polynomial_convolution_bounded (bc)
  8. L81
    specialize prime_field_polynomial_convolution_bounded (M)
  9. L82
    specialize prime_field_polynomial_convolution_bounded (pb)
  10. L83
    specialize prime_field_polynomial_convolution_bounded (pc)
14Use earlier factsL84–86

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

  1. L84
    specialize prime_field_polynomial_convolution_bounded (N)
  2. L85
    apply prime_field_polynomial_convolution_bounded
  3. L86
    exact hAB
15Establish hQ0boundL87–96

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

  1. L87
    have hQ0bound : BetaPrefixInto(q0b,q0c,K0,p)Definitions: BetaPrefixInto
  2. L88
    specialize prime_field_polynomial_convolution_bounded (p)
  3. L89
    specialize prime_field_polynomial_convolution_bounded (bb)
  4. L90
    specialize prime_field_polynomial_convolution_bounded (bc)
  5. L91
    specialize prime_field_polynomial_convolution_bounded (M)
  6. L92
    specialize prime_field_polynomial_convolution_bounded (cb)
  7. L93
    specialize prime_field_polynomial_convolution_bounded (cc)
  8. L94
    specialize prime_field_polynomial_convolution_bounded (J)
  9. L95
    specialize prime_field_polynomial_convolution_bounded (q0b)
  10. L96
    specialize prime_field_polynomial_convolution_bounded (q0c)
16Use earlier factsL97–99

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

  1. L97
    specialize prime_field_polynomial_convolution_bounded (K0)
  2. L98
    apply prime_field_polynomial_convolution_bounded
  3. L99
    exact hQ0
17Establish hR0boundL100–109

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

  1. L100
    have hR0bound : BetaPrefixInto(r0b,r0c,U0,p)Definitions: BetaPrefixInto
  2. L101
    specialize prime_field_polynomial_convolution_bounded (p)
  3. L102
    specialize prime_field_polynomial_convolution_bounded (pb)
  4. L103
    specialize prime_field_polynomial_convolution_bounded (pc)
  5. L104
    specialize prime_field_polynomial_convolution_bounded (N)
  6. L105
    specialize prime_field_polynomial_convolution_bounded (cb)
  7. L106
    specialize prime_field_polynomial_convolution_bounded (cc)
  8. L107
    specialize prime_field_polynomial_convolution_bounded (J)
  9. L108
    specialize prime_field_polynomial_convolution_bounded (r0b)
  10. L109
    specialize prime_field_polynomial_convolution_bounded (r0c)
18Use earlier factsL110–112

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

  1. L110
    specialize prime_field_polynomial_convolution_bounded (U0)
  2. L111
    apply prime_field_polynomial_convolution_bounded
  3. L112
    exact hR0
19Establish hS0boundL113–122

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

  1. L113
    have hS0bound : BetaPrefixInto(s0b,s0c,V0,p)Definitions: BetaPrefixInto
  2. L114
    specialize prime_field_polynomial_convolution_bounded (p)
  3. L115
    specialize prime_field_polynomial_convolution_bounded (ab)
  4. L116
    specialize prime_field_polynomial_convolution_bounded (ac)
  5. L117
    specialize prime_field_polynomial_convolution_bounded (L)
  6. L118
    specialize prime_field_polynomial_convolution_bounded (q0b)
  7. L119
    specialize prime_field_polynomial_convolution_bounded (q0c)
  8. L120
    specialize prime_field_polynomial_convolution_bounded (K0)
  9. L121
    specialize prime_field_polynomial_convolution_bounded (s0b)
  10. L122
    specialize prime_field_polynomial_convolution_bounded (s0c)
20Use earlier factsL123–125

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

  1. L123
    specialize prime_field_polynomial_convolution_bounded (V0)
  2. L124
    apply prime_field_polynomial_convolution_bounded
  3. L125
    exact hS0
21Establish hYalignL126–135

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial shift scale aligned sum exists.

  1. L126
    have hYalign : ∃ ub. ∃ uc. ∃ vb. ∃ vc. ∃ UPb. ∃ UPc. ∃ VPb. ∃ VPc. ∃ zb. ∃ zc. PolynomialShift(s0b,s0c,V0,ub,uc) ∧ (FpPolyScale(p,c,pb,pc,vb,vc,N) ∧ (PolynomialLeftPad(ub,uc,S V0,N,UPb,UPc) ∧ (PolynomialLeftPad(vb,vc,N,S V0,VPb,VPc) ∧ FpPolyAdd(p,UPb,UPc,VPb,VPc,zb,zc,N + S V0))))Definitions: FpPolyAddFpPolyScalePolynomialLeftPadPolynomialShift
  2. L127
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (p)
  3. L128
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (c)
  4. L129
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (pb)
  5. L130
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (pc)
  6. L131
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (N)
  7. L132
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (s0b)
  8. L133
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (s0c)
  9. L134
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (V0)
  10. L135
    apply prime_field_polynomial_shift_scale_aligned_sum_exists
22Use earlier factsL136–139

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

  1. L136
    exact hp
  2. L137
    exact hc
  3. L138
    exact hPbound
  4. L139
    exact hS0bound
23Separate the logical casesL140–149

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

  1. L140
    cases hYalign
  2. L141
    cases hYalign_witness
  3. L142
    cases hYalign_witness_witness
  4. L143
    cases hYalign_witness_witness_witness
  5. L144
    cases hYalign_witness_witness_witness_witness
  6. L145
    cases hYalign_witness_witness_witness_witness_witness
  7. L146
    cases hYalign_witness_witness_witness_witness_witness_witness
  8. L147
    cases hYalign_witness_witness_witness_witness_witness_witness_witness
  9. L148
    cases hYalign_witness_witness_witness_witness_witness_witness_witness_witness
  10. L149
    cases hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness
24Separate the logical casesL150–153

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

  1. L150
    cases hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness
  2. L151
    cases hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right
  3. L152
    cases hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right
  4. L153
    cases hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right
25Establish hS_totalL154–154

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

  1. L154
    have hS_total : PolynomialEquivalent(s1b,s1c,V1,x8,x9,N + S V0)Definitions: PolynomialEquivalent
26Establish hZalignL155–164

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial shift scale aligned sum exists.

  1. L155
    have hZalign : ∃ ub. ∃ uc. ∃ vb. ∃ vc. ∃ UPb. ∃ UPc. ∃ VPb. ∃ VPc. ∃ zb. ∃ zc. PolynomialShift(q0b,q0c,K0,ub,uc) ∧ (FpPolyScale(p,c,bb,bc,vb,vc,M) ∧ (PolynomialLeftPad(ub,uc,S K0,M,UPb,UPc) ∧ (PolynomialLeftPad(vb,vc,M,S K0,VPb,VPc) ∧ FpPolyAdd(p,UPb,UPc,VPb,VPc,zb,zc,M + S K0))))Definitions: FpPolyAddFpPolyScalePolynomialLeftPadPolynomialShift
  2. L156
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (p)
  3. L157
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (c)
  4. L158
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (bb)
  5. L159
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (bc)
  6. L160
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (M)
  7. L161
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (q0b)
  8. L162
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (q0c)
  9. L163
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (K0)
  10. L164
    apply prime_field_polynomial_shift_scale_aligned_sum_exists
27Use earlier factsL165–168

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

  1. L165
    exact hp
  2. L166
    exact hc
  3. L167
    exact hABcopy_right_left
  4. L168
    exact hQ0bound
28Separate the logical casesL169–178

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

  1. L169
    cases hZalign
  2. L170
    cases hZalign_witness
  3. L171
    cases hZalign_witness_witness
  4. L172
    cases hZalign_witness_witness_witness
  5. L173
    cases hZalign_witness_witness_witness_witness
  6. L174
    cases hZalign_witness_witness_witness_witness_witness
  7. L175
    cases hZalign_witness_witness_witness_witness_witness_witness
  8. L176
    cases hZalign_witness_witness_witness_witness_witness_witness_witness
  9. L177
    cases hZalign_witness_witness_witness_witness_witness_witness_witness_witness
  10. L178
    cases hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness
29Separate the logical casesL179–182

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

  1. L179
    cases hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness
  2. L180
    cases hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right
  3. L181
    cases hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right
  4. L182
    cases hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right
30Establish hZboundsL183–192

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial add bounded.

  1. L183
    have hZbounds : BetaPrefixInto(x14,x15,M + S K0,p) ∧ (BetaPrefixInto(x16,x17,M + S K0,p) ∧ BetaPrefixInto(x18,x19,M + S K0,p))Definitions: BetaPrefixInto
  2. L184
    specialize prime_field_polynomial_add_bounded (p)
  3. L185
    specialize prime_field_polynomial_add_bounded (x14)
  4. L186
    specialize prime_field_polynomial_add_bounded (x15)
  5. L187
    specialize prime_field_polynomial_add_bounded (x16)
  6. L188
    specialize prime_field_polynomial_add_bounded (x17)
  7. L189
    specialize prime_field_polynomial_add_bounded (x18)
  8. L190
    specialize prime_field_polynomial_add_bounded (x19)
  9. L191
    specialize prime_field_polynomial_add_bounded (M+S K0)
  10. L192
    apply prime_field_polynomial_add_bounded
31Use earlier factsL193–193

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

  1. L193
    exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
32Separate the logical casesL194–195

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

  1. L194
    cases hZbounds
  2. L195
    cases hZbounds_right
33Establish hZlengthL196–199

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

  1. L196
    have hZlength : exists W. (((((L)=0 \/ (M+S K0)=0) /\ (((W)=0)))) \/ (((~((L)=0)) /\ (((~((M+S K0)=0)) /\ (((L)+(M+S K0)=S (W))))))))
  2. L197
    specialize polynomial_product_length_exists (L)
  3. L198
    specialize polynomial_product_length_exists (M+S K0)
  4. L199
    apply polynomial_product_length_exists
34Separate the logical casesL200–200

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

  1. L200
    cases hZlength
35Establish hAZL201–210

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.

  1. L201
    have hAZ : ∃ mb. ∃ mc. FpPolyProduct(p,ab,ac,L,x18,x19,M + S K0,mb,mc,x20)Definitions: FpPolyProduct
  2. L202
    specialize prime_field_polynomial_convolution_at_length_exists (p)
  3. L203
    specialize prime_field_polynomial_convolution_at_length_exists (ab)
  4. L204
    specialize prime_field_polynomial_convolution_at_length_exists (ac)
  5. L205
    specialize prime_field_polynomial_convolution_at_length_exists (L)
  6. L206
    specialize prime_field_polynomial_convolution_at_length_exists (x18)
  7. L207
    specialize prime_field_polynomial_convolution_at_length_exists (x19)
  8. L208
    specialize prime_field_polynomial_convolution_at_length_exists (M+S K0)
  9. L209
    specialize prime_field_polynomial_convolution_at_length_exists (x20)
  10. L210
    apply prime_field_polynomial_convolution_at_length_exists
36Use earlier factsL211–214

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

  1. L211
    exact hp0
  2. L212
    exact hABcopy_left
  3. L213
    exact hZbounds_right_right
  4. L214
    exact hZlength_witness
37Separate the logical casesL215–216

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

  1. L215
    cases hAZ
  2. L216
    cases hAZ_witness
38Establish hhelper_equalL217–226

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

  1. L217
    have hhelper_equal : PolynomialEquivalent(x21,x22,x20,x8,x9,N + S V0)Definitions: PolynomialEquivalent
  2. L218
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (p)
  3. L219
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (c)
  4. L220
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (ab)
  5. L221
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (ac)
  6. L222
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (L)
  7. L223
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (bb)
  8. L224
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (bc)
  9. L225
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (M)
  10. L226
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (pb)
39Use earlier factsL227–236

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

  1. L227
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (pc)
  2. L228
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (N)
  3. L229
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (q0b)
  4. L230
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (q0c)
  5. L231
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (K0)
  6. L232
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (s0b)
  7. L233
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (s0c)
  8. L234
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (V0)
  9. L235
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x10)
  10. L236
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x11)
40Use earlier factsL237–246

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

  1. L237
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x12)
  2. L238
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x13)
  3. L239
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x14)
  4. L240
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x15)
  5. L241
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x16)
  6. L242
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x17)
  7. L243
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x18)
  8. L244
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x19)
  9. L245
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x21)
  10. L246
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x22)
41Use earlier factsL247–256

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

  1. L247
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x20)
  2. L248
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x)
  3. L249
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x1)
  4. L250
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x2)
  5. L251
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x3)
  6. L252
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x4)
  7. L253
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x5)
  8. L254
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x6)
  9. L255
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x7)
  10. L256
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x8)
42Use earlier factsL257–266

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

  1. L257
    specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x9)
  2. L258
    apply prime_field_polynomial_convolution_shift_scale_aligned_equivalent
  3. L259
    exact hp
  4. L260
    exact hAB
  5. L261
    exact hS0
  6. L262
    exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left
  7. L263
    exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  8. L264
    exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  9. L265
    exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  10. L266
    exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
43Use earlier factsL267–272

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

  1. L267
    exact hAZ_witness_witness
  2. L268
    exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left
  3. L269
    exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  4. L270
    exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  5. L271
    exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  6. L272
    exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
44Establish hQ_appendL273–282

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

  1. L273
    have hQ_append : PolynomialEquivalent(q1b,q1c,K1,x18,x19,M + S K0)Definitions: PolynomialEquivalent
  2. L274
    specialize prime_field_polynomial_convolution_right_append_equivalent (p)
  3. L275
    specialize prime_field_polynomial_convolution_right_append_equivalent (bb)
  4. L276
    specialize prime_field_polynomial_convolution_right_append_equivalent (bc)
  5. L277
    specialize prime_field_polynomial_convolution_right_append_equivalent (M)
  6. L278
    specialize prime_field_polynomial_convolution_right_append_equivalent (cb)
  7. L279
    specialize prime_field_polynomial_convolution_right_append_equivalent (cc)
  8. L280
    specialize prime_field_polynomial_convolution_right_append_equivalent (J)
  9. L281
    specialize prime_field_polynomial_convolution_right_append_equivalent (c)
  10. L282
    specialize prime_field_polynomial_convolution_right_append_equivalent (db)
45Use earlier factsL283–292

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

  1. L283
    specialize prime_field_polynomial_convolution_right_append_equivalent (dc)
  2. L284
    specialize prime_field_polynomial_convolution_right_append_equivalent (q0b)
  3. L285
    specialize prime_field_polynomial_convolution_right_append_equivalent (q0c)
  4. L286
    specialize prime_field_polynomial_convolution_right_append_equivalent (K0)
  5. L287
    specialize prime_field_polynomial_convolution_right_append_equivalent (q1b)
  6. L288
    specialize prime_field_polynomial_convolution_right_append_equivalent (q1c)
  7. L289
    specialize prime_field_polynomial_convolution_right_append_equivalent (K1)
  8. L290
    specialize prime_field_polynomial_convolution_right_append_equivalent (x10)
  9. L291
    specialize prime_field_polynomial_convolution_right_append_equivalent (x11)
  10. L292
    specialize prime_field_polynomial_convolution_right_append_equivalent (x12)
46Use earlier factsL293–302

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

  1. L293
    specialize prime_field_polynomial_convolution_right_append_equivalent (x13)
  2. L294
    specialize prime_field_polynomial_convolution_right_append_equivalent (x14)
  3. L295
    specialize prime_field_polynomial_convolution_right_append_equivalent (x15)
  4. L296
    specialize prime_field_polynomial_convolution_right_append_equivalent (x16)
  5. L297
    specialize prime_field_polynomial_convolution_right_append_equivalent (x17)
  6. L298
    specialize prime_field_polynomial_convolution_right_append_equivalent (x18)
  7. L299
    specialize prime_field_polynomial_convolution_right_append_equivalent (x19)
  8. L300
    apply prime_field_polynomial_convolution_right_append_equivalent
  9. L301
    exact hp
  10. L302
    exact hprefix
47Use earlier factsL303–310

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

  1. L303
    exact hlast
  2. L304
    exact hQ0
  3. L305
    exact hQ1
  4. L306
    exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left
  5. L307
    exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  6. L308
    exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  7. L309
    exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  8. L310
    exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
48Establish hS_transportL311–320

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

  1. L311
    have hS_transport : PolynomialEquivalent(s1b,s1c,V1,x21,x22,x20)Definitions: PolynomialEquivalent
  2. L312
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (p)
  3. L313
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (ab)
  4. L314
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (ac)
  5. L315
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (L)
  6. L316
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (q1b)
  7. L317
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (q1c)
  8. L318
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (K1)
  9. L319
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (s1b)
  10. L320
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (s1c)
49Use earlier factsL321–330

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

  1. L321
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (V1)
  2. L322
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x18)
  3. L323
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x19)
  4. L324
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (M+S K0)
  5. L325
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x21)
  6. L326
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x22)
  7. L327
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x20)
  8. L328
    apply prime_field_polynomial_convolution_equivalent_congruent_right
  9. L329
    exact hp0
  10. L330
    exact hQ_append
50Use earlier factsL331–340

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

  1. L331
    exact hS1
  2. L332
    exact hAZ_witness_witness
  3. L333
    specialize prime_field_polynomial_equivalent_transitive (s1b)
  4. L334
    specialize prime_field_polynomial_equivalent_transitive (s1c)
  5. L335
    specialize prime_field_polynomial_equivalent_transitive (V1)
  6. L336
    specialize prime_field_polynomial_equivalent_transitive (x21)
  7. L337
    specialize prime_field_polynomial_equivalent_transitive (x22)
  8. L338
    specialize prime_field_polynomial_equivalent_transitive (x20)
  9. L339
    specialize prime_field_polynomial_equivalent_transitive (x8)
  10. L340
    specialize prime_field_polynomial_equivalent_transitive (x9)
51Use earlier factsL341–344

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

  1. L341
    specialize prime_field_polynomial_equivalent_transitive (N+S V0)
  2. L342
    apply prime_field_polynomial_equivalent_transitive
  3. L343
    exact hS_transport
  4. L344
    exact hhelper_equal
52Establish hR_totalL345–345

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

  1. L345
    have hR_total : PolynomialEquivalent(r1b,r1c,U1,x8,x9,N + S V0)Definitions: PolynomialEquivalent
53Establish hY0alignL346–355

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial shift scale aligned sum exists.

  1. L346
    have hY0align : ∃ ub. ∃ uc. ∃ vb. ∃ vc. ∃ UPb. ∃ UPc. ∃ VPb. ∃ VPc. ∃ zb. ∃ zc. PolynomialShift(r0b,r0c,U0,ub,uc) ∧ (FpPolyScale(p,c,pb,pc,vb,vc,N) ∧ (PolynomialLeftPad(ub,uc,S U0,N,UPb,UPc) ∧ (PolynomialLeftPad(vb,vc,N,S U0,VPb,VPc) ∧ FpPolyAdd(p,UPb,UPc,VPb,VPc,zb,zc,N + S U0))))Definitions: FpPolyAddFpPolyScalePolynomialLeftPadPolynomialShift
  2. L347
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (p)
  3. L348
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (c)
  4. L349
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (pb)
  5. L350
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (pc)
  6. L351
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (N)
  7. L352
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (r0b)
  8. L353
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (r0c)
  9. L354
    specialize prime_field_polynomial_shift_scale_aligned_sum_exists (U0)
  10. L355
    apply prime_field_polynomial_shift_scale_aligned_sum_exists
54Use earlier factsL356–359

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

  1. L356
    exact hp
  2. L357
    exact hc
  3. L358
    exact hPbound
  4. L359
    exact hR0bound
55Separate the logical casesL360–369

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

  1. L360
    cases hY0align
  2. L361
    cases hY0align_witness
  3. L362
    cases hY0align_witness_witness
  4. L363
    cases hY0align_witness_witness_witness
  5. L364
    cases hY0align_witness_witness_witness_witness
  6. L365
    cases hY0align_witness_witness_witness_witness_witness
  7. L366
    cases hY0align_witness_witness_witness_witness_witness_witness
  8. L367
    cases hY0align_witness_witness_witness_witness_witness_witness_witness
  9. L368
    cases hY0align_witness_witness_witness_witness_witness_witness_witness_witness
  10. L369
    cases hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness
56Separate the logical casesL370–373

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

  1. L370
    cases hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness
  2. L371
    cases hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right
  3. L372
    cases hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right
  4. L373
    cases hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right
57Establish hR_appendL374–383

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

  1. L374
    have hR_append : PolynomialEquivalent(r1b,r1c,U1,x18,x19,N + S U0)Definitions: PolynomialEquivalent
  2. L375
    specialize prime_field_polynomial_convolution_right_append_equivalent (p)
  3. L376
    specialize prime_field_polynomial_convolution_right_append_equivalent (pb)
  4. L377
    specialize prime_field_polynomial_convolution_right_append_equivalent (pc)
  5. L378
    specialize prime_field_polynomial_convolution_right_append_equivalent (N)
  6. L379
    specialize prime_field_polynomial_convolution_right_append_equivalent (cb)
  7. L380
    specialize prime_field_polynomial_convolution_right_append_equivalent (cc)
  8. L381
    specialize prime_field_polynomial_convolution_right_append_equivalent (J)
  9. L382
    specialize prime_field_polynomial_convolution_right_append_equivalent (c)
  10. L383
    specialize prime_field_polynomial_convolution_right_append_equivalent (db)
58Use earlier factsL384–393

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

  1. L384
    specialize prime_field_polynomial_convolution_right_append_equivalent (dc)
  2. L385
    specialize prime_field_polynomial_convolution_right_append_equivalent (r0b)
  3. L386
    specialize prime_field_polynomial_convolution_right_append_equivalent (r0c)
  4. L387
    specialize prime_field_polynomial_convolution_right_append_equivalent (U0)
  5. L388
    specialize prime_field_polynomial_convolution_right_append_equivalent (r1b)
  6. L389
    specialize prime_field_polynomial_convolution_right_append_equivalent (r1c)
  7. L390
    specialize prime_field_polynomial_convolution_right_append_equivalent (U1)
  8. L391
    specialize prime_field_polynomial_convolution_right_append_equivalent (x10)
  9. L392
    specialize prime_field_polynomial_convolution_right_append_equivalent (x11)
  10. L393
    specialize prime_field_polynomial_convolution_right_append_equivalent (x12)
59Use earlier factsL394–403

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

  1. L394
    specialize prime_field_polynomial_convolution_right_append_equivalent (x13)
  2. L395
    specialize prime_field_polynomial_convolution_right_append_equivalent (x14)
  3. L396
    specialize prime_field_polynomial_convolution_right_append_equivalent (x15)
  4. L397
    specialize prime_field_polynomial_convolution_right_append_equivalent (x16)
  5. L398
    specialize prime_field_polynomial_convolution_right_append_equivalent (x17)
  6. L399
    specialize prime_field_polynomial_convolution_right_append_equivalent (x18)
  7. L400
    specialize prime_field_polynomial_convolution_right_append_equivalent (x19)
  8. L401
    apply prime_field_polynomial_convolution_right_append_equivalent
  9. L402
    exact hp
  10. L403
    exact hprefix
60Use earlier factsL404–411

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

  1. L404
    exact hlast
  2. L405
    exact hR0
  3. L406
    exact hR1
  4. L407
    exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left
  5. L408
    exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  6. L409
    exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  7. L410
    exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  8. L411
    exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
61Establish haligned_equalL412–421

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

  1. L412
    have haligned_equal : PolynomialEquivalent(x18,x19,N + S U0,x8,x9,N + S V0)Definitions: PolynomialEquivalent
  2. L413
    specialize prime_field_polynomial_shift_scale_aligned_congruent (p)
  3. L414
    specialize prime_field_polynomial_shift_scale_aligned_congruent (c)
  4. L415
    specialize prime_field_polynomial_shift_scale_aligned_congruent (pb)
  5. L416
    specialize prime_field_polynomial_shift_scale_aligned_congruent (pc)
  6. L417
    specialize prime_field_polynomial_shift_scale_aligned_congruent (N)
  7. L418
    specialize prime_field_polynomial_shift_scale_aligned_congruent (r0b)
  8. L419
    specialize prime_field_polynomial_shift_scale_aligned_congruent (r0c)
  9. L420
    specialize prime_field_polynomial_shift_scale_aligned_congruent (U0)
  10. L421
    specialize prime_field_polynomial_shift_scale_aligned_congruent (s0b)
62Use earlier factsL422–431

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

  1. L422
    specialize prime_field_polynomial_shift_scale_aligned_congruent (s0c)
  2. L423
    specialize prime_field_polynomial_shift_scale_aligned_congruent (V0)
  3. L424
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x10)
  4. L425
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x11)
  5. L426
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x12)
  6. L427
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x13)
  7. L428
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x14)
  8. L429
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x15)
  9. L430
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x16)
  10. L431
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x17)
63Use earlier factsL432–441

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

  1. L432
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x18)
  2. L433
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x19)
  3. L434
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x)
  4. L435
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x1)
  5. L436
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x2)
  6. L437
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x3)
  7. L438
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x4)
  8. L439
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x5)
  9. L440
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x6)
  10. L441
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x7)
64Use earlier factsL442–451

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

  1. L442
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x8)
  2. L443
    specialize prime_field_polynomial_shift_scale_aligned_congruent (x9)
  3. L444
    apply prime_field_polynomial_shift_scale_aligned_congruent
  4. L445
    exact hp
  5. L446
    exact hIH
  6. L447
    exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left
  7. L448
    exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  8. L449
    exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  9. L450
    exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  10. L451
    exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
65Use earlier factsL452–461

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

  1. L452
    exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left
  2. L453
    exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  3. L454
    exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  4. L455
    exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  5. L456
    exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  6. L457
    specialize prime_field_polynomial_equivalent_transitive (r1b)
  7. L458
    specialize prime_field_polynomial_equivalent_transitive (r1c)
  8. L459
    specialize prime_field_polynomial_equivalent_transitive (U1)
  9. L460
    specialize prime_field_polynomial_equivalent_transitive (x18)
  10. L461
    specialize prime_field_polynomial_equivalent_transitive (x19)
66Use earlier factsL462–471

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

  1. L462
    specialize prime_field_polynomial_equivalent_transitive (N+S U0)
  2. L463
    specialize prime_field_polynomial_equivalent_transitive (x8)
  3. L464
    specialize prime_field_polynomial_equivalent_transitive (x9)
  4. L465
    specialize prime_field_polynomial_equivalent_transitive (N+S V0)
  5. L466
    apply prime_field_polynomial_equivalent_transitive
  6. L467
    exact hR_append
  7. L468
    exact haligned_equal
  8. L469
    specialize prime_field_polynomial_equivalent_transitive (r1b)
  9. L470
    specialize prime_field_polynomial_equivalent_transitive (r1c)
  10. L471
    specialize prime_field_polynomial_equivalent_transitive (U1)
67Use earlier factsL472–481

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

  1. L472
    specialize prime_field_polynomial_equivalent_transitive (x8)
  2. L473
    specialize prime_field_polynomial_equivalent_transitive (x9)
  3. L474
    specialize prime_field_polynomial_equivalent_transitive (N+S V0)
  4. L475
    specialize prime_field_polynomial_equivalent_transitive (s1b)
  5. L476
    specialize prime_field_polynomial_equivalent_transitive (s1c)
  6. L477
    specialize prime_field_polynomial_equivalent_transitive (V1)
  7. L478
    apply prime_field_polynomial_equivalent_transitive
  8. L479
    exact hR_total
  9. L480
    specialize prime_field_polynomial_equivalent_symmetric (s1b)
  10. L481
    specialize prime_field_polynomial_equivalent_symmetric (s1c)
68Use earlier factsL482–487

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

  1. L482
    specialize prime_field_polynomial_equivalent_symmetric (V1)
  2. L483
    specialize prime_field_polynomial_equivalent_symmetric (x8)
  3. L484
    specialize prime_field_polynomial_equivalent_symmetric (x9)
  4. L485
    specialize prime_field_polynomial_equivalent_symmetric (N+S V0)
  5. L486
    apply prime_field_polynomial_equivalent_symmetric
  6. L487
    exact hS_total

Library-wide reading audit

Original exact command ledger · 487 lines
  1. 0001intro p
  2. 0002intro ab
  3. 0003intro ac
  4. 0004intro L
  5. 0005intro bb
  6. 0006intro bc
  7. 0007intro M
  8. 0008intro pb
  9. 0009intro pc
  10. 0010intro N
  11. 0011intro cb
  12. 0012intro cc
  13. 0013intro J
  14. 0014intro q0b
  15. 0015intro q0c
  16. 0016intro K0
  17. 0017intro r0b
  18. 0018intro r0c
  19. 0019intro U0
  20. 0020intro s0b
  21. 0021intro s0c
  22. 0022intro V0
  23. 0023intro c
  24. 0024intro db
  25. 0025intro dc
  26. 0026intro q1b
  27. 0027intro q1c
  28. 0028intro K1
  29. 0029intro r1b
  30. 0030intro r1c
  31. 0031intro U1
  32. 0032intro s1b
  33. 0033intro s1c
  34. 0034intro V1
  35. 0035intro hp
  36. 0036intro hAB
  37. 0037intro hQ0
  38. 0038intro hR0
  39. 0039intro hS0
  40. 0040intro hIH
  41. 0041intro hprefix
  42. 0042intro hlast
  43. 0043intro hQ1
  44. 0044intro hR1
  45. 0045intro hS1
  46. 0046have hp0 : ~(p=0)
  47. 0047intro hz
  48. 0048specialize prime_nonzero (p)
  49. 0049apply prime_nonzero
  50. 0050exact hp
  51. 0051exact hz
  52. 0052have hABcopy : ((forall fom_index_pfp_append_step_ABleft. (exists fom_gap_pfp_append_step_ABleft_index_bound. fom_gap_pfp_append_step_ABleft_index_bound + S (fom_index_pfp_append_step_ABleft) = L) -> exists fom_value_pfp_append_step_ABleft. ((((exists fom_beta_height_pfp_append_step_ABleft_entry. fom_beta_height_pfp_append_step_ABleft_entry + S (fom_value_pfp_append_step_ABleft) = S ((S (fom_index_pfp_append_step_ABleft)) * ac)) /\ exists fom_beta_quotient_pfp_append_step_ABleft_entry. ab = fom_beta_quotient_pfp_append_step_ABleft_entry * S ((S (fom_index_pfp_append_step_ABleft)) * ac) + (fom_value_pfp_append_step_ABleft))) /\ (exists fom_gap_pfp_append_step_ABleft_value_bound. fom_gap_pfp_append_step_ABleft_value_bound + S (fom_value_pfp_append_step_ABleft) = p))) /\ (((forall fom_index_pfp_append_step_ABright. (exists fom_gap_pfp_append_step_ABright_index_bound. fom_gap_pfp_append_step_ABright_index_bound + S (fom_index_pfp_append_step_ABright) = M) -> exists fom_value_pfp_append_step_ABright. ((((exists fom_beta_height_pfp_append_step_ABright_entry. fom_beta_height_pfp_append_step_ABright_entry + S (fom_value_pfp_append_step_ABright) = S ((S (fom_index_pfp_append_step_ABright)) * bc)) /\ exists fom_beta_quotient_pfp_append_step_ABright_entry. bb = fom_beta_quotient_pfp_append_step_ABright_entry * S ((S (fom_index_pfp_append_step_ABright)) * bc) + (fom_value_pfp_append_step_ABright))) /\ (exists fom_gap_pfp_append_step_ABright_value_bound. fom_gap_pfp_append_step_ABright_value_bound + S (fom_value_pfp_append_step_ABright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_append_step_ABcoefficients. (exists pfa_gap_append_step_ABcoefficientsbound. pfa_gap_append_step_ABcoefficientsbound + S (pfc_index_append_step_ABcoefficients) = (N)) -> exists pfc_value_append_step_ABcoefficients. ((((exists ff_h_pfp_append_step_ABcoefficientsentry. ff_h_pfp_append_step_ABcoefficientsentry + S (pfc_value_append_step_ABcoefficients) = S ((S (pfc_index_append_step_ABcoefficients)) * pc)) /\ exists ff_q_pfp_append_step_ABcoefficientsentry. pb = ff_q_pfp_append_step_ABcoefficientsentry * S ((S (pfc_index_append_step_ABcoefficients)) * pc) + (pfc_value_append_step_ABcoefficients))) /\ ((exists pfc_terms_code_append_step_ABcoefficientscoefficient pfc_terms_scale_append_step_ABcoefficientscoefficient pfc_natural_sum_append_step_ABcoefficientscoefficient. ((forall pfc_index_append_step_ABcoefficientscoefficientdiagonal. (exists pfa_gap_append_step_ABcoefficientscoefficientdiagonalbound. pfa_gap_append_step_ABcoefficientscoefficientdiagonalbound + S (pfc_index_append_step_ABcoefficientscoefficientdiagonal) = (S (pfc_index_append_step_ABcoefficients))) -> exists pfc_value_append_step_ABcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_append_step_ABcoefficientscoefficientdiagonalentry. ff_h_pfp_append_step_ABcoefficientscoefficientdiagonalentry + S (pfc_value_append_step_ABcoefficientscoefficientdiagonal) = S ((S (pfc_index_append_step_ABcoefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_ABcoefficientscoefficient)) /\ exists ff_q_pfp_append_step_ABcoefficientscoefficientdiagonalentry. pfc_terms_code_append_step_ABcoefficientscoefficient = ff_q_pfp_append_step_ABcoefficientscoefficientdiagonalentry * S ((S (pfc_index_append_step_ABcoefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_ABcoefficientscoefficient) + (pfc_value_append_step_ABcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_append_step_ABcoefficientscoefficientdiagonalterm pfc_left_append_step_ABcoefficientscoefficientdiagonalterm pfc_right_append_step_ABcoefficientscoefficientdiagonalterm. (((pfc_index_append_step_ABcoefficientscoefficientdiagonal)+pfc_complement_append_step_ABcoefficientscoefficientdiagonalterm=(pfc_index_append_step_ABcoefficients)) /\ ((((((exists pfa_gap_append_step_ABcoefficientscoefficientdiagonaltermleftinside. pfa_gap_append_step_ABcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_append_step_ABcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_append_step_ABcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_append_step_ABcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_append_step_ABcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_append_step_ABcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_append_step_ABcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_append_step_ABcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_append_step_ABcoefficientscoefficientdiagonal)) * ac) + (pfc_left_append_step_ABcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_ABcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_append_step_ABcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_append_step_ABcoefficientscoefficientdiagonal)) /\ (((pfc_left_append_step_ABcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_append_step_ABcoefficientscoefficientdiagonaltermrightinside. pfa_gap_append_step_ABcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_append_step_ABcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_append_step_ABcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_append_step_ABcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_append_step_ABcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_append_step_ABcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_append_step_ABcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_append_step_ABcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_append_step_ABcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_append_step_ABcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_ABcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_append_step_ABcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_append_step_ABcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_append_step_ABcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_append_step_ABcoefficientscoefficientdiagonal)=pfc_left_append_step_ABcoefficientscoefficientdiagonalterm*pfc_right_append_step_ABcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_append_step_ABcoefficientscoefficientsum fs_v_pfc_append_step_ABcoefficientscoefficientsum. ((((exists fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_start. fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_append_step_ABcoefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_start. fs_u_pfc_append_step_ABcoefficientscoefficientsum = fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_append_step_ABcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_terminal. fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_append_step_ABcoefficientscoefficient) = S ((S (S (pfc_index_append_step_ABcoefficients))) * fs_v_pfc_append_step_ABcoefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_terminal. fs_u_pfc_append_step_ABcoefficientscoefficientsum = fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_append_step_ABcoefficients))) * fs_v_pfc_append_step_ABcoefficientscoefficientsum) + (pfc_natural_sum_append_step_ABcoefficientscoefficient))) /\ forall fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_append_step_ABcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_append_step_ABcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps = S (pfc_index_append_step_ABcoefficients)) -> exists fs_a_pfc_append_step_ABcoefficientscoefficientsum_body_steps fs_r_pfc_append_step_ABcoefficientscoefficientsum_body_steps fs_s_pfc_append_step_ABcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_append_step_ABcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_ABcoefficientscoefficient)) /\ exists fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_append_step_ABcoefficientscoefficient = fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_ABcoefficientscoefficient) + (fs_a_pfc_append_step_ABcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_append_step_ABcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_ABcoefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_append_step_ABcoefficientscoefficientsum = fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_ABcoefficientscoefficientsum) + (fs_r_pfc_append_step_ABcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_append_step_ABcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_append_step_ABcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_ABcoefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_append_step_ABcoefficientscoefficientsum = fs_q_pfc_append_step_ABcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_append_step_ABcoefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_ABcoefficientscoefficientsum) + (fs_s_pfc_append_step_ABcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_append_step_ABcoefficientscoefficientsum_body_steps = fs_r_pfc_append_step_ABcoefficientscoefficientsum_body_steps + fs_a_pfc_append_step_ABcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_append_step_ABcoefficientscoefficientresiduebound. pfa_gap_append_step_ABcoefficientscoefficientresiduebound + S (pfc_value_append_step_ABcoefficients) = (p)) /\ ((exists pfa_offset_left_append_step_ABcoefficientscoefficientresiduecongruence pfa_offset_right_append_step_ABcoefficientscoefficientresiduecongruence. (pfc_natural_sum_append_step_ABcoefficientscoefficient) + (p) * pfa_offset_left_append_step_ABcoefficientscoefficientresiduecongruence = (pfc_value_append_step_ABcoefficients) + (p) * pfa_offset_right_append_step_ABcoefficientscoefficientresiduecongruence))))))))))))))))))
  53. 0053exact hAB
  54. 0054cases hABcopy
  55. 0055cases hABcopy_right
  56. 0056cases hABcopy_right_right
  57. 0057have hQ1copy : ((forall fom_index_pfp_append_step_Q1left. (exists fom_gap_pfp_append_step_Q1left_index_bound. fom_gap_pfp_append_step_Q1left_index_bound + S (fom_index_pfp_append_step_Q1left) = M) -> exists fom_value_pfp_append_step_Q1left. ((((exists fom_beta_height_pfp_append_step_Q1left_entry. fom_beta_height_pfp_append_step_Q1left_entry + S (fom_value_pfp_append_step_Q1left) = S ((S (fom_index_pfp_append_step_Q1left)) * bc)) /\ exists fom_beta_quotient_pfp_append_step_Q1left_entry. bb = fom_beta_quotient_pfp_append_step_Q1left_entry * S ((S (fom_index_pfp_append_step_Q1left)) * bc) + (fom_value_pfp_append_step_Q1left))) /\ (exists fom_gap_pfp_append_step_Q1left_value_bound. fom_gap_pfp_append_step_Q1left_value_bound + S (fom_value_pfp_append_step_Q1left) = p))) /\ (((forall fom_index_pfp_append_step_Q1right. (exists fom_gap_pfp_append_step_Q1right_index_bound. fom_gap_pfp_append_step_Q1right_index_bound + S (fom_index_pfp_append_step_Q1right) = S J) -> exists fom_value_pfp_append_step_Q1right. ((((exists fom_beta_height_pfp_append_step_Q1right_entry. fom_beta_height_pfp_append_step_Q1right_entry + S (fom_value_pfp_append_step_Q1right) = S ((S (fom_index_pfp_append_step_Q1right)) * dc)) /\ exists fom_beta_quotient_pfp_append_step_Q1right_entry. db = fom_beta_quotient_pfp_append_step_Q1right_entry * S ((S (fom_index_pfp_append_step_Q1right)) * dc) + (fom_value_pfp_append_step_Q1right))) /\ (exists fom_gap_pfp_append_step_Q1right_value_bound. fom_gap_pfp_append_step_Q1right_value_bound + S (fom_value_pfp_append_step_Q1right) = p))) /\ (((((((M)=0 \/ (S J)=0) /\ (((K1)=0)))) \/ (((~((M)=0)) /\ (((~((S J)=0)) /\ (((M)+(S J)=S (K1)))))))) /\ ((forall pfc_index_append_step_Q1coefficients. (exists pfa_gap_append_step_Q1coefficientsbound. pfa_gap_append_step_Q1coefficientsbound + S (pfc_index_append_step_Q1coefficients) = (K1)) -> exists pfc_value_append_step_Q1coefficients. ((((exists ff_h_pfp_append_step_Q1coefficientsentry. ff_h_pfp_append_step_Q1coefficientsentry + S (pfc_value_append_step_Q1coefficients) = S ((S (pfc_index_append_step_Q1coefficients)) * q1c)) /\ exists ff_q_pfp_append_step_Q1coefficientsentry. q1b = ff_q_pfp_append_step_Q1coefficientsentry * S ((S (pfc_index_append_step_Q1coefficients)) * q1c) + (pfc_value_append_step_Q1coefficients))) /\ ((exists pfc_terms_code_append_step_Q1coefficientscoefficient pfc_terms_scale_append_step_Q1coefficientscoefficient pfc_natural_sum_append_step_Q1coefficientscoefficient. ((forall pfc_index_append_step_Q1coefficientscoefficientdiagonal. (exists pfa_gap_append_step_Q1coefficientscoefficientdiagonalbound. pfa_gap_append_step_Q1coefficientscoefficientdiagonalbound + S (pfc_index_append_step_Q1coefficientscoefficientdiagonal) = (S (pfc_index_append_step_Q1coefficients))) -> exists pfc_value_append_step_Q1coefficientscoefficientdiagonal. ((((exists ff_h_pfp_append_step_Q1coefficientscoefficientdiagonalentry. ff_h_pfp_append_step_Q1coefficientscoefficientdiagonalentry + S (pfc_value_append_step_Q1coefficientscoefficientdiagonal) = S ((S (pfc_index_append_step_Q1coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_Q1coefficientscoefficient)) /\ exists ff_q_pfp_append_step_Q1coefficientscoefficientdiagonalentry. pfc_terms_code_append_step_Q1coefficientscoefficient = ff_q_pfp_append_step_Q1coefficientscoefficientdiagonalentry * S ((S (pfc_index_append_step_Q1coefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_Q1coefficientscoefficient) + (pfc_value_append_step_Q1coefficientscoefficientdiagonal))) /\ ((exists pfc_complement_append_step_Q1coefficientscoefficientdiagonalterm pfc_left_append_step_Q1coefficientscoefficientdiagonalterm pfc_right_append_step_Q1coefficientscoefficientdiagonalterm. (((pfc_index_append_step_Q1coefficientscoefficientdiagonal)+pfc_complement_append_step_Q1coefficientscoefficientdiagonalterm=(pfc_index_append_step_Q1coefficients)) /\ ((((((exists pfa_gap_append_step_Q1coefficientscoefficientdiagonaltermleftinside. pfa_gap_append_step_Q1coefficientscoefficientdiagonaltermleftinside + S (pfc_index_append_step_Q1coefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_append_step_Q1coefficientscoefficientdiagonaltermleftentry. ff_h_pfp_append_step_Q1coefficientscoefficientdiagonaltermleftentry + S (pfc_left_append_step_Q1coefficientscoefficientdiagonalterm) = S ((S (pfc_index_append_step_Q1coefficientscoefficientdiagonal)) * bc)) /\ exists ff_q_pfp_append_step_Q1coefficientscoefficientdiagonaltermleftentry. bb = ff_q_pfp_append_step_Q1coefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_append_step_Q1coefficientscoefficientdiagonal)) * bc) + (pfc_left_append_step_Q1coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_Q1coefficientscoefficientdiagonaltermleftoutside. pfc_gap_append_step_Q1coefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_append_step_Q1coefficientscoefficientdiagonal)) /\ (((pfc_left_append_step_Q1coefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_append_step_Q1coefficientscoefficientdiagonaltermrightinside. pfa_gap_append_step_Q1coefficientscoefficientdiagonaltermrightinside + S (pfc_complement_append_step_Q1coefficientscoefficientdiagonalterm) = (S J)) /\ ((((exists ff_h_pfp_append_step_Q1coefficientscoefficientdiagonaltermrightentry. ff_h_pfp_append_step_Q1coefficientscoefficientdiagonaltermrightentry + S (pfc_right_append_step_Q1coefficientscoefficientdiagonalterm) = S ((S (pfc_complement_append_step_Q1coefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_append_step_Q1coefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_append_step_Q1coefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_append_step_Q1coefficientscoefficientdiagonalterm)) * dc) + (pfc_right_append_step_Q1coefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_Q1coefficientscoefficientdiagonaltermrightoutside. pfc_gap_append_step_Q1coefficientscoefficientdiagonaltermrightoutside+(S J)=(pfc_complement_append_step_Q1coefficientscoefficientdiagonalterm)) /\ (((pfc_right_append_step_Q1coefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_append_step_Q1coefficientscoefficientdiagonal)=pfc_left_append_step_Q1coefficientscoefficientdiagonalterm*pfc_right_append_step_Q1coefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_append_step_Q1coefficientscoefficientsum fs_v_pfc_append_step_Q1coefficientscoefficientsum. ((((exists fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_start. fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_append_step_Q1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_start. fs_u_pfc_append_step_Q1coefficientscoefficientsum = fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_append_step_Q1coefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_terminal. fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_terminal + S (pfc_natural_sum_append_step_Q1coefficientscoefficient) = S ((S (S (pfc_index_append_step_Q1coefficients))) * fs_v_pfc_append_step_Q1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_terminal. fs_u_pfc_append_step_Q1coefficientscoefficientsum = fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_append_step_Q1coefficients))) * fs_v_pfc_append_step_Q1coefficientscoefficientsum) + (pfc_natural_sum_append_step_Q1coefficientscoefficient))) /\ forall fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps. (exists fs_lt_pfc_append_step_Q1coefficientscoefficientsum_body_steps_bound. fs_lt_pfc_append_step_Q1coefficientscoefficientsum_body_steps_bound + S fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps = S (pfc_index_append_step_Q1coefficients)) -> exists fs_a_pfc_append_step_Q1coefficientscoefficientsum_body_steps fs_r_pfc_append_step_Q1coefficientscoefficientsum_body_steps fs_s_pfc_append_step_Q1coefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_steps_summand. fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_append_step_Q1coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_Q1coefficientscoefficient)) /\ exists fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_steps_summand. pfc_terms_code_append_step_Q1coefficientscoefficient = fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_Q1coefficientscoefficient) + (fs_a_pfc_append_step_Q1coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_steps_partial. fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_append_step_Q1coefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_Q1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_steps_partial. fs_u_pfc_append_step_Q1coefficientscoefficientsum = fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_Q1coefficientscoefficientsum) + (fs_r_pfc_append_step_Q1coefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_steps_successor. fs_h_pfc_append_step_Q1coefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_append_step_Q1coefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_Q1coefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_steps_successor. fs_u_pfc_append_step_Q1coefficientscoefficientsum = fs_q_pfc_append_step_Q1coefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_append_step_Q1coefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_Q1coefficientscoefficientsum) + (fs_s_pfc_append_step_Q1coefficientscoefficientsum_body_steps))) /\ fs_s_pfc_append_step_Q1coefficientscoefficientsum_body_steps = fs_r_pfc_append_step_Q1coefficientscoefficientsum_body_steps + fs_a_pfc_append_step_Q1coefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_append_step_Q1coefficientscoefficientresiduebound. pfa_gap_append_step_Q1coefficientscoefficientresiduebound + S (pfc_value_append_step_Q1coefficients) = (p)) /\ ((exists pfa_offset_left_append_step_Q1coefficientscoefficientresiduecongruence pfa_offset_right_append_step_Q1coefficientscoefficientresiduecongruence. (pfc_natural_sum_append_step_Q1coefficientscoefficient) + (p) * pfa_offset_left_append_step_Q1coefficientscoefficientresiduecongruence = (pfc_value_append_step_Q1coefficients) + (p) * pfa_offset_right_append_step_Q1coefficientscoefficientresiduecongruence))))))))))))))))))
  58. 0058exact hQ1
  59. 0059cases hQ1copy
  60. 0060cases hQ1copy_right
  61. 0061cases hQ1copy_right_right
  62. 0062have hc : exists pfa_gap_append_step_scalar_bound. pfa_gap_append_step_scalar_bound + S (c) = (p)
  63. 0063specialize matrix_rank_bounded_prefix_value (db)
  64. 0064specialize matrix_rank_bounded_prefix_value (dc)
  65. 0065specialize matrix_rank_bounded_prefix_value (S J)
  66. 0066specialize matrix_rank_bounded_prefix_value (p)
  67. 0067specialize matrix_rank_bounded_prefix_value (J)
  68. 0068specialize matrix_rank_bounded_prefix_value (c)
  69. 0069apply matrix_rank_bounded_prefix_value
  70. 0070exact hQ1copy_right_left
  71. 0071specialize le_refl (S J)
  72. 0072apply le_refl
  73. 0073exact hlast
  74. 0074have hPbound : forall fom_index_pfp_append_step_hPbound. (exists fom_gap_pfp_append_step_hPbound_index_bound. fom_gap_pfp_append_step_hPbound_index_bound + S (fom_index_pfp_append_step_hPbound) = N) -> exists fom_value_pfp_append_step_hPbound. ((((exists fom_beta_height_pfp_append_step_hPbound_entry. fom_beta_height_pfp_append_step_hPbound_entry + S (fom_value_pfp_append_step_hPbound) = S ((S (fom_index_pfp_append_step_hPbound)) * pc)) /\ exists fom_beta_quotient_pfp_append_step_hPbound_entry. pb = fom_beta_quotient_pfp_append_step_hPbound_entry * S ((S (fom_index_pfp_append_step_hPbound)) * pc) + (fom_value_pfp_append_step_hPbound))) /\ (exists fom_gap_pfp_append_step_hPbound_value_bound. fom_gap_pfp_append_step_hPbound_value_bound + S (fom_value_pfp_append_step_hPbound) = p))
  75. 0075specialize prime_field_polynomial_convolution_bounded (p)
  76. 0076specialize prime_field_polynomial_convolution_bounded (ab)
  77. 0077specialize prime_field_polynomial_convolution_bounded (ac)
  78. 0078specialize prime_field_polynomial_convolution_bounded (L)
  79. 0079specialize prime_field_polynomial_convolution_bounded (bb)
  80. 0080specialize prime_field_polynomial_convolution_bounded (bc)
  81. 0081specialize prime_field_polynomial_convolution_bounded (M)
  82. 0082specialize prime_field_polynomial_convolution_bounded (pb)
  83. 0083specialize prime_field_polynomial_convolution_bounded (pc)
  84. 0084specialize prime_field_polynomial_convolution_bounded (N)
  85. 0085apply prime_field_polynomial_convolution_bounded
  86. 0086exact hAB
  87. 0087have hQ0bound : forall fom_index_pfp_append_step_hQ0bound. (exists fom_gap_pfp_append_step_hQ0bound_index_bound. fom_gap_pfp_append_step_hQ0bound_index_bound + S (fom_index_pfp_append_step_hQ0bound) = K0) -> exists fom_value_pfp_append_step_hQ0bound. ((((exists fom_beta_height_pfp_append_step_hQ0bound_entry. fom_beta_height_pfp_append_step_hQ0bound_entry + S (fom_value_pfp_append_step_hQ0bound) = S ((S (fom_index_pfp_append_step_hQ0bound)) * q0c)) /\ exists fom_beta_quotient_pfp_append_step_hQ0bound_entry. q0b = fom_beta_quotient_pfp_append_step_hQ0bound_entry * S ((S (fom_index_pfp_append_step_hQ0bound)) * q0c) + (fom_value_pfp_append_step_hQ0bound))) /\ (exists fom_gap_pfp_append_step_hQ0bound_value_bound. fom_gap_pfp_append_step_hQ0bound_value_bound + S (fom_value_pfp_append_step_hQ0bound) = p))
  88. 0088specialize prime_field_polynomial_convolution_bounded (p)
  89. 0089specialize prime_field_polynomial_convolution_bounded (bb)
  90. 0090specialize prime_field_polynomial_convolution_bounded (bc)
  91. 0091specialize prime_field_polynomial_convolution_bounded (M)
  92. 0092specialize prime_field_polynomial_convolution_bounded (cb)
  93. 0093specialize prime_field_polynomial_convolution_bounded (cc)
  94. 0094specialize prime_field_polynomial_convolution_bounded (J)
  95. 0095specialize prime_field_polynomial_convolution_bounded (q0b)
  96. 0096specialize prime_field_polynomial_convolution_bounded (q0c)
  97. 0097specialize prime_field_polynomial_convolution_bounded (K0)
  98. 0098apply prime_field_polynomial_convolution_bounded
  99. 0099exact hQ0
  100. 0100have hR0bound : forall fom_index_pfp_append_step_hR0bound. (exists fom_gap_pfp_append_step_hR0bound_index_bound. fom_gap_pfp_append_step_hR0bound_index_bound + S (fom_index_pfp_append_step_hR0bound) = U0) -> exists fom_value_pfp_append_step_hR0bound. ((((exists fom_beta_height_pfp_append_step_hR0bound_entry. fom_beta_height_pfp_append_step_hR0bound_entry + S (fom_value_pfp_append_step_hR0bound) = S ((S (fom_index_pfp_append_step_hR0bound)) * r0c)) /\ exists fom_beta_quotient_pfp_append_step_hR0bound_entry. r0b = fom_beta_quotient_pfp_append_step_hR0bound_entry * S ((S (fom_index_pfp_append_step_hR0bound)) * r0c) + (fom_value_pfp_append_step_hR0bound))) /\ (exists fom_gap_pfp_append_step_hR0bound_value_bound. fom_gap_pfp_append_step_hR0bound_value_bound + S (fom_value_pfp_append_step_hR0bound) = p))
  101. 0101specialize prime_field_polynomial_convolution_bounded (p)
  102. 0102specialize prime_field_polynomial_convolution_bounded (pb)
  103. 0103specialize prime_field_polynomial_convolution_bounded (pc)
  104. 0104specialize prime_field_polynomial_convolution_bounded (N)
  105. 0105specialize prime_field_polynomial_convolution_bounded (cb)
  106. 0106specialize prime_field_polynomial_convolution_bounded (cc)
  107. 0107specialize prime_field_polynomial_convolution_bounded (J)
  108. 0108specialize prime_field_polynomial_convolution_bounded (r0b)
  109. 0109specialize prime_field_polynomial_convolution_bounded (r0c)
  110. 0110specialize prime_field_polynomial_convolution_bounded (U0)
  111. 0111apply prime_field_polynomial_convolution_bounded
  112. 0112exact hR0
  113. 0113have hS0bound : forall fom_index_pfp_append_step_hS0bound. (exists fom_gap_pfp_append_step_hS0bound_index_bound. fom_gap_pfp_append_step_hS0bound_index_bound + S (fom_index_pfp_append_step_hS0bound) = V0) -> exists fom_value_pfp_append_step_hS0bound. ((((exists fom_beta_height_pfp_append_step_hS0bound_entry. fom_beta_height_pfp_append_step_hS0bound_entry + S (fom_value_pfp_append_step_hS0bound) = S ((S (fom_index_pfp_append_step_hS0bound)) * s0c)) /\ exists fom_beta_quotient_pfp_append_step_hS0bound_entry. s0b = fom_beta_quotient_pfp_append_step_hS0bound_entry * S ((S (fom_index_pfp_append_step_hS0bound)) * s0c) + (fom_value_pfp_append_step_hS0bound))) /\ (exists fom_gap_pfp_append_step_hS0bound_value_bound. fom_gap_pfp_append_step_hS0bound_value_bound + S (fom_value_pfp_append_step_hS0bound) = p))
  114. 0114specialize prime_field_polynomial_convolution_bounded (p)
  115. 0115specialize prime_field_polynomial_convolution_bounded (ab)
  116. 0116specialize prime_field_polynomial_convolution_bounded (ac)
  117. 0117specialize prime_field_polynomial_convolution_bounded (L)
  118. 0118specialize prime_field_polynomial_convolution_bounded (q0b)
  119. 0119specialize prime_field_polynomial_convolution_bounded (q0c)
  120. 0120specialize prime_field_polynomial_convolution_bounded (K0)
  121. 0121specialize prime_field_polynomial_convolution_bounded (s0b)
  122. 0122specialize prime_field_polynomial_convolution_bounded (s0c)
  123. 0123specialize prime_field_polynomial_convolution_bounded (V0)
  124. 0124apply prime_field_polynomial_convolution_bounded
  125. 0125exact hS0
  126. 0126have hYalign : exists ub uc vb vc UPb UPc VPb VPc zb zc. ((((forall mdr_i_pfp_append_step_hYalign_shiftprefix mdr_a_pfp_append_step_hYalign_shiftprefix. (exists mdr_gap_pfp_append_step_hYalign_shiftprefixb. mdr_gap_pfp_append_step_hYalign_shiftprefixb + S (mdr_i_pfp_append_step_hYalign_shiftprefix) = (V0)) -> (((exists ff_h_mdr_pfp_append_step_hYalign_shiftprefixo. ff_h_mdr_pfp_append_step_hYalign_shiftprefixo + S (mdr_a_pfp_append_step_hYalign_shiftprefix) = S ((S (mdr_i_pfp_append_step_hYalign_shiftprefix)) * s0c)) /\ exists ff_q_mdr_pfp_append_step_hYalign_shiftprefixo. s0b = ff_q_mdr_pfp_append_step_hYalign_shiftprefixo * S ((S (mdr_i_pfp_append_step_hYalign_shiftprefix)) * s0c) + (mdr_a_pfp_append_step_hYalign_shiftprefix))) -> (((exists ff_h_mdr_pfp_append_step_hYalign_shiftprefixn. ff_h_mdr_pfp_append_step_hYalign_shiftprefixn + S (mdr_a_pfp_append_step_hYalign_shiftprefix) = S ((S (mdr_i_pfp_append_step_hYalign_shiftprefix)) * uc)) /\ exists ff_q_mdr_pfp_append_step_hYalign_shiftprefixn. ub = ff_q_mdr_pfp_append_step_hYalign_shiftprefixn * S ((S (mdr_i_pfp_append_step_hYalign_shiftprefix)) * uc) + (mdr_a_pfp_append_step_hYalign_shiftprefix)))) /\ ((((exists ff_h_pfp_append_step_hYalign_shiftzero. ff_h_pfp_append_step_hYalign_shiftzero + S (0) = S ((S (V0)) * uc)) /\ exists ff_q_pfp_append_step_hYalign_shiftzero. ub = ff_q_pfp_append_step_hYalign_shiftzero * S ((S (V0)) * uc) + (0)))))) /\ (((((exists pfa_gap_append_step_hYalign_scalescalar. pfa_gap_append_step_hYalign_scalescalar + S (c) = (p)) /\ ((forall pfp_index_append_step_hYalign_scale. (exists pfa_gap_append_step_hYalign_scaleindex. pfa_gap_append_step_hYalign_scaleindex + S (pfp_index_append_step_hYalign_scale) = (N)) -> exists pfp_source_append_step_hYalign_scale pfp_value_append_step_hYalign_scale. ((((exists ff_h_pfp_append_step_hYalign_scalesource. ff_h_pfp_append_step_hYalign_scalesource + S (pfp_source_append_step_hYalign_scale) = S ((S (pfp_index_append_step_hYalign_scale)) * pc)) /\ exists ff_q_pfp_append_step_hYalign_scalesource. pb = ff_q_pfp_append_step_hYalign_scalesource * S ((S (pfp_index_append_step_hYalign_scale)) * pc) + (pfp_source_append_step_hYalign_scale))) /\ (((((exists ff_h_pfp_append_step_hYalign_scaletarget. ff_h_pfp_append_step_hYalign_scaletarget + S (pfp_value_append_step_hYalign_scale) = S ((S (pfp_index_append_step_hYalign_scale)) * vc)) /\ exists ff_q_pfp_append_step_hYalign_scaletarget. vb = ff_q_pfp_append_step_hYalign_scaletarget * S ((S (pfp_index_append_step_hYalign_scale)) * vc) + (pfp_value_append_step_hYalign_scale))) /\ ((((exists pfa_gap_append_step_hYalign_scaleoperationleft. pfa_gap_append_step_hYalign_scaleoperationleft + S (c) = (p)) /\ (((exists pfa_gap_append_step_hYalign_scaleoperationright. pfa_gap_append_step_hYalign_scaleoperationright + S (pfp_source_append_step_hYalign_scale) = (p)) /\ ((((exists pfa_gap_append_step_hYalign_scaleoperationresultbound. pfa_gap_append_step_hYalign_scaleoperationresultbound + S (pfp_value_append_step_hYalign_scale) = (p)) /\ ((exists pfa_offset_left_append_step_hYalign_scaleoperationresultcongruence pfa_offset_right_append_step_hYalign_scaleoperationresultcongruence. ((c) * (pfp_source_append_step_hYalign_scale)) + (p) * pfa_offset_left_append_step_hYalign_scaleoperationresultcongruence = (pfp_value_append_step_hYalign_scale) + (p) * pfa_offset_right_append_step_hYalign_scaleoperationresultcongruence))))))))))))))))) /\ (((((forall pfp_repeat_index_append_step_hYalign_leftzeros. (exists pfa_gap_append_step_hYalign_leftzerosindex. pfa_gap_append_step_hYalign_leftzerosindex + S (pfp_repeat_index_append_step_hYalign_leftzeros) = (N)) -> (((exists ff_h_pfp_append_step_hYalign_leftzerosentry. ff_h_pfp_append_step_hYalign_leftzerosentry + S (0) = S ((S (pfp_repeat_index_append_step_hYalign_leftzeros)) * UPc)) /\ exists ff_q_pfp_append_step_hYalign_leftzerosentry. UPb = ff_q_pfp_append_step_hYalign_leftzerosentry * S ((S (pfp_repeat_index_append_step_hYalign_leftzeros)) * UPc) + (0)))) /\ ((forall pfrep_index_append_step_hYalign_left pfrep_value_append_step_hYalign_left. (exists pfa_gap_append_step_hYalign_leftbound. pfa_gap_append_step_hYalign_leftbound + S (pfrep_index_append_step_hYalign_left) = (S V0)) -> (((exists ff_h_pfp_append_step_hYalign_leftinput. ff_h_pfp_append_step_hYalign_leftinput + S (pfrep_value_append_step_hYalign_left) = S ((S (pfrep_index_append_step_hYalign_left)) * uc)) /\ exists ff_q_pfp_append_step_hYalign_leftinput. ub = ff_q_pfp_append_step_hYalign_leftinput * S ((S (pfrep_index_append_step_hYalign_left)) * uc) + (pfrep_value_append_step_hYalign_left))) -> (((exists ff_h_pfp_append_step_hYalign_leftoutput. ff_h_pfp_append_step_hYalign_leftoutput + S (pfrep_value_append_step_hYalign_left) = S ((S ((N)+pfrep_index_append_step_hYalign_left)) * UPc)) /\ exists ff_q_pfp_append_step_hYalign_leftoutput. UPb = ff_q_pfp_append_step_hYalign_leftoutput * S ((S ((N)+pfrep_index_append_step_hYalign_left)) * UPc) + (pfrep_value_append_step_hYalign_left))))))) /\ (((((forall pfp_repeat_index_append_step_hYalign_rightzeros. (exists pfa_gap_append_step_hYalign_rightzerosindex. pfa_gap_append_step_hYalign_rightzerosindex + S (pfp_repeat_index_append_step_hYalign_rightzeros) = (S V0)) -> (((exists ff_h_pfp_append_step_hYalign_rightzerosentry. ff_h_pfp_append_step_hYalign_rightzerosentry + S (0) = S ((S (pfp_repeat_index_append_step_hYalign_rightzeros)) * VPc)) /\ exists ff_q_pfp_append_step_hYalign_rightzerosentry. VPb = ff_q_pfp_append_step_hYalign_rightzerosentry * S ((S (pfp_repeat_index_append_step_hYalign_rightzeros)) * VPc) + (0)))) /\ ((forall pfrep_index_append_step_hYalign_right pfrep_value_append_step_hYalign_right. (exists pfa_gap_append_step_hYalign_rightbound. pfa_gap_append_step_hYalign_rightbound + S (pfrep_index_append_step_hYalign_right) = (N)) -> (((exists ff_h_pfp_append_step_hYalign_rightinput. ff_h_pfp_append_step_hYalign_rightinput + S (pfrep_value_append_step_hYalign_right) = S ((S (pfrep_index_append_step_hYalign_right)) * vc)) /\ exists ff_q_pfp_append_step_hYalign_rightinput. vb = ff_q_pfp_append_step_hYalign_rightinput * S ((S (pfrep_index_append_step_hYalign_right)) * vc) + (pfrep_value_append_step_hYalign_right))) -> (((exists ff_h_pfp_append_step_hYalign_rightoutput. ff_h_pfp_append_step_hYalign_rightoutput + S (pfrep_value_append_step_hYalign_right) = S ((S ((S V0)+pfrep_index_append_step_hYalign_right)) * VPc)) /\ exists ff_q_pfp_append_step_hYalign_rightoutput. VPb = ff_q_pfp_append_step_hYalign_rightoutput * S ((S ((S V0)+pfrep_index_append_step_hYalign_right)) * VPc) + (pfrep_value_append_step_hYalign_right))))))) /\ ((forall pfp_index_append_step_hYalign_sum. (exists pfa_gap_append_step_hYalign_sumindex. pfa_gap_append_step_hYalign_sumindex + S (pfp_index_append_step_hYalign_sum) = (N+S V0)) -> exists pfp_left_append_step_hYalign_sum pfp_right_append_step_hYalign_sum pfp_value_append_step_hYalign_sum. ((((exists ff_h_pfp_append_step_hYalign_sumleft. ff_h_pfp_append_step_hYalign_sumleft + S (pfp_left_append_step_hYalign_sum) = S ((S (pfp_index_append_step_hYalign_sum)) * UPc)) /\ exists ff_q_pfp_append_step_hYalign_sumleft. UPb = ff_q_pfp_append_step_hYalign_sumleft * S ((S (pfp_index_append_step_hYalign_sum)) * UPc) + (pfp_left_append_step_hYalign_sum))) /\ (((((exists ff_h_pfp_append_step_hYalign_sumright. ff_h_pfp_append_step_hYalign_sumright + S (pfp_right_append_step_hYalign_sum) = S ((S (pfp_index_append_step_hYalign_sum)) * VPc)) /\ exists ff_q_pfp_append_step_hYalign_sumright. VPb = ff_q_pfp_append_step_hYalign_sumright * S ((S (pfp_index_append_step_hYalign_sum)) * VPc) + (pfp_right_append_step_hYalign_sum))) /\ (((((exists ff_h_pfp_append_step_hYalign_sumtarget. ff_h_pfp_append_step_hYalign_sumtarget + S (pfp_value_append_step_hYalign_sum) = S ((S (pfp_index_append_step_hYalign_sum)) * zc)) /\ exists ff_q_pfp_append_step_hYalign_sumtarget. zb = ff_q_pfp_append_step_hYalign_sumtarget * S ((S (pfp_index_append_step_hYalign_sum)) * zc) + (pfp_value_append_step_hYalign_sum))) /\ ((((exists pfa_gap_append_step_hYalign_sumoperationleft. pfa_gap_append_step_hYalign_sumoperationleft + S (pfp_left_append_step_hYalign_sum) = (p)) /\ (((exists pfa_gap_append_step_hYalign_sumoperationright. pfa_gap_append_step_hYalign_sumoperationright + S (pfp_right_append_step_hYalign_sum) = (p)) /\ ((((exists pfa_gap_append_step_hYalign_sumoperationresultbound. pfa_gap_append_step_hYalign_sumoperationresultbound + S (pfp_value_append_step_hYalign_sum) = (p)) /\ ((exists pfa_offset_left_append_step_hYalign_sumoperationresultcongruence pfa_offset_right_append_step_hYalign_sumoperationresultcongruence. ((pfp_left_append_step_hYalign_sum) + (pfp_right_append_step_hYalign_sum)) + (p) * pfa_offset_left_append_step_hYalign_sumoperationresultcongruence = (pfp_value_append_step_hYalign_sum) + (p) * pfa_offset_right_append_step_hYalign_sumoperationresultcongruence))))))))))))))))))))))))
  127. 0127specialize prime_field_polynomial_shift_scale_aligned_sum_exists (p)
  128. 0128specialize prime_field_polynomial_shift_scale_aligned_sum_exists (c)
  129. 0129specialize prime_field_polynomial_shift_scale_aligned_sum_exists (pb)
  130. 0130specialize prime_field_polynomial_shift_scale_aligned_sum_exists (pc)
  131. 0131specialize prime_field_polynomial_shift_scale_aligned_sum_exists (N)
  132. 0132specialize prime_field_polynomial_shift_scale_aligned_sum_exists (s0b)
  133. 0133specialize prime_field_polynomial_shift_scale_aligned_sum_exists (s0c)
  134. 0134specialize prime_field_polynomial_shift_scale_aligned_sum_exists (V0)
  135. 0135apply prime_field_polynomial_shift_scale_aligned_sum_exists
  136. 0136exact hp
  137. 0137exact hc
  138. 0138exact hPbound
  139. 0139exact hS0bound
  140. 0140cases hYalign
  141. 0141cases hYalign_witness
  142. 0142cases hYalign_witness_witness
  143. 0143cases hYalign_witness_witness_witness
  144. 0144cases hYalign_witness_witness_witness_witness
  145. 0145cases hYalign_witness_witness_witness_witness_witness
  146. 0146cases hYalign_witness_witness_witness_witness_witness_witness
  147. 0147cases hYalign_witness_witness_witness_witness_witness_witness_witness
  148. 0148cases hYalign_witness_witness_witness_witness_witness_witness_witness_witness
  149. 0149cases hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness
  150. 0150cases hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness
  151. 0151cases hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right
  152. 0152cases hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right
  153. 0153cases hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right
  154. 0154have hS_total : forall pfrep_power_append_step_S_total pfrep_left_append_step_S_total pfrep_right_append_step_S_total. ((exists pfrep_position_append_step_S_totalfirst. ((pfrep_position_append_step_S_totalfirst+S (pfrep_power_append_step_S_total)=(V1)) /\ ((((exists ff_h_pfp_append_step_S_totalfirstentry. ff_h_pfp_append_step_S_totalfirstentry + S (pfrep_left_append_step_S_total) = S ((S (pfrep_position_append_step_S_totalfirst)) * s1c)) /\ exists ff_q_pfp_append_step_S_totalfirstentry. s1b = ff_q_pfp_append_step_S_totalfirstentry * S ((S (pfrep_position_append_step_S_totalfirst)) * s1c) + (pfrep_left_append_step_S_total)))))) \/ (((exists pfrep_gap_append_step_S_totalfirstoutside. pfrep_gap_append_step_S_totalfirstoutside+(V1)=(pfrep_power_append_step_S_total)) /\ (((pfrep_left_append_step_S_total)=0))))) -> ((exists pfrep_position_append_step_S_totalsecond. ((pfrep_position_append_step_S_totalsecond+S (pfrep_power_append_step_S_total)=(N+S V0)) /\ ((((exists ff_h_pfp_append_step_S_totalsecondentry. ff_h_pfp_append_step_S_totalsecondentry + S (pfrep_right_append_step_S_total) = S ((S (pfrep_position_append_step_S_totalsecond)) * x9)) /\ exists ff_q_pfp_append_step_S_totalsecondentry. x8 = ff_q_pfp_append_step_S_totalsecondentry * S ((S (pfrep_position_append_step_S_totalsecond)) * x9) + (pfrep_right_append_step_S_total)))))) \/ (((exists pfrep_gap_append_step_S_totalsecondoutside. pfrep_gap_append_step_S_totalsecondoutside+(N+S V0)=(pfrep_power_append_step_S_total)) /\ (((pfrep_right_append_step_S_total)=0))))) -> pfrep_left_append_step_S_total=pfrep_right_append_step_S_total
  155. 0155have hZalign : exists ub uc vb vc UPb UPc VPb VPc zb zc. ((((forall mdr_i_pfp_append_step_hZalign_shiftprefix mdr_a_pfp_append_step_hZalign_shiftprefix. (exists mdr_gap_pfp_append_step_hZalign_shiftprefixb. mdr_gap_pfp_append_step_hZalign_shiftprefixb + S (mdr_i_pfp_append_step_hZalign_shiftprefix) = (K0)) -> (((exists ff_h_mdr_pfp_append_step_hZalign_shiftprefixo. ff_h_mdr_pfp_append_step_hZalign_shiftprefixo + S (mdr_a_pfp_append_step_hZalign_shiftprefix) = S ((S (mdr_i_pfp_append_step_hZalign_shiftprefix)) * q0c)) /\ exists ff_q_mdr_pfp_append_step_hZalign_shiftprefixo. q0b = ff_q_mdr_pfp_append_step_hZalign_shiftprefixo * S ((S (mdr_i_pfp_append_step_hZalign_shiftprefix)) * q0c) + (mdr_a_pfp_append_step_hZalign_shiftprefix))) -> (((exists ff_h_mdr_pfp_append_step_hZalign_shiftprefixn. ff_h_mdr_pfp_append_step_hZalign_shiftprefixn + S (mdr_a_pfp_append_step_hZalign_shiftprefix) = S ((S (mdr_i_pfp_append_step_hZalign_shiftprefix)) * uc)) /\ exists ff_q_mdr_pfp_append_step_hZalign_shiftprefixn. ub = ff_q_mdr_pfp_append_step_hZalign_shiftprefixn * S ((S (mdr_i_pfp_append_step_hZalign_shiftprefix)) * uc) + (mdr_a_pfp_append_step_hZalign_shiftprefix)))) /\ ((((exists ff_h_pfp_append_step_hZalign_shiftzero. ff_h_pfp_append_step_hZalign_shiftzero + S (0) = S ((S (K0)) * uc)) /\ exists ff_q_pfp_append_step_hZalign_shiftzero. ub = ff_q_pfp_append_step_hZalign_shiftzero * S ((S (K0)) * uc) + (0)))))) /\ (((((exists pfa_gap_append_step_hZalign_scalescalar. pfa_gap_append_step_hZalign_scalescalar + S (c) = (p)) /\ ((forall pfp_index_append_step_hZalign_scale. (exists pfa_gap_append_step_hZalign_scaleindex. pfa_gap_append_step_hZalign_scaleindex + S (pfp_index_append_step_hZalign_scale) = (M)) -> exists pfp_source_append_step_hZalign_scale pfp_value_append_step_hZalign_scale. ((((exists ff_h_pfp_append_step_hZalign_scalesource. ff_h_pfp_append_step_hZalign_scalesource + S (pfp_source_append_step_hZalign_scale) = S ((S (pfp_index_append_step_hZalign_scale)) * bc)) /\ exists ff_q_pfp_append_step_hZalign_scalesource. bb = ff_q_pfp_append_step_hZalign_scalesource * S ((S (pfp_index_append_step_hZalign_scale)) * bc) + (pfp_source_append_step_hZalign_scale))) /\ (((((exists ff_h_pfp_append_step_hZalign_scaletarget. ff_h_pfp_append_step_hZalign_scaletarget + S (pfp_value_append_step_hZalign_scale) = S ((S (pfp_index_append_step_hZalign_scale)) * vc)) /\ exists ff_q_pfp_append_step_hZalign_scaletarget. vb = ff_q_pfp_append_step_hZalign_scaletarget * S ((S (pfp_index_append_step_hZalign_scale)) * vc) + (pfp_value_append_step_hZalign_scale))) /\ ((((exists pfa_gap_append_step_hZalign_scaleoperationleft. pfa_gap_append_step_hZalign_scaleoperationleft + S (c) = (p)) /\ (((exists pfa_gap_append_step_hZalign_scaleoperationright. pfa_gap_append_step_hZalign_scaleoperationright + S (pfp_source_append_step_hZalign_scale) = (p)) /\ ((((exists pfa_gap_append_step_hZalign_scaleoperationresultbound. pfa_gap_append_step_hZalign_scaleoperationresultbound + S (pfp_value_append_step_hZalign_scale) = (p)) /\ ((exists pfa_offset_left_append_step_hZalign_scaleoperationresultcongruence pfa_offset_right_append_step_hZalign_scaleoperationresultcongruence. ((c) * (pfp_source_append_step_hZalign_scale)) + (p) * pfa_offset_left_append_step_hZalign_scaleoperationresultcongruence = (pfp_value_append_step_hZalign_scale) + (p) * pfa_offset_right_append_step_hZalign_scaleoperationresultcongruence))))))))))))))))) /\ (((((forall pfp_repeat_index_append_step_hZalign_leftzeros. (exists pfa_gap_append_step_hZalign_leftzerosindex. pfa_gap_append_step_hZalign_leftzerosindex + S (pfp_repeat_index_append_step_hZalign_leftzeros) = (M)) -> (((exists ff_h_pfp_append_step_hZalign_leftzerosentry. ff_h_pfp_append_step_hZalign_leftzerosentry + S (0) = S ((S (pfp_repeat_index_append_step_hZalign_leftzeros)) * UPc)) /\ exists ff_q_pfp_append_step_hZalign_leftzerosentry. UPb = ff_q_pfp_append_step_hZalign_leftzerosentry * S ((S (pfp_repeat_index_append_step_hZalign_leftzeros)) * UPc) + (0)))) /\ ((forall pfrep_index_append_step_hZalign_left pfrep_value_append_step_hZalign_left. (exists pfa_gap_append_step_hZalign_leftbound. pfa_gap_append_step_hZalign_leftbound + S (pfrep_index_append_step_hZalign_left) = (S K0)) -> (((exists ff_h_pfp_append_step_hZalign_leftinput. ff_h_pfp_append_step_hZalign_leftinput + S (pfrep_value_append_step_hZalign_left) = S ((S (pfrep_index_append_step_hZalign_left)) * uc)) /\ exists ff_q_pfp_append_step_hZalign_leftinput. ub = ff_q_pfp_append_step_hZalign_leftinput * S ((S (pfrep_index_append_step_hZalign_left)) * uc) + (pfrep_value_append_step_hZalign_left))) -> (((exists ff_h_pfp_append_step_hZalign_leftoutput. ff_h_pfp_append_step_hZalign_leftoutput + S (pfrep_value_append_step_hZalign_left) = S ((S ((M)+pfrep_index_append_step_hZalign_left)) * UPc)) /\ exists ff_q_pfp_append_step_hZalign_leftoutput. UPb = ff_q_pfp_append_step_hZalign_leftoutput * S ((S ((M)+pfrep_index_append_step_hZalign_left)) * UPc) + (pfrep_value_append_step_hZalign_left))))))) /\ (((((forall pfp_repeat_index_append_step_hZalign_rightzeros. (exists pfa_gap_append_step_hZalign_rightzerosindex. pfa_gap_append_step_hZalign_rightzerosindex + S (pfp_repeat_index_append_step_hZalign_rightzeros) = (S K0)) -> (((exists ff_h_pfp_append_step_hZalign_rightzerosentry. ff_h_pfp_append_step_hZalign_rightzerosentry + S (0) = S ((S (pfp_repeat_index_append_step_hZalign_rightzeros)) * VPc)) /\ exists ff_q_pfp_append_step_hZalign_rightzerosentry. VPb = ff_q_pfp_append_step_hZalign_rightzerosentry * S ((S (pfp_repeat_index_append_step_hZalign_rightzeros)) * VPc) + (0)))) /\ ((forall pfrep_index_append_step_hZalign_right pfrep_value_append_step_hZalign_right. (exists pfa_gap_append_step_hZalign_rightbound. pfa_gap_append_step_hZalign_rightbound + S (pfrep_index_append_step_hZalign_right) = (M)) -> (((exists ff_h_pfp_append_step_hZalign_rightinput. ff_h_pfp_append_step_hZalign_rightinput + S (pfrep_value_append_step_hZalign_right) = S ((S (pfrep_index_append_step_hZalign_right)) * vc)) /\ exists ff_q_pfp_append_step_hZalign_rightinput. vb = ff_q_pfp_append_step_hZalign_rightinput * S ((S (pfrep_index_append_step_hZalign_right)) * vc) + (pfrep_value_append_step_hZalign_right))) -> (((exists ff_h_pfp_append_step_hZalign_rightoutput. ff_h_pfp_append_step_hZalign_rightoutput + S (pfrep_value_append_step_hZalign_right) = S ((S ((S K0)+pfrep_index_append_step_hZalign_right)) * VPc)) /\ exists ff_q_pfp_append_step_hZalign_rightoutput. VPb = ff_q_pfp_append_step_hZalign_rightoutput * S ((S ((S K0)+pfrep_index_append_step_hZalign_right)) * VPc) + (pfrep_value_append_step_hZalign_right))))))) /\ ((forall pfp_index_append_step_hZalign_sum. (exists pfa_gap_append_step_hZalign_sumindex. pfa_gap_append_step_hZalign_sumindex + S (pfp_index_append_step_hZalign_sum) = (M+S K0)) -> exists pfp_left_append_step_hZalign_sum pfp_right_append_step_hZalign_sum pfp_value_append_step_hZalign_sum. ((((exists ff_h_pfp_append_step_hZalign_sumleft. ff_h_pfp_append_step_hZalign_sumleft + S (pfp_left_append_step_hZalign_sum) = S ((S (pfp_index_append_step_hZalign_sum)) * UPc)) /\ exists ff_q_pfp_append_step_hZalign_sumleft. UPb = ff_q_pfp_append_step_hZalign_sumleft * S ((S (pfp_index_append_step_hZalign_sum)) * UPc) + (pfp_left_append_step_hZalign_sum))) /\ (((((exists ff_h_pfp_append_step_hZalign_sumright. ff_h_pfp_append_step_hZalign_sumright + S (pfp_right_append_step_hZalign_sum) = S ((S (pfp_index_append_step_hZalign_sum)) * VPc)) /\ exists ff_q_pfp_append_step_hZalign_sumright. VPb = ff_q_pfp_append_step_hZalign_sumright * S ((S (pfp_index_append_step_hZalign_sum)) * VPc) + (pfp_right_append_step_hZalign_sum))) /\ (((((exists ff_h_pfp_append_step_hZalign_sumtarget. ff_h_pfp_append_step_hZalign_sumtarget + S (pfp_value_append_step_hZalign_sum) = S ((S (pfp_index_append_step_hZalign_sum)) * zc)) /\ exists ff_q_pfp_append_step_hZalign_sumtarget. zb = ff_q_pfp_append_step_hZalign_sumtarget * S ((S (pfp_index_append_step_hZalign_sum)) * zc) + (pfp_value_append_step_hZalign_sum))) /\ ((((exists pfa_gap_append_step_hZalign_sumoperationleft. pfa_gap_append_step_hZalign_sumoperationleft + S (pfp_left_append_step_hZalign_sum) = (p)) /\ (((exists pfa_gap_append_step_hZalign_sumoperationright. pfa_gap_append_step_hZalign_sumoperationright + S (pfp_right_append_step_hZalign_sum) = (p)) /\ ((((exists pfa_gap_append_step_hZalign_sumoperationresultbound. pfa_gap_append_step_hZalign_sumoperationresultbound + S (pfp_value_append_step_hZalign_sum) = (p)) /\ ((exists pfa_offset_left_append_step_hZalign_sumoperationresultcongruence pfa_offset_right_append_step_hZalign_sumoperationresultcongruence. ((pfp_left_append_step_hZalign_sum) + (pfp_right_append_step_hZalign_sum)) + (p) * pfa_offset_left_append_step_hZalign_sumoperationresultcongruence = (pfp_value_append_step_hZalign_sum) + (p) * pfa_offset_right_append_step_hZalign_sumoperationresultcongruence))))))))))))))))))))))))
  156. 0156specialize prime_field_polynomial_shift_scale_aligned_sum_exists (p)
  157. 0157specialize prime_field_polynomial_shift_scale_aligned_sum_exists (c)
  158. 0158specialize prime_field_polynomial_shift_scale_aligned_sum_exists (bb)
  159. 0159specialize prime_field_polynomial_shift_scale_aligned_sum_exists (bc)
  160. 0160specialize prime_field_polynomial_shift_scale_aligned_sum_exists (M)
  161. 0161specialize prime_field_polynomial_shift_scale_aligned_sum_exists (q0b)
  162. 0162specialize prime_field_polynomial_shift_scale_aligned_sum_exists (q0c)
  163. 0163specialize prime_field_polynomial_shift_scale_aligned_sum_exists (K0)
  164. 0164apply prime_field_polynomial_shift_scale_aligned_sum_exists
  165. 0165exact hp
  166. 0166exact hc
  167. 0167exact hABcopy_right_left
  168. 0168exact hQ0bound
  169. 0169cases hZalign
  170. 0170cases hZalign_witness
  171. 0171cases hZalign_witness_witness
  172. 0172cases hZalign_witness_witness_witness
  173. 0173cases hZalign_witness_witness_witness_witness
  174. 0174cases hZalign_witness_witness_witness_witness_witness
  175. 0175cases hZalign_witness_witness_witness_witness_witness_witness
  176. 0176cases hZalign_witness_witness_witness_witness_witness_witness_witness
  177. 0177cases hZalign_witness_witness_witness_witness_witness_witness_witness_witness
  178. 0178cases hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness
  179. 0179cases hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness
  180. 0180cases hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right
  181. 0181cases hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right
  182. 0182cases hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right
  183. 0183have hZbounds : ((forall fom_index_pfp_append_step_Z_left_bound. (exists fom_gap_pfp_append_step_Z_left_bound_index_bound. fom_gap_pfp_append_step_Z_left_bound_index_bound + S (fom_index_pfp_append_step_Z_left_bound) = M+S K0) -> exists fom_value_pfp_append_step_Z_left_bound. ((((exists fom_beta_height_pfp_append_step_Z_left_bound_entry. fom_beta_height_pfp_append_step_Z_left_bound_entry + S (fom_value_pfp_append_step_Z_left_bound) = S ((S (fom_index_pfp_append_step_Z_left_bound)) * x15)) /\ exists fom_beta_quotient_pfp_append_step_Z_left_bound_entry. x14 = fom_beta_quotient_pfp_append_step_Z_left_bound_entry * S ((S (fom_index_pfp_append_step_Z_left_bound)) * x15) + (fom_value_pfp_append_step_Z_left_bound))) /\ (exists fom_gap_pfp_append_step_Z_left_bound_value_bound. fom_gap_pfp_append_step_Z_left_bound_value_bound + S (fom_value_pfp_append_step_Z_left_bound) = p))) /\ (((forall fom_index_pfp_append_step_Z_right_bound. (exists fom_gap_pfp_append_step_Z_right_bound_index_bound. fom_gap_pfp_append_step_Z_right_bound_index_bound + S (fom_index_pfp_append_step_Z_right_bound) = M+S K0) -> exists fom_value_pfp_append_step_Z_right_bound. ((((exists fom_beta_height_pfp_append_step_Z_right_bound_entry. fom_beta_height_pfp_append_step_Z_right_bound_entry + S (fom_value_pfp_append_step_Z_right_bound) = S ((S (fom_index_pfp_append_step_Z_right_bound)) * x17)) /\ exists fom_beta_quotient_pfp_append_step_Z_right_bound_entry. x16 = fom_beta_quotient_pfp_append_step_Z_right_bound_entry * S ((S (fom_index_pfp_append_step_Z_right_bound)) * x17) + (fom_value_pfp_append_step_Z_right_bound))) /\ (exists fom_gap_pfp_append_step_Z_right_bound_value_bound. fom_gap_pfp_append_step_Z_right_bound_value_bound + S (fom_value_pfp_append_step_Z_right_bound) = p))) /\ ((forall fom_index_pfp_append_step_Z_output_bound. (exists fom_gap_pfp_append_step_Z_output_bound_index_bound. fom_gap_pfp_append_step_Z_output_bound_index_bound + S (fom_index_pfp_append_step_Z_output_bound) = M+S K0) -> exists fom_value_pfp_append_step_Z_output_bound. ((((exists fom_beta_height_pfp_append_step_Z_output_bound_entry. fom_beta_height_pfp_append_step_Z_output_bound_entry + S (fom_value_pfp_append_step_Z_output_bound) = S ((S (fom_index_pfp_append_step_Z_output_bound)) * x19)) /\ exists fom_beta_quotient_pfp_append_step_Z_output_bound_entry. x18 = fom_beta_quotient_pfp_append_step_Z_output_bound_entry * S ((S (fom_index_pfp_append_step_Z_output_bound)) * x19) + (fom_value_pfp_append_step_Z_output_bound))) /\ (exists fom_gap_pfp_append_step_Z_output_bound_value_bound. fom_gap_pfp_append_step_Z_output_bound_value_bound + S (fom_value_pfp_append_step_Z_output_bound) = p)))))))
  184. 0184specialize prime_field_polynomial_add_bounded (p)
  185. 0185specialize prime_field_polynomial_add_bounded (x14)
  186. 0186specialize prime_field_polynomial_add_bounded (x15)
  187. 0187specialize prime_field_polynomial_add_bounded (x16)
  188. 0188specialize prime_field_polynomial_add_bounded (x17)
  189. 0189specialize prime_field_polynomial_add_bounded (x18)
  190. 0190specialize prime_field_polynomial_add_bounded (x19)
  191. 0191specialize prime_field_polynomial_add_bounded (M+S K0)
  192. 0192apply prime_field_polynomial_add_bounded
  193. 0193exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  194. 0194cases hZbounds
  195. 0195cases hZbounds_right
  196. 0196have hZlength : exists W. (((((L)=0 \/ (M+S K0)=0) /\ (((W)=0)))) \/ (((~((L)=0)) /\ (((~((M+S K0)=0)) /\ (((L)+(M+S K0)=S (W))))))))
  197. 0197specialize polynomial_product_length_exists (L)
  198. 0198specialize polynomial_product_length_exists (M+S K0)
  199. 0199apply polynomial_product_length_exists
  200. 0200cases hZlength
  201. 0201have hAZ : exists mb mc. ((forall fom_index_pfp_append_step_AZleft. (exists fom_gap_pfp_append_step_AZleft_index_bound. fom_gap_pfp_append_step_AZleft_index_bound + S (fom_index_pfp_append_step_AZleft) = L) -> exists fom_value_pfp_append_step_AZleft. ((((exists fom_beta_height_pfp_append_step_AZleft_entry. fom_beta_height_pfp_append_step_AZleft_entry + S (fom_value_pfp_append_step_AZleft) = S ((S (fom_index_pfp_append_step_AZleft)) * ac)) /\ exists fom_beta_quotient_pfp_append_step_AZleft_entry. ab = fom_beta_quotient_pfp_append_step_AZleft_entry * S ((S (fom_index_pfp_append_step_AZleft)) * ac) + (fom_value_pfp_append_step_AZleft))) /\ (exists fom_gap_pfp_append_step_AZleft_value_bound. fom_gap_pfp_append_step_AZleft_value_bound + S (fom_value_pfp_append_step_AZleft) = p))) /\ (((forall fom_index_pfp_append_step_AZright. (exists fom_gap_pfp_append_step_AZright_index_bound. fom_gap_pfp_append_step_AZright_index_bound + S (fom_index_pfp_append_step_AZright) = M+S K0) -> exists fom_value_pfp_append_step_AZright. ((((exists fom_beta_height_pfp_append_step_AZright_entry. fom_beta_height_pfp_append_step_AZright_entry + S (fom_value_pfp_append_step_AZright) = S ((S (fom_index_pfp_append_step_AZright)) * x19)) /\ exists fom_beta_quotient_pfp_append_step_AZright_entry. x18 = fom_beta_quotient_pfp_append_step_AZright_entry * S ((S (fom_index_pfp_append_step_AZright)) * x19) + (fom_value_pfp_append_step_AZright))) /\ (exists fom_gap_pfp_append_step_AZright_value_bound. fom_gap_pfp_append_step_AZright_value_bound + S (fom_value_pfp_append_step_AZright) = p))) /\ (((((((L)=0 \/ (M+S K0)=0) /\ (((x20)=0)))) \/ (((~((L)=0)) /\ (((~((M+S K0)=0)) /\ (((L)+(M+S K0)=S (x20)))))))) /\ ((forall pfc_index_append_step_AZcoefficients. (exists pfa_gap_append_step_AZcoefficientsbound. pfa_gap_append_step_AZcoefficientsbound + S (pfc_index_append_step_AZcoefficients) = (x20)) -> exists pfc_value_append_step_AZcoefficients. ((((exists ff_h_pfp_append_step_AZcoefficientsentry. ff_h_pfp_append_step_AZcoefficientsentry + S (pfc_value_append_step_AZcoefficients) = S ((S (pfc_index_append_step_AZcoefficients)) * mc)) /\ exists ff_q_pfp_append_step_AZcoefficientsentry. mb = ff_q_pfp_append_step_AZcoefficientsentry * S ((S (pfc_index_append_step_AZcoefficients)) * mc) + (pfc_value_append_step_AZcoefficients))) /\ ((exists pfc_terms_code_append_step_AZcoefficientscoefficient pfc_terms_scale_append_step_AZcoefficientscoefficient pfc_natural_sum_append_step_AZcoefficientscoefficient. ((forall pfc_index_append_step_AZcoefficientscoefficientdiagonal. (exists pfa_gap_append_step_AZcoefficientscoefficientdiagonalbound. pfa_gap_append_step_AZcoefficientscoefficientdiagonalbound + S (pfc_index_append_step_AZcoefficientscoefficientdiagonal) = (S (pfc_index_append_step_AZcoefficients))) -> exists pfc_value_append_step_AZcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_append_step_AZcoefficientscoefficientdiagonalentry. ff_h_pfp_append_step_AZcoefficientscoefficientdiagonalentry + S (pfc_value_append_step_AZcoefficientscoefficientdiagonal) = S ((S (pfc_index_append_step_AZcoefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_AZcoefficientscoefficient)) /\ exists ff_q_pfp_append_step_AZcoefficientscoefficientdiagonalentry. pfc_terms_code_append_step_AZcoefficientscoefficient = ff_q_pfp_append_step_AZcoefficientscoefficientdiagonalentry * S ((S (pfc_index_append_step_AZcoefficientscoefficientdiagonal)) * pfc_terms_scale_append_step_AZcoefficientscoefficient) + (pfc_value_append_step_AZcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_append_step_AZcoefficientscoefficientdiagonalterm pfc_left_append_step_AZcoefficientscoefficientdiagonalterm pfc_right_append_step_AZcoefficientscoefficientdiagonalterm. (((pfc_index_append_step_AZcoefficientscoefficientdiagonal)+pfc_complement_append_step_AZcoefficientscoefficientdiagonalterm=(pfc_index_append_step_AZcoefficients)) /\ ((((((exists pfa_gap_append_step_AZcoefficientscoefficientdiagonaltermleftinside. pfa_gap_append_step_AZcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_append_step_AZcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_append_step_AZcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_append_step_AZcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_append_step_AZcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_append_step_AZcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_append_step_AZcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_append_step_AZcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_append_step_AZcoefficientscoefficientdiagonal)) * ac) + (pfc_left_append_step_AZcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_AZcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_append_step_AZcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_append_step_AZcoefficientscoefficientdiagonal)) /\ (((pfc_left_append_step_AZcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_append_step_AZcoefficientscoefficientdiagonaltermrightinside. pfa_gap_append_step_AZcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_append_step_AZcoefficientscoefficientdiagonalterm) = (M+S K0)) /\ ((((exists ff_h_pfp_append_step_AZcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_append_step_AZcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_append_step_AZcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_append_step_AZcoefficientscoefficientdiagonalterm)) * x19)) /\ exists ff_q_pfp_append_step_AZcoefficientscoefficientdiagonaltermrightentry. x18 = ff_q_pfp_append_step_AZcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_append_step_AZcoefficientscoefficientdiagonalterm)) * x19) + (pfc_right_append_step_AZcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_append_step_AZcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_append_step_AZcoefficientscoefficientdiagonaltermrightoutside+(M+S K0)=(pfc_complement_append_step_AZcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_append_step_AZcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_append_step_AZcoefficientscoefficientdiagonal)=pfc_left_append_step_AZcoefficientscoefficientdiagonalterm*pfc_right_append_step_AZcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_append_step_AZcoefficientscoefficientsum fs_v_pfc_append_step_AZcoefficientscoefficientsum. ((((exists fs_h_pfc_append_step_AZcoefficientscoefficientsum_body_start. fs_h_pfc_append_step_AZcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_append_step_AZcoefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_AZcoefficientscoefficientsum_body_start. fs_u_pfc_append_step_AZcoefficientscoefficientsum = fs_q_pfc_append_step_AZcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_append_step_AZcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_append_step_AZcoefficientscoefficientsum_body_terminal. fs_h_pfc_append_step_AZcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_append_step_AZcoefficientscoefficient) = S ((S (S (pfc_index_append_step_AZcoefficients))) * fs_v_pfc_append_step_AZcoefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_AZcoefficientscoefficientsum_body_terminal. fs_u_pfc_append_step_AZcoefficientscoefficientsum = fs_q_pfc_append_step_AZcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_append_step_AZcoefficients))) * fs_v_pfc_append_step_AZcoefficientscoefficientsum) + (pfc_natural_sum_append_step_AZcoefficientscoefficient))) /\ forall fs_i_pfc_append_step_AZcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_append_step_AZcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_append_step_AZcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_append_step_AZcoefficientscoefficientsum_body_steps = S (pfc_index_append_step_AZcoefficients)) -> exists fs_a_pfc_append_step_AZcoefficientscoefficientsum_body_steps fs_r_pfc_append_step_AZcoefficientscoefficientsum_body_steps fs_s_pfc_append_step_AZcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_append_step_AZcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_append_step_AZcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_append_step_AZcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_AZcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_AZcoefficientscoefficient)) /\ exists fs_q_pfc_append_step_AZcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_append_step_AZcoefficientscoefficient = fs_q_pfc_append_step_AZcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_append_step_AZcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_append_step_AZcoefficientscoefficient) + (fs_a_pfc_append_step_AZcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_AZcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_append_step_AZcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_append_step_AZcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_append_step_AZcoefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_AZcoefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_AZcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_append_step_AZcoefficientscoefficientsum = fs_q_pfc_append_step_AZcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_append_step_AZcoefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_AZcoefficientscoefficientsum) + (fs_r_pfc_append_step_AZcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_append_step_AZcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_append_step_AZcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_append_step_AZcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_append_step_AZcoefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_AZcoefficientscoefficientsum)) /\ exists fs_q_pfc_append_step_AZcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_append_step_AZcoefficientscoefficientsum = fs_q_pfc_append_step_AZcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_append_step_AZcoefficientscoefficientsum_body_steps)) * fs_v_pfc_append_step_AZcoefficientscoefficientsum) + (fs_s_pfc_append_step_AZcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_append_step_AZcoefficientscoefficientsum_body_steps = fs_r_pfc_append_step_AZcoefficientscoefficientsum_body_steps + fs_a_pfc_append_step_AZcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_append_step_AZcoefficientscoefficientresiduebound. pfa_gap_append_step_AZcoefficientscoefficientresiduebound + S (pfc_value_append_step_AZcoefficients) = (p)) /\ ((exists pfa_offset_left_append_step_AZcoefficientscoefficientresiduecongruence pfa_offset_right_append_step_AZcoefficientscoefficientresiduecongruence. (pfc_natural_sum_append_step_AZcoefficientscoefficient) + (p) * pfa_offset_left_append_step_AZcoefficientscoefficientresiduecongruence = (pfc_value_append_step_AZcoefficients) + (p) * pfa_offset_right_append_step_AZcoefficientscoefficientresiduecongruence))))))))))))))))))
  202. 0202specialize prime_field_polynomial_convolution_at_length_exists (p)
  203. 0203specialize prime_field_polynomial_convolution_at_length_exists (ab)
  204. 0204specialize prime_field_polynomial_convolution_at_length_exists (ac)
  205. 0205specialize prime_field_polynomial_convolution_at_length_exists (L)
  206. 0206specialize prime_field_polynomial_convolution_at_length_exists (x18)
  207. 0207specialize prime_field_polynomial_convolution_at_length_exists (x19)
  208. 0208specialize prime_field_polynomial_convolution_at_length_exists (M+S K0)
  209. 0209specialize prime_field_polynomial_convolution_at_length_exists (x20)
  210. 0210apply prime_field_polynomial_convolution_at_length_exists
  211. 0211exact hp0
  212. 0212exact hABcopy_left
  213. 0213exact hZbounds_right_right
  214. 0214exact hZlength_witness
  215. 0215cases hAZ
  216. 0216cases hAZ_witness
  217. 0217have hhelper_equal : forall pfrep_power_append_step_helper_equal pfrep_left_append_step_helper_equal pfrep_right_append_step_helper_equal. ((exists pfrep_position_append_step_helper_equalfirst. ((pfrep_position_append_step_helper_equalfirst+S (pfrep_power_append_step_helper_equal)=(x20)) /\ ((((exists ff_h_pfp_append_step_helper_equalfirstentry. ff_h_pfp_append_step_helper_equalfirstentry + S (pfrep_left_append_step_helper_equal) = S ((S (pfrep_position_append_step_helper_equalfirst)) * x22)) /\ exists ff_q_pfp_append_step_helper_equalfirstentry. x21 = ff_q_pfp_append_step_helper_equalfirstentry * S ((S (pfrep_position_append_step_helper_equalfirst)) * x22) + (pfrep_left_append_step_helper_equal)))))) \/ (((exists pfrep_gap_append_step_helper_equalfirstoutside. pfrep_gap_append_step_helper_equalfirstoutside+(x20)=(pfrep_power_append_step_helper_equal)) /\ (((pfrep_left_append_step_helper_equal)=0))))) -> ((exists pfrep_position_append_step_helper_equalsecond. ((pfrep_position_append_step_helper_equalsecond+S (pfrep_power_append_step_helper_equal)=(N+S V0)) /\ ((((exists ff_h_pfp_append_step_helper_equalsecondentry. ff_h_pfp_append_step_helper_equalsecondentry + S (pfrep_right_append_step_helper_equal) = S ((S (pfrep_position_append_step_helper_equalsecond)) * x9)) /\ exists ff_q_pfp_append_step_helper_equalsecondentry. x8 = ff_q_pfp_append_step_helper_equalsecondentry * S ((S (pfrep_position_append_step_helper_equalsecond)) * x9) + (pfrep_right_append_step_helper_equal)))))) \/ (((exists pfrep_gap_append_step_helper_equalsecondoutside. pfrep_gap_append_step_helper_equalsecondoutside+(N+S V0)=(pfrep_power_append_step_helper_equal)) /\ (((pfrep_right_append_step_helper_equal)=0))))) -> pfrep_left_append_step_helper_equal=pfrep_right_append_step_helper_equal
  218. 0218specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (p)
  219. 0219specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (c)
  220. 0220specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (ab)
  221. 0221specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (ac)
  222. 0222specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (L)
  223. 0223specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (bb)
  224. 0224specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (bc)
  225. 0225specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (M)
  226. 0226specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (pb)
  227. 0227specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (pc)
  228. 0228specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (N)
  229. 0229specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (q0b)
  230. 0230specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (q0c)
  231. 0231specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (K0)
  232. 0232specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (s0b)
  233. 0233specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (s0c)
  234. 0234specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (V0)
  235. 0235specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x10)
  236. 0236specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x11)
  237. 0237specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x12)
  238. 0238specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x13)
  239. 0239specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x14)
  240. 0240specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x15)
  241. 0241specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x16)
  242. 0242specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x17)
  243. 0243specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x18)
  244. 0244specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x19)
  245. 0245specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x21)
  246. 0246specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x22)
  247. 0247specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x20)
  248. 0248specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x)
  249. 0249specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x1)
  250. 0250specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x2)
  251. 0251specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x3)
  252. 0252specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x4)
  253. 0253specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x5)
  254. 0254specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x6)
  255. 0255specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x7)
  256. 0256specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x8)
  257. 0257specialize prime_field_polynomial_convolution_shift_scale_aligned_equivalent (x9)
  258. 0258apply prime_field_polynomial_convolution_shift_scale_aligned_equivalent
  259. 0259exact hp
  260. 0260exact hAB
  261. 0261exact hS0
  262. 0262exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left
  263. 0263exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  264. 0264exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  265. 0265exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  266. 0266exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  267. 0267exact hAZ_witness_witness
  268. 0268exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left
  269. 0269exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  270. 0270exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  271. 0271exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  272. 0272exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  273. 0273have hQ_append : forall pfrep_power_append_step_Q_append pfrep_left_append_step_Q_append pfrep_right_append_step_Q_append. ((exists pfrep_position_append_step_Q_appendfirst. ((pfrep_position_append_step_Q_appendfirst+S (pfrep_power_append_step_Q_append)=(K1)) /\ ((((exists ff_h_pfp_append_step_Q_appendfirstentry. ff_h_pfp_append_step_Q_appendfirstentry + S (pfrep_left_append_step_Q_append) = S ((S (pfrep_position_append_step_Q_appendfirst)) * q1c)) /\ exists ff_q_pfp_append_step_Q_appendfirstentry. q1b = ff_q_pfp_append_step_Q_appendfirstentry * S ((S (pfrep_position_append_step_Q_appendfirst)) * q1c) + (pfrep_left_append_step_Q_append)))))) \/ (((exists pfrep_gap_append_step_Q_appendfirstoutside. pfrep_gap_append_step_Q_appendfirstoutside+(K1)=(pfrep_power_append_step_Q_append)) /\ (((pfrep_left_append_step_Q_append)=0))))) -> ((exists pfrep_position_append_step_Q_appendsecond. ((pfrep_position_append_step_Q_appendsecond+S (pfrep_power_append_step_Q_append)=(M+S K0)) /\ ((((exists ff_h_pfp_append_step_Q_appendsecondentry. ff_h_pfp_append_step_Q_appendsecondentry + S (pfrep_right_append_step_Q_append) = S ((S (pfrep_position_append_step_Q_appendsecond)) * x19)) /\ exists ff_q_pfp_append_step_Q_appendsecondentry. x18 = ff_q_pfp_append_step_Q_appendsecondentry * S ((S (pfrep_position_append_step_Q_appendsecond)) * x19) + (pfrep_right_append_step_Q_append)))))) \/ (((exists pfrep_gap_append_step_Q_appendsecondoutside. pfrep_gap_append_step_Q_appendsecondoutside+(M+S K0)=(pfrep_power_append_step_Q_append)) /\ (((pfrep_right_append_step_Q_append)=0))))) -> pfrep_left_append_step_Q_append=pfrep_right_append_step_Q_append
  274. 0274specialize prime_field_polynomial_convolution_right_append_equivalent (p)
  275. 0275specialize prime_field_polynomial_convolution_right_append_equivalent (bb)
  276. 0276specialize prime_field_polynomial_convolution_right_append_equivalent (bc)
  277. 0277specialize prime_field_polynomial_convolution_right_append_equivalent (M)
  278. 0278specialize prime_field_polynomial_convolution_right_append_equivalent (cb)
  279. 0279specialize prime_field_polynomial_convolution_right_append_equivalent (cc)
  280. 0280specialize prime_field_polynomial_convolution_right_append_equivalent (J)
  281. 0281specialize prime_field_polynomial_convolution_right_append_equivalent (c)
  282. 0282specialize prime_field_polynomial_convolution_right_append_equivalent (db)
  283. 0283specialize prime_field_polynomial_convolution_right_append_equivalent (dc)
  284. 0284specialize prime_field_polynomial_convolution_right_append_equivalent (q0b)
  285. 0285specialize prime_field_polynomial_convolution_right_append_equivalent (q0c)
  286. 0286specialize prime_field_polynomial_convolution_right_append_equivalent (K0)
  287. 0287specialize prime_field_polynomial_convolution_right_append_equivalent (q1b)
  288. 0288specialize prime_field_polynomial_convolution_right_append_equivalent (q1c)
  289. 0289specialize prime_field_polynomial_convolution_right_append_equivalent (K1)
  290. 0290specialize prime_field_polynomial_convolution_right_append_equivalent (x10)
  291. 0291specialize prime_field_polynomial_convolution_right_append_equivalent (x11)
  292. 0292specialize prime_field_polynomial_convolution_right_append_equivalent (x12)
  293. 0293specialize prime_field_polynomial_convolution_right_append_equivalent (x13)
  294. 0294specialize prime_field_polynomial_convolution_right_append_equivalent (x14)
  295. 0295specialize prime_field_polynomial_convolution_right_append_equivalent (x15)
  296. 0296specialize prime_field_polynomial_convolution_right_append_equivalent (x16)
  297. 0297specialize prime_field_polynomial_convolution_right_append_equivalent (x17)
  298. 0298specialize prime_field_polynomial_convolution_right_append_equivalent (x18)
  299. 0299specialize prime_field_polynomial_convolution_right_append_equivalent (x19)
  300. 0300apply prime_field_polynomial_convolution_right_append_equivalent
  301. 0301exact hp
  302. 0302exact hprefix
  303. 0303exact hlast
  304. 0304exact hQ0
  305. 0305exact hQ1
  306. 0306exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left
  307. 0307exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  308. 0308exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  309. 0309exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  310. 0310exact hZalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  311. 0311have hS_transport : forall pfrep_power_append_step_S_transport pfrep_left_append_step_S_transport pfrep_right_append_step_S_transport. ((exists pfrep_position_append_step_S_transportfirst. ((pfrep_position_append_step_S_transportfirst+S (pfrep_power_append_step_S_transport)=(V1)) /\ ((((exists ff_h_pfp_append_step_S_transportfirstentry. ff_h_pfp_append_step_S_transportfirstentry + S (pfrep_left_append_step_S_transport) = S ((S (pfrep_position_append_step_S_transportfirst)) * s1c)) /\ exists ff_q_pfp_append_step_S_transportfirstentry. s1b = ff_q_pfp_append_step_S_transportfirstentry * S ((S (pfrep_position_append_step_S_transportfirst)) * s1c) + (pfrep_left_append_step_S_transport)))))) \/ (((exists pfrep_gap_append_step_S_transportfirstoutside. pfrep_gap_append_step_S_transportfirstoutside+(V1)=(pfrep_power_append_step_S_transport)) /\ (((pfrep_left_append_step_S_transport)=0))))) -> ((exists pfrep_position_append_step_S_transportsecond. ((pfrep_position_append_step_S_transportsecond+S (pfrep_power_append_step_S_transport)=(x20)) /\ ((((exists ff_h_pfp_append_step_S_transportsecondentry. ff_h_pfp_append_step_S_transportsecondentry + S (pfrep_right_append_step_S_transport) = S ((S (pfrep_position_append_step_S_transportsecond)) * x22)) /\ exists ff_q_pfp_append_step_S_transportsecondentry. x21 = ff_q_pfp_append_step_S_transportsecondentry * S ((S (pfrep_position_append_step_S_transportsecond)) * x22) + (pfrep_right_append_step_S_transport)))))) \/ (((exists pfrep_gap_append_step_S_transportsecondoutside. pfrep_gap_append_step_S_transportsecondoutside+(x20)=(pfrep_power_append_step_S_transport)) /\ (((pfrep_right_append_step_S_transport)=0))))) -> pfrep_left_append_step_S_transport=pfrep_right_append_step_S_transport
  312. 0312specialize prime_field_polynomial_convolution_equivalent_congruent_right (p)
  313. 0313specialize prime_field_polynomial_convolution_equivalent_congruent_right (ab)
  314. 0314specialize prime_field_polynomial_convolution_equivalent_congruent_right (ac)
  315. 0315specialize prime_field_polynomial_convolution_equivalent_congruent_right (L)
  316. 0316specialize prime_field_polynomial_convolution_equivalent_congruent_right (q1b)
  317. 0317specialize prime_field_polynomial_convolution_equivalent_congruent_right (q1c)
  318. 0318specialize prime_field_polynomial_convolution_equivalent_congruent_right (K1)
  319. 0319specialize prime_field_polynomial_convolution_equivalent_congruent_right (s1b)
  320. 0320specialize prime_field_polynomial_convolution_equivalent_congruent_right (s1c)
  321. 0321specialize prime_field_polynomial_convolution_equivalent_congruent_right (V1)
  322. 0322specialize prime_field_polynomial_convolution_equivalent_congruent_right (x18)
  323. 0323specialize prime_field_polynomial_convolution_equivalent_congruent_right (x19)
  324. 0324specialize prime_field_polynomial_convolution_equivalent_congruent_right (M+S K0)
  325. 0325specialize prime_field_polynomial_convolution_equivalent_congruent_right (x21)
  326. 0326specialize prime_field_polynomial_convolution_equivalent_congruent_right (x22)
  327. 0327specialize prime_field_polynomial_convolution_equivalent_congruent_right (x20)
  328. 0328apply prime_field_polynomial_convolution_equivalent_congruent_right
  329. 0329exact hp0
  330. 0330exact hQ_append
  331. 0331exact hS1
  332. 0332exact hAZ_witness_witness
  333. 0333specialize prime_field_polynomial_equivalent_transitive (s1b)
  334. 0334specialize prime_field_polynomial_equivalent_transitive (s1c)
  335. 0335specialize prime_field_polynomial_equivalent_transitive (V1)
  336. 0336specialize prime_field_polynomial_equivalent_transitive (x21)
  337. 0337specialize prime_field_polynomial_equivalent_transitive (x22)
  338. 0338specialize prime_field_polynomial_equivalent_transitive (x20)
  339. 0339specialize prime_field_polynomial_equivalent_transitive (x8)
  340. 0340specialize prime_field_polynomial_equivalent_transitive (x9)
  341. 0341specialize prime_field_polynomial_equivalent_transitive (N+S V0)
  342. 0342apply prime_field_polynomial_equivalent_transitive
  343. 0343exact hS_transport
  344. 0344exact hhelper_equal
  345. 0345have hR_total : forall pfrep_power_append_step_R_total pfrep_left_append_step_R_total pfrep_right_append_step_R_total. ((exists pfrep_position_append_step_R_totalfirst. ((pfrep_position_append_step_R_totalfirst+S (pfrep_power_append_step_R_total)=(U1)) /\ ((((exists ff_h_pfp_append_step_R_totalfirstentry. ff_h_pfp_append_step_R_totalfirstentry + S (pfrep_left_append_step_R_total) = S ((S (pfrep_position_append_step_R_totalfirst)) * r1c)) /\ exists ff_q_pfp_append_step_R_totalfirstentry. r1b = ff_q_pfp_append_step_R_totalfirstentry * S ((S (pfrep_position_append_step_R_totalfirst)) * r1c) + (pfrep_left_append_step_R_total)))))) \/ (((exists pfrep_gap_append_step_R_totalfirstoutside. pfrep_gap_append_step_R_totalfirstoutside+(U1)=(pfrep_power_append_step_R_total)) /\ (((pfrep_left_append_step_R_total)=0))))) -> ((exists pfrep_position_append_step_R_totalsecond. ((pfrep_position_append_step_R_totalsecond+S (pfrep_power_append_step_R_total)=(N+S V0)) /\ ((((exists ff_h_pfp_append_step_R_totalsecondentry. ff_h_pfp_append_step_R_totalsecondentry + S (pfrep_right_append_step_R_total) = S ((S (pfrep_position_append_step_R_totalsecond)) * x9)) /\ exists ff_q_pfp_append_step_R_totalsecondentry. x8 = ff_q_pfp_append_step_R_totalsecondentry * S ((S (pfrep_position_append_step_R_totalsecond)) * x9) + (pfrep_right_append_step_R_total)))))) \/ (((exists pfrep_gap_append_step_R_totalsecondoutside. pfrep_gap_append_step_R_totalsecondoutside+(N+S V0)=(pfrep_power_append_step_R_total)) /\ (((pfrep_right_append_step_R_total)=0))))) -> pfrep_left_append_step_R_total=pfrep_right_append_step_R_total
  346. 0346have hY0align : exists ub uc vb vc UPb UPc VPb VPc zb zc. ((((forall mdr_i_pfp_append_step_hY0align_shiftprefix mdr_a_pfp_append_step_hY0align_shiftprefix. (exists mdr_gap_pfp_append_step_hY0align_shiftprefixb. mdr_gap_pfp_append_step_hY0align_shiftprefixb + S (mdr_i_pfp_append_step_hY0align_shiftprefix) = (U0)) -> (((exists ff_h_mdr_pfp_append_step_hY0align_shiftprefixo. ff_h_mdr_pfp_append_step_hY0align_shiftprefixo + S (mdr_a_pfp_append_step_hY0align_shiftprefix) = S ((S (mdr_i_pfp_append_step_hY0align_shiftprefix)) * r0c)) /\ exists ff_q_mdr_pfp_append_step_hY0align_shiftprefixo. r0b = ff_q_mdr_pfp_append_step_hY0align_shiftprefixo * S ((S (mdr_i_pfp_append_step_hY0align_shiftprefix)) * r0c) + (mdr_a_pfp_append_step_hY0align_shiftprefix))) -> (((exists ff_h_mdr_pfp_append_step_hY0align_shiftprefixn. ff_h_mdr_pfp_append_step_hY0align_shiftprefixn + S (mdr_a_pfp_append_step_hY0align_shiftprefix) = S ((S (mdr_i_pfp_append_step_hY0align_shiftprefix)) * uc)) /\ exists ff_q_mdr_pfp_append_step_hY0align_shiftprefixn. ub = ff_q_mdr_pfp_append_step_hY0align_shiftprefixn * S ((S (mdr_i_pfp_append_step_hY0align_shiftprefix)) * uc) + (mdr_a_pfp_append_step_hY0align_shiftprefix)))) /\ ((((exists ff_h_pfp_append_step_hY0align_shiftzero. ff_h_pfp_append_step_hY0align_shiftzero + S (0) = S ((S (U0)) * uc)) /\ exists ff_q_pfp_append_step_hY0align_shiftzero. ub = ff_q_pfp_append_step_hY0align_shiftzero * S ((S (U0)) * uc) + (0)))))) /\ (((((exists pfa_gap_append_step_hY0align_scalescalar. pfa_gap_append_step_hY0align_scalescalar + S (c) = (p)) /\ ((forall pfp_index_append_step_hY0align_scale. (exists pfa_gap_append_step_hY0align_scaleindex. pfa_gap_append_step_hY0align_scaleindex + S (pfp_index_append_step_hY0align_scale) = (N)) -> exists pfp_source_append_step_hY0align_scale pfp_value_append_step_hY0align_scale. ((((exists ff_h_pfp_append_step_hY0align_scalesource. ff_h_pfp_append_step_hY0align_scalesource + S (pfp_source_append_step_hY0align_scale) = S ((S (pfp_index_append_step_hY0align_scale)) * pc)) /\ exists ff_q_pfp_append_step_hY0align_scalesource. pb = ff_q_pfp_append_step_hY0align_scalesource * S ((S (pfp_index_append_step_hY0align_scale)) * pc) + (pfp_source_append_step_hY0align_scale))) /\ (((((exists ff_h_pfp_append_step_hY0align_scaletarget. ff_h_pfp_append_step_hY0align_scaletarget + S (pfp_value_append_step_hY0align_scale) = S ((S (pfp_index_append_step_hY0align_scale)) * vc)) /\ exists ff_q_pfp_append_step_hY0align_scaletarget. vb = ff_q_pfp_append_step_hY0align_scaletarget * S ((S (pfp_index_append_step_hY0align_scale)) * vc) + (pfp_value_append_step_hY0align_scale))) /\ ((((exists pfa_gap_append_step_hY0align_scaleoperationleft. pfa_gap_append_step_hY0align_scaleoperationleft + S (c) = (p)) /\ (((exists pfa_gap_append_step_hY0align_scaleoperationright. pfa_gap_append_step_hY0align_scaleoperationright + S (pfp_source_append_step_hY0align_scale) = (p)) /\ ((((exists pfa_gap_append_step_hY0align_scaleoperationresultbound. pfa_gap_append_step_hY0align_scaleoperationresultbound + S (pfp_value_append_step_hY0align_scale) = (p)) /\ ((exists pfa_offset_left_append_step_hY0align_scaleoperationresultcongruence pfa_offset_right_append_step_hY0align_scaleoperationresultcongruence. ((c) * (pfp_source_append_step_hY0align_scale)) + (p) * pfa_offset_left_append_step_hY0align_scaleoperationresultcongruence = (pfp_value_append_step_hY0align_scale) + (p) * pfa_offset_right_append_step_hY0align_scaleoperationresultcongruence))))))))))))))))) /\ (((((forall pfp_repeat_index_append_step_hY0align_leftzeros. (exists pfa_gap_append_step_hY0align_leftzerosindex. pfa_gap_append_step_hY0align_leftzerosindex + S (pfp_repeat_index_append_step_hY0align_leftzeros) = (N)) -> (((exists ff_h_pfp_append_step_hY0align_leftzerosentry. ff_h_pfp_append_step_hY0align_leftzerosentry + S (0) = S ((S (pfp_repeat_index_append_step_hY0align_leftzeros)) * UPc)) /\ exists ff_q_pfp_append_step_hY0align_leftzerosentry. UPb = ff_q_pfp_append_step_hY0align_leftzerosentry * S ((S (pfp_repeat_index_append_step_hY0align_leftzeros)) * UPc) + (0)))) /\ ((forall pfrep_index_append_step_hY0align_left pfrep_value_append_step_hY0align_left. (exists pfa_gap_append_step_hY0align_leftbound. pfa_gap_append_step_hY0align_leftbound + S (pfrep_index_append_step_hY0align_left) = (S U0)) -> (((exists ff_h_pfp_append_step_hY0align_leftinput. ff_h_pfp_append_step_hY0align_leftinput + S (pfrep_value_append_step_hY0align_left) = S ((S (pfrep_index_append_step_hY0align_left)) * uc)) /\ exists ff_q_pfp_append_step_hY0align_leftinput. ub = ff_q_pfp_append_step_hY0align_leftinput * S ((S (pfrep_index_append_step_hY0align_left)) * uc) + (pfrep_value_append_step_hY0align_left))) -> (((exists ff_h_pfp_append_step_hY0align_leftoutput. ff_h_pfp_append_step_hY0align_leftoutput + S (pfrep_value_append_step_hY0align_left) = S ((S ((N)+pfrep_index_append_step_hY0align_left)) * UPc)) /\ exists ff_q_pfp_append_step_hY0align_leftoutput. UPb = ff_q_pfp_append_step_hY0align_leftoutput * S ((S ((N)+pfrep_index_append_step_hY0align_left)) * UPc) + (pfrep_value_append_step_hY0align_left))))))) /\ (((((forall pfp_repeat_index_append_step_hY0align_rightzeros. (exists pfa_gap_append_step_hY0align_rightzerosindex. pfa_gap_append_step_hY0align_rightzerosindex + S (pfp_repeat_index_append_step_hY0align_rightzeros) = (S U0)) -> (((exists ff_h_pfp_append_step_hY0align_rightzerosentry. ff_h_pfp_append_step_hY0align_rightzerosentry + S (0) = S ((S (pfp_repeat_index_append_step_hY0align_rightzeros)) * VPc)) /\ exists ff_q_pfp_append_step_hY0align_rightzerosentry. VPb = ff_q_pfp_append_step_hY0align_rightzerosentry * S ((S (pfp_repeat_index_append_step_hY0align_rightzeros)) * VPc) + (0)))) /\ ((forall pfrep_index_append_step_hY0align_right pfrep_value_append_step_hY0align_right. (exists pfa_gap_append_step_hY0align_rightbound. pfa_gap_append_step_hY0align_rightbound + S (pfrep_index_append_step_hY0align_right) = (N)) -> (((exists ff_h_pfp_append_step_hY0align_rightinput. ff_h_pfp_append_step_hY0align_rightinput + S (pfrep_value_append_step_hY0align_right) = S ((S (pfrep_index_append_step_hY0align_right)) * vc)) /\ exists ff_q_pfp_append_step_hY0align_rightinput. vb = ff_q_pfp_append_step_hY0align_rightinput * S ((S (pfrep_index_append_step_hY0align_right)) * vc) + (pfrep_value_append_step_hY0align_right))) -> (((exists ff_h_pfp_append_step_hY0align_rightoutput. ff_h_pfp_append_step_hY0align_rightoutput + S (pfrep_value_append_step_hY0align_right) = S ((S ((S U0)+pfrep_index_append_step_hY0align_right)) * VPc)) /\ exists ff_q_pfp_append_step_hY0align_rightoutput. VPb = ff_q_pfp_append_step_hY0align_rightoutput * S ((S ((S U0)+pfrep_index_append_step_hY0align_right)) * VPc) + (pfrep_value_append_step_hY0align_right))))))) /\ ((forall pfp_index_append_step_hY0align_sum. (exists pfa_gap_append_step_hY0align_sumindex. pfa_gap_append_step_hY0align_sumindex + S (pfp_index_append_step_hY0align_sum) = (N+S U0)) -> exists pfp_left_append_step_hY0align_sum pfp_right_append_step_hY0align_sum pfp_value_append_step_hY0align_sum. ((((exists ff_h_pfp_append_step_hY0align_sumleft. ff_h_pfp_append_step_hY0align_sumleft + S (pfp_left_append_step_hY0align_sum) = S ((S (pfp_index_append_step_hY0align_sum)) * UPc)) /\ exists ff_q_pfp_append_step_hY0align_sumleft. UPb = ff_q_pfp_append_step_hY0align_sumleft * S ((S (pfp_index_append_step_hY0align_sum)) * UPc) + (pfp_left_append_step_hY0align_sum))) /\ (((((exists ff_h_pfp_append_step_hY0align_sumright. ff_h_pfp_append_step_hY0align_sumright + S (pfp_right_append_step_hY0align_sum) = S ((S (pfp_index_append_step_hY0align_sum)) * VPc)) /\ exists ff_q_pfp_append_step_hY0align_sumright. VPb = ff_q_pfp_append_step_hY0align_sumright * S ((S (pfp_index_append_step_hY0align_sum)) * VPc) + (pfp_right_append_step_hY0align_sum))) /\ (((((exists ff_h_pfp_append_step_hY0align_sumtarget. ff_h_pfp_append_step_hY0align_sumtarget + S (pfp_value_append_step_hY0align_sum) = S ((S (pfp_index_append_step_hY0align_sum)) * zc)) /\ exists ff_q_pfp_append_step_hY0align_sumtarget. zb = ff_q_pfp_append_step_hY0align_sumtarget * S ((S (pfp_index_append_step_hY0align_sum)) * zc) + (pfp_value_append_step_hY0align_sum))) /\ ((((exists pfa_gap_append_step_hY0align_sumoperationleft. pfa_gap_append_step_hY0align_sumoperationleft + S (pfp_left_append_step_hY0align_sum) = (p)) /\ (((exists pfa_gap_append_step_hY0align_sumoperationright. pfa_gap_append_step_hY0align_sumoperationright + S (pfp_right_append_step_hY0align_sum) = (p)) /\ ((((exists pfa_gap_append_step_hY0align_sumoperationresultbound. pfa_gap_append_step_hY0align_sumoperationresultbound + S (pfp_value_append_step_hY0align_sum) = (p)) /\ ((exists pfa_offset_left_append_step_hY0align_sumoperationresultcongruence pfa_offset_right_append_step_hY0align_sumoperationresultcongruence. ((pfp_left_append_step_hY0align_sum) + (pfp_right_append_step_hY0align_sum)) + (p) * pfa_offset_left_append_step_hY0align_sumoperationresultcongruence = (pfp_value_append_step_hY0align_sum) + (p) * pfa_offset_right_append_step_hY0align_sumoperationresultcongruence))))))))))))))))))))))))
  347. 0347specialize prime_field_polynomial_shift_scale_aligned_sum_exists (p)
  348. 0348specialize prime_field_polynomial_shift_scale_aligned_sum_exists (c)
  349. 0349specialize prime_field_polynomial_shift_scale_aligned_sum_exists (pb)
  350. 0350specialize prime_field_polynomial_shift_scale_aligned_sum_exists (pc)
  351. 0351specialize prime_field_polynomial_shift_scale_aligned_sum_exists (N)
  352. 0352specialize prime_field_polynomial_shift_scale_aligned_sum_exists (r0b)
  353. 0353specialize prime_field_polynomial_shift_scale_aligned_sum_exists (r0c)
  354. 0354specialize prime_field_polynomial_shift_scale_aligned_sum_exists (U0)
  355. 0355apply prime_field_polynomial_shift_scale_aligned_sum_exists
  356. 0356exact hp
  357. 0357exact hc
  358. 0358exact hPbound
  359. 0359exact hR0bound
  360. 0360cases hY0align
  361. 0361cases hY0align_witness
  362. 0362cases hY0align_witness_witness
  363. 0363cases hY0align_witness_witness_witness
  364. 0364cases hY0align_witness_witness_witness_witness
  365. 0365cases hY0align_witness_witness_witness_witness_witness
  366. 0366cases hY0align_witness_witness_witness_witness_witness_witness
  367. 0367cases hY0align_witness_witness_witness_witness_witness_witness_witness
  368. 0368cases hY0align_witness_witness_witness_witness_witness_witness_witness_witness
  369. 0369cases hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness
  370. 0370cases hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness
  371. 0371cases hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right
  372. 0372cases hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right
  373. 0373cases hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right
  374. 0374have hR_append : forall pfrep_power_append_step_R_append pfrep_left_append_step_R_append pfrep_right_append_step_R_append. ((exists pfrep_position_append_step_R_appendfirst. ((pfrep_position_append_step_R_appendfirst+S (pfrep_power_append_step_R_append)=(U1)) /\ ((((exists ff_h_pfp_append_step_R_appendfirstentry. ff_h_pfp_append_step_R_appendfirstentry + S (pfrep_left_append_step_R_append) = S ((S (pfrep_position_append_step_R_appendfirst)) * r1c)) /\ exists ff_q_pfp_append_step_R_appendfirstentry. r1b = ff_q_pfp_append_step_R_appendfirstentry * S ((S (pfrep_position_append_step_R_appendfirst)) * r1c) + (pfrep_left_append_step_R_append)))))) \/ (((exists pfrep_gap_append_step_R_appendfirstoutside. pfrep_gap_append_step_R_appendfirstoutside+(U1)=(pfrep_power_append_step_R_append)) /\ (((pfrep_left_append_step_R_append)=0))))) -> ((exists pfrep_position_append_step_R_appendsecond. ((pfrep_position_append_step_R_appendsecond+S (pfrep_power_append_step_R_append)=(N+S U0)) /\ ((((exists ff_h_pfp_append_step_R_appendsecondentry. ff_h_pfp_append_step_R_appendsecondentry + S (pfrep_right_append_step_R_append) = S ((S (pfrep_position_append_step_R_appendsecond)) * x19)) /\ exists ff_q_pfp_append_step_R_appendsecondentry. x18 = ff_q_pfp_append_step_R_appendsecondentry * S ((S (pfrep_position_append_step_R_appendsecond)) * x19) + (pfrep_right_append_step_R_append)))))) \/ (((exists pfrep_gap_append_step_R_appendsecondoutside. pfrep_gap_append_step_R_appendsecondoutside+(N+S U0)=(pfrep_power_append_step_R_append)) /\ (((pfrep_right_append_step_R_append)=0))))) -> pfrep_left_append_step_R_append=pfrep_right_append_step_R_append
  375. 0375specialize prime_field_polynomial_convolution_right_append_equivalent (p)
  376. 0376specialize prime_field_polynomial_convolution_right_append_equivalent (pb)
  377. 0377specialize prime_field_polynomial_convolution_right_append_equivalent (pc)
  378. 0378specialize prime_field_polynomial_convolution_right_append_equivalent (N)
  379. 0379specialize prime_field_polynomial_convolution_right_append_equivalent (cb)
  380. 0380specialize prime_field_polynomial_convolution_right_append_equivalent (cc)
  381. 0381specialize prime_field_polynomial_convolution_right_append_equivalent (J)
  382. 0382specialize prime_field_polynomial_convolution_right_append_equivalent (c)
  383. 0383specialize prime_field_polynomial_convolution_right_append_equivalent (db)
  384. 0384specialize prime_field_polynomial_convolution_right_append_equivalent (dc)
  385. 0385specialize prime_field_polynomial_convolution_right_append_equivalent (r0b)
  386. 0386specialize prime_field_polynomial_convolution_right_append_equivalent (r0c)
  387. 0387specialize prime_field_polynomial_convolution_right_append_equivalent (U0)
  388. 0388specialize prime_field_polynomial_convolution_right_append_equivalent (r1b)
  389. 0389specialize prime_field_polynomial_convolution_right_append_equivalent (r1c)
  390. 0390specialize prime_field_polynomial_convolution_right_append_equivalent (U1)
  391. 0391specialize prime_field_polynomial_convolution_right_append_equivalent (x10)
  392. 0392specialize prime_field_polynomial_convolution_right_append_equivalent (x11)
  393. 0393specialize prime_field_polynomial_convolution_right_append_equivalent (x12)
  394. 0394specialize prime_field_polynomial_convolution_right_append_equivalent (x13)
  395. 0395specialize prime_field_polynomial_convolution_right_append_equivalent (x14)
  396. 0396specialize prime_field_polynomial_convolution_right_append_equivalent (x15)
  397. 0397specialize prime_field_polynomial_convolution_right_append_equivalent (x16)
  398. 0398specialize prime_field_polynomial_convolution_right_append_equivalent (x17)
  399. 0399specialize prime_field_polynomial_convolution_right_append_equivalent (x18)
  400. 0400specialize prime_field_polynomial_convolution_right_append_equivalent (x19)
  401. 0401apply prime_field_polynomial_convolution_right_append_equivalent
  402. 0402exact hp
  403. 0403exact hprefix
  404. 0404exact hlast
  405. 0405exact hR0
  406. 0406exact hR1
  407. 0407exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left
  408. 0408exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  409. 0409exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  410. 0410exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  411. 0411exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  412. 0412have haligned_equal : forall pfrep_power_append_step_aligned_induction pfrep_left_append_step_aligned_induction pfrep_right_append_step_aligned_induction. ((exists pfrep_position_append_step_aligned_inductionfirst. ((pfrep_position_append_step_aligned_inductionfirst+S (pfrep_power_append_step_aligned_induction)=(N+S U0)) /\ ((((exists ff_h_pfp_append_step_aligned_inductionfirstentry. ff_h_pfp_append_step_aligned_inductionfirstentry + S (pfrep_left_append_step_aligned_induction) = S ((S (pfrep_position_append_step_aligned_inductionfirst)) * x19)) /\ exists ff_q_pfp_append_step_aligned_inductionfirstentry. x18 = ff_q_pfp_append_step_aligned_inductionfirstentry * S ((S (pfrep_position_append_step_aligned_inductionfirst)) * x19) + (pfrep_left_append_step_aligned_induction)))))) \/ (((exists pfrep_gap_append_step_aligned_inductionfirstoutside. pfrep_gap_append_step_aligned_inductionfirstoutside+(N+S U0)=(pfrep_power_append_step_aligned_induction)) /\ (((pfrep_left_append_step_aligned_induction)=0))))) -> ((exists pfrep_position_append_step_aligned_inductionsecond. ((pfrep_position_append_step_aligned_inductionsecond+S (pfrep_power_append_step_aligned_induction)=(N+S V0)) /\ ((((exists ff_h_pfp_append_step_aligned_inductionsecondentry. ff_h_pfp_append_step_aligned_inductionsecondentry + S (pfrep_right_append_step_aligned_induction) = S ((S (pfrep_position_append_step_aligned_inductionsecond)) * x9)) /\ exists ff_q_pfp_append_step_aligned_inductionsecondentry. x8 = ff_q_pfp_append_step_aligned_inductionsecondentry * S ((S (pfrep_position_append_step_aligned_inductionsecond)) * x9) + (pfrep_right_append_step_aligned_induction)))))) \/ (((exists pfrep_gap_append_step_aligned_inductionsecondoutside. pfrep_gap_append_step_aligned_inductionsecondoutside+(N+S V0)=(pfrep_power_append_step_aligned_induction)) /\ (((pfrep_right_append_step_aligned_induction)=0))))) -> pfrep_left_append_step_aligned_induction=pfrep_right_append_step_aligned_induction
  413. 0413specialize prime_field_polynomial_shift_scale_aligned_congruent (p)
  414. 0414specialize prime_field_polynomial_shift_scale_aligned_congruent (c)
  415. 0415specialize prime_field_polynomial_shift_scale_aligned_congruent (pb)
  416. 0416specialize prime_field_polynomial_shift_scale_aligned_congruent (pc)
  417. 0417specialize prime_field_polynomial_shift_scale_aligned_congruent (N)
  418. 0418specialize prime_field_polynomial_shift_scale_aligned_congruent (r0b)
  419. 0419specialize prime_field_polynomial_shift_scale_aligned_congruent (r0c)
  420. 0420specialize prime_field_polynomial_shift_scale_aligned_congruent (U0)
  421. 0421specialize prime_field_polynomial_shift_scale_aligned_congruent (s0b)
  422. 0422specialize prime_field_polynomial_shift_scale_aligned_congruent (s0c)
  423. 0423specialize prime_field_polynomial_shift_scale_aligned_congruent (V0)
  424. 0424specialize prime_field_polynomial_shift_scale_aligned_congruent (x10)
  425. 0425specialize prime_field_polynomial_shift_scale_aligned_congruent (x11)
  426. 0426specialize prime_field_polynomial_shift_scale_aligned_congruent (x12)
  427. 0427specialize prime_field_polynomial_shift_scale_aligned_congruent (x13)
  428. 0428specialize prime_field_polynomial_shift_scale_aligned_congruent (x14)
  429. 0429specialize prime_field_polynomial_shift_scale_aligned_congruent (x15)
  430. 0430specialize prime_field_polynomial_shift_scale_aligned_congruent (x16)
  431. 0431specialize prime_field_polynomial_shift_scale_aligned_congruent (x17)
  432. 0432specialize prime_field_polynomial_shift_scale_aligned_congruent (x18)
  433. 0433specialize prime_field_polynomial_shift_scale_aligned_congruent (x19)
  434. 0434specialize prime_field_polynomial_shift_scale_aligned_congruent (x)
  435. 0435specialize prime_field_polynomial_shift_scale_aligned_congruent (x1)
  436. 0436specialize prime_field_polynomial_shift_scale_aligned_congruent (x2)
  437. 0437specialize prime_field_polynomial_shift_scale_aligned_congruent (x3)
  438. 0438specialize prime_field_polynomial_shift_scale_aligned_congruent (x4)
  439. 0439specialize prime_field_polynomial_shift_scale_aligned_congruent (x5)
  440. 0440specialize prime_field_polynomial_shift_scale_aligned_congruent (x6)
  441. 0441specialize prime_field_polynomial_shift_scale_aligned_congruent (x7)
  442. 0442specialize prime_field_polynomial_shift_scale_aligned_congruent (x8)
  443. 0443specialize prime_field_polynomial_shift_scale_aligned_congruent (x9)
  444. 0444apply prime_field_polynomial_shift_scale_aligned_congruent
  445. 0445exact hp
  446. 0446exact hIH
  447. 0447exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left
  448. 0448exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  449. 0449exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  450. 0450exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  451. 0451exact hY0align_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  452. 0452exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left
  453. 0453exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
  454. 0454exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
  455. 0455exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left
  456. 0456exact hYalign_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right
  457. 0457specialize prime_field_polynomial_equivalent_transitive (r1b)
  458. 0458specialize prime_field_polynomial_equivalent_transitive (r1c)
  459. 0459specialize prime_field_polynomial_equivalent_transitive (U1)
  460. 0460specialize prime_field_polynomial_equivalent_transitive (x18)
  461. 0461specialize prime_field_polynomial_equivalent_transitive (x19)
  462. 0462specialize prime_field_polynomial_equivalent_transitive (N+S U0)
  463. 0463specialize prime_field_polynomial_equivalent_transitive (x8)
  464. 0464specialize prime_field_polynomial_equivalent_transitive (x9)
  465. 0465specialize prime_field_polynomial_equivalent_transitive (N+S V0)
  466. 0466apply prime_field_polynomial_equivalent_transitive
  467. 0467exact hR_append
  468. 0468exact haligned_equal
  469. 0469specialize prime_field_polynomial_equivalent_transitive (r1b)
  470. 0470specialize prime_field_polynomial_equivalent_transitive (r1c)
  471. 0471specialize prime_field_polynomial_equivalent_transitive (U1)
  472. 0472specialize prime_field_polynomial_equivalent_transitive (x8)
  473. 0473specialize prime_field_polynomial_equivalent_transitive (x9)
  474. 0474specialize prime_field_polynomial_equivalent_transitive (N+S V0)
  475. 0475specialize prime_field_polynomial_equivalent_transitive (s1b)
  476. 0476specialize prime_field_polynomial_equivalent_transitive (s1c)
  477. 0477specialize prime_field_polynomial_equivalent_transitive (V1)
  478. 0478apply prime_field_polynomial_equivalent_transitive
  479. 0479exact hR_total
  480. 0480specialize prime_field_polynomial_equivalent_symmetric (s1b)
  481. 0481specialize prime_field_polynomial_equivalent_symmetric (s1c)
  482. 0482specialize prime_field_polynomial_equivalent_symmetric (V1)
  483. 0483specialize prime_field_polynomial_equivalent_symmetric (x8)
  484. 0484specialize prime_field_polynomial_equivalent_symmetric (x9)
  485. 0485specialize prime_field_polynomial_equivalent_symmetric (N+S V0)
  486. 0486apply prime_field_polynomial_equivalent_symmetric
  487. 0487exact hS_total