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 k ab ac L bb bc M cb cc N. (~(p=0)) -> (exists pfa_gap_scalar_exists_scalar. pfa_gap_scalar_exists_scalar + S (k) = (p)) -> (((forall fom_index_pfp_scalar_exists_originalleft. (exists fom_gap_pfp_scalar_exists_originalleft_index_bound. fom_gap_pfp_scalar_exists_originalleft_index_bound + S (fom_index_pfp_scalar_exists_originalleft) = L) -> exists fom_value_pfp_scalar_exists_originalleft. ((((exists fom_beta_height_pfp_scalar_exists_originalleft_entry. fom_beta_height_pfp_scalar_exists_originalleft_entry + S (fom_value_pfp_scalar_exists_originalleft) = S ((S (fom_index_pfp_scalar_exists_originalleft)) * ac)) /\ exists fom_beta_quotient_pfp_scalar_exists_originalleft_entry. ab = fom_beta_quotient_pfp_scalar_exists_originalleft_entry * S ((S (fom_index_pfp_scalar_exists_originalleft)) * ac) + (fom_value_pfp_scalar_exists_originalleft))) /\ (exists fom_gap_pfp_scalar_exists_originalleft_value_bound. fom_gap_pfp_scalar_exists_originalleft_value_bound + S (fom_value_pfp_scalar_exists_originalleft) = p))) /\ (((forall fom_index_pfp_scalar_exists_originalright. (exists fom_gap_pfp_scalar_exists_originalright_index_bound. fom_gap_pfp_scalar_exists_originalright_index_bound + S (fom_index_pfp_scalar_exists_originalright) = M) -> exists fom_value_pfp_scalar_exists_originalright. ((((exists fom_beta_height_pfp_scalar_exists_originalright_entry. fom_beta_height_pfp_scalar_exists_originalright_entry + S (fom_value_pfp_scalar_exists_originalright) = S ((S (fom_index_pfp_scalar_exists_originalright)) * bc)) /\ exists fom_beta_quotient_pfp_scalar_exists_originalright_entry. bb = fom_beta_quotient_pfp_scalar_exists_originalright_entry * S ((S (fom_index_pfp_scalar_exists_originalright)) * bc) + (fom_value_pfp_scalar_exists_originalright))) /\ (exists fom_gap_pfp_scalar_exists_originalright_value_bound. fom_gap_pfp_scalar_exists_originalright_value_bound + S (fom_value_pfp_scalar_exists_originalright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_scalar_exists_originalcoefficients. (exists pfa_gap_scalar_exists_originalcoefficientsbound. pfa_gap_scalar_exists_originalcoefficientsbound + S (pfc_index_scalar_exists_originalcoefficients) = (N)) -> exists pfc_value_scalar_exists_originalcoefficients. ((((exists ff_h_pfp_scalar_exists_originalcoefficientsentry. ff_h_pfp_scalar_exists_originalcoefficientsentry + S (pfc_value_scalar_exists_originalcoefficients) = S ((S (pfc_index_scalar_exists_originalcoefficients)) * cc)) /\ exists ff_q_pfp_scalar_exists_originalcoefficientsentry. cb = ff_q_pfp_scalar_exists_originalcoefficientsentry * S ((S (pfc_index_scalar_exists_originalcoefficients)) * cc) + (pfc_value_scalar_exists_originalcoefficients))) /\ ((exists pfc_terms_code_scalar_exists_originalcoefficientscoefficient pfc_terms_scale_scalar_exists_originalcoefficientscoefficient pfc_natural_sum_scalar_exists_originalcoefficientscoefficient. ((forall pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal. (exists pfa_gap_scalar_exists_originalcoefficientscoefficientdiagonalbound. pfa_gap_scalar_exists_originalcoefficientscoefficientdiagonalbound + S (pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal) = (S (pfc_index_scalar_exists_originalcoefficients))) -> exists pfc_value_scalar_exists_originalcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_scalar_exists_originalcoefficientscoefficientdiagonalentry. ff_h_pfp_scalar_exists_originalcoefficientscoefficientdiagonalentry + S (pfc_value_scalar_exists_originalcoefficientscoefficientdiagonal) = S ((S (pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal)) * pfc_terms_scale_scalar_exists_originalcoefficientscoefficient)) /\ exists ff_q_pfp_scalar_exists_originalcoefficientscoefficientdiagonalentry. pfc_terms_code_scalar_exists_originalcoefficientscoefficient = ff_q_pfp_scalar_exists_originalcoefficientscoefficientdiagonalentry * S ((S (pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal)) * pfc_terms_scale_scalar_exists_originalcoefficientscoefficient) + (pfc_value_scalar_exists_originalcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_scalar_exists_originalcoefficientscoefficientdiagonalterm pfc_left_scalar_exists_originalcoefficientscoefficientdiagonalterm pfc_right_scalar_exists_originalcoefficientscoefficientdiagonalterm. (((pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal)+pfc_complement_scalar_exists_originalcoefficientscoefficientdiagonalterm=(pfc_index_scalar_exists_originalcoefficients)) /\ ((((((exists pfa_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermleftinside. pfa_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_scalar_exists_originalcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal)) * ac) + (pfc_left_scalar_exists_originalcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal)) /\ (((pfc_left_scalar_exists_originalcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermrightinside. pfa_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_scalar_exists_originalcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_scalar_exists_originalcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_scalar_exists_originalcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_scalar_exists_originalcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_scalar_exists_originalcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_scalar_exists_originalcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_scalar_exists_originalcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_scalar_exists_originalcoefficientscoefficientdiagonal)=pfc_left_scalar_exists_originalcoefficientscoefficientdiagonalterm*pfc_right_scalar_exists_originalcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_scalar_exists_originalcoefficientscoefficientsum fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum. ((((exists fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_start. fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_start. fs_u_pfc_scalar_exists_originalcoefficientscoefficientsum = fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_terminal. fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_scalar_exists_originalcoefficientscoefficient) = S ((S (S (pfc_index_scalar_exists_originalcoefficients))) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_terminal. fs_u_pfc_scalar_exists_originalcoefficientscoefficientsum = fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_scalar_exists_originalcoefficients))) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum) + (pfc_natural_sum_scalar_exists_originalcoefficientscoefficient))) /\ forall fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps = S (pfc_index_scalar_exists_originalcoefficients)) -> exists fs_a_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps fs_r_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps fs_s_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_scalar_exists_originalcoefficientscoefficient)) /\ exists fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_scalar_exists_originalcoefficientscoefficient = fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_scalar_exists_originalcoefficientscoefficient) + (fs_a_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_scalar_exists_originalcoefficientscoefficientsum = fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum) + (fs_r_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_scalar_exists_originalcoefficientscoefficientsum = fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum) + (fs_s_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps = fs_r_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps + fs_a_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_scalar_exists_originalcoefficientscoefficientresiduebound. pfa_gap_scalar_exists_originalcoefficientscoefficientresiduebound + S (pfc_value_scalar_exists_originalcoefficients) = (p)) /\ ((exists pfa_offset_left_scalar_exists_originalcoefficientscoefficientresiduecongruence pfa_offset_right_scalar_exists_originalcoefficientscoefficientresiduecongruence. (pfc_natural_sum_scalar_exists_originalcoefficientscoefficient) + (p) * pfa_offset_left_scalar_exists_originalcoefficientscoefficientresiduecongruence = (pfc_value_scalar_exists_originalcoefficients) + (p) * pfa_offset_right_scalar_exists_originalcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (exists sb sc db dc eb ec. ((((exists pfa_gap_scalar_exists_inputscalar. pfa_gap_scalar_exists_inputscalar + S (k) = (p)) /\ ((forall pfp_index_scalar_exists_input. (exists pfa_gap_scalar_exists_inputindex. pfa_gap_scalar_exists_inputindex + S (pfp_index_scalar_exists_input) = (M)) -> exists pfp_source_scalar_exists_input pfp_value_scalar_exists_input. ((((exists ff_h_pfp_scalar_exists_inputsource. ff_h_pfp_scalar_exists_inputsource + S (pfp_source_scalar_exists_input) = S ((S (pfp_index_scalar_exists_input)) * bc)) /\ exists ff_q_pfp_scalar_exists_inputsource. bb = ff_q_pfp_scalar_exists_inputsource * S ((S (pfp_index_scalar_exists_input)) * bc) + (pfp_source_scalar_exists_input))) /\ (((((exists ff_h_pfp_scalar_exists_inputtarget. ff_h_pfp_scalar_exists_inputtarget + S (pfp_value_scalar_exists_input) = S ((S (pfp_index_scalar_exists_input)) * sc)) /\ exists ff_q_pfp_scalar_exists_inputtarget. sb = ff_q_pfp_scalar_exists_inputtarget * S ((S (pfp_index_scalar_exists_input)) * sc) + (pfp_value_scalar_exists_input))) /\ ((((exists pfa_gap_scalar_exists_inputoperationleft. pfa_gap_scalar_exists_inputoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scalar_exists_inputoperationright. pfa_gap_scalar_exists_inputoperationright + S (pfp_source_scalar_exists_input) = (p)) /\ ((((exists pfa_gap_scalar_exists_inputoperationresultbound. pfa_gap_scalar_exists_inputoperationresultbound + S (pfp_value_scalar_exists_input) = (p)) /\ ((exists pfa_offset_left_scalar_exists_inputoperationresultcongruence pfa_offset_right_scalar_exists_inputoperationresultcongruence. ((k) * (pfp_source_scalar_exists_input)) + (p) * pfa_offset_left_scalar_exists_inputoperationresultcongruence = (pfp_value_scalar_exists_input) + (p) * pfa_offset_right_scalar_exists_inputoperationresultcongruence))))))))))))))))) /\ (((((forall fom_index_pfp_scalar_exists_newleft. (exists fom_gap_pfp_scalar_exists_newleft_index_bound. fom_gap_pfp_scalar_exists_newleft_index_bound + S (fom_index_pfp_scalar_exists_newleft) = L) -> exists fom_value_pfp_scalar_exists_newleft. ((((exists fom_beta_height_pfp_scalar_exists_newleft_entry. fom_beta_height_pfp_scalar_exists_newleft_entry + S (fom_value_pfp_scalar_exists_newleft) = S ((S (fom_index_pfp_scalar_exists_newleft)) * ac)) /\ exists fom_beta_quotient_pfp_scalar_exists_newleft_entry. ab = fom_beta_quotient_pfp_scalar_exists_newleft_entry * S ((S (fom_index_pfp_scalar_exists_newleft)) * ac) + (fom_value_pfp_scalar_exists_newleft))) /\ (exists fom_gap_pfp_scalar_exists_newleft_value_bound. fom_gap_pfp_scalar_exists_newleft_value_bound + S (fom_value_pfp_scalar_exists_newleft) = p))) /\ (((forall fom_index_pfp_scalar_exists_newright. (exists fom_gap_pfp_scalar_exists_newright_index_bound. fom_gap_pfp_scalar_exists_newright_index_bound + S (fom_index_pfp_scalar_exists_newright) = M) -> exists fom_value_pfp_scalar_exists_newright. ((((exists fom_beta_height_pfp_scalar_exists_newright_entry. fom_beta_height_pfp_scalar_exists_newright_entry + S (fom_value_pfp_scalar_exists_newright) = S ((S (fom_index_pfp_scalar_exists_newright)) * sc)) /\ exists fom_beta_quotient_pfp_scalar_exists_newright_entry. sb = fom_beta_quotient_pfp_scalar_exists_newright_entry * S ((S (fom_index_pfp_scalar_exists_newright)) * sc) + (fom_value_pfp_scalar_exists_newright))) /\ (exists fom_gap_pfp_scalar_exists_newright_value_bound. fom_gap_pfp_scalar_exists_newright_value_bound + S (fom_value_pfp_scalar_exists_newright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_scalar_exists_newcoefficients. (exists pfa_gap_scalar_exists_newcoefficientsbound. pfa_gap_scalar_exists_newcoefficientsbound + S (pfc_index_scalar_exists_newcoefficients) = (N)) -> exists pfc_value_scalar_exists_newcoefficients. ((((exists ff_h_pfp_scalar_exists_newcoefficientsentry. ff_h_pfp_scalar_exists_newcoefficientsentry + S (pfc_value_scalar_exists_newcoefficients) = S ((S (pfc_index_scalar_exists_newcoefficients)) * dc)) /\ exists ff_q_pfp_scalar_exists_newcoefficientsentry. db = ff_q_pfp_scalar_exists_newcoefficientsentry * S ((S (pfc_index_scalar_exists_newcoefficients)) * dc) + (pfc_value_scalar_exists_newcoefficients))) /\ ((exists pfc_terms_code_scalar_exists_newcoefficientscoefficient pfc_terms_scale_scalar_exists_newcoefficientscoefficient pfc_natural_sum_scalar_exists_newcoefficientscoefficient. ((forall pfc_index_scalar_exists_newcoefficientscoefficientdiagonal. (exists pfa_gap_scalar_exists_newcoefficientscoefficientdiagonalbound. pfa_gap_scalar_exists_newcoefficientscoefficientdiagonalbound + S (pfc_index_scalar_exists_newcoefficientscoefficientdiagonal) = (S (pfc_index_scalar_exists_newcoefficients))) -> exists pfc_value_scalar_exists_newcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_scalar_exists_newcoefficientscoefficientdiagonalentry. ff_h_pfp_scalar_exists_newcoefficientscoefficientdiagonalentry + S (pfc_value_scalar_exists_newcoefficientscoefficientdiagonal) = S ((S (pfc_index_scalar_exists_newcoefficientscoefficientdiagonal)) * pfc_terms_scale_scalar_exists_newcoefficientscoefficient)) /\ exists ff_q_pfp_scalar_exists_newcoefficientscoefficientdiagonalentry. pfc_terms_code_scalar_exists_newcoefficientscoefficient = ff_q_pfp_scalar_exists_newcoefficientscoefficientdiagonalentry * S ((S (pfc_index_scalar_exists_newcoefficientscoefficientdiagonal)) * pfc_terms_scale_scalar_exists_newcoefficientscoefficient) + (pfc_value_scalar_exists_newcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_scalar_exists_newcoefficientscoefficientdiagonalterm pfc_left_scalar_exists_newcoefficientscoefficientdiagonalterm pfc_right_scalar_exists_newcoefficientscoefficientdiagonalterm. (((pfc_index_scalar_exists_newcoefficientscoefficientdiagonal)+pfc_complement_scalar_exists_newcoefficientscoefficientdiagonalterm=(pfc_index_scalar_exists_newcoefficients)) /\ ((((((exists pfa_gap_scalar_exists_newcoefficientscoefficientdiagonaltermleftinside. pfa_gap_scalar_exists_newcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_scalar_exists_newcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_scalar_exists_newcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_scalar_exists_newcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_scalar_exists_newcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_scalar_exists_newcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_scalar_exists_newcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_scalar_exists_newcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_scalar_exists_newcoefficientscoefficientdiagonal)) * ac) + (pfc_left_scalar_exists_newcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_scalar_exists_newcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_scalar_exists_newcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_scalar_exists_newcoefficientscoefficientdiagonal)) /\ (((pfc_left_scalar_exists_newcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_scalar_exists_newcoefficientscoefficientdiagonaltermrightinside. pfa_gap_scalar_exists_newcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_scalar_exists_newcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_scalar_exists_newcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_scalar_exists_newcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_scalar_exists_newcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_scalar_exists_newcoefficientscoefficientdiagonalterm)) * sc)) /\ exists ff_q_pfp_scalar_exists_newcoefficientscoefficientdiagonaltermrightentry. sb = ff_q_pfp_scalar_exists_newcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_scalar_exists_newcoefficientscoefficientdiagonalterm)) * sc) + (pfc_right_scalar_exists_newcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_scalar_exists_newcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_scalar_exists_newcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_scalar_exists_newcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_scalar_exists_newcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_scalar_exists_newcoefficientscoefficientdiagonal)=pfc_left_scalar_exists_newcoefficientscoefficientdiagonalterm*pfc_right_scalar_exists_newcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_scalar_exists_newcoefficientscoefficientsum fs_v_pfc_scalar_exists_newcoefficientscoefficientsum. ((((exists fs_h_pfc_scalar_exists_newcoefficientscoefficientsum_body_start. fs_h_pfc_scalar_exists_newcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_scalar_exists_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_newcoefficientscoefficientsum_body_start. fs_u_pfc_scalar_exists_newcoefficientscoefficientsum = fs_q_pfc_scalar_exists_newcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_scalar_exists_newcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_scalar_exists_newcoefficientscoefficientsum_body_terminal. fs_h_pfc_scalar_exists_newcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_scalar_exists_newcoefficientscoefficient) = S ((S (S (pfc_index_scalar_exists_newcoefficients))) * fs_v_pfc_scalar_exists_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_newcoefficientscoefficientsum_body_terminal. fs_u_pfc_scalar_exists_newcoefficientscoefficientsum = fs_q_pfc_scalar_exists_newcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_scalar_exists_newcoefficients))) * fs_v_pfc_scalar_exists_newcoefficientscoefficientsum) + (pfc_natural_sum_scalar_exists_newcoefficientscoefficient))) /\ forall fs_i_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps = S (pfc_index_scalar_exists_newcoefficients)) -> exists fs_a_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps fs_r_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps fs_s_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_scalar_exists_newcoefficientscoefficient)) /\ exists fs_q_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_scalar_exists_newcoefficientscoefficient = fs_q_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_scalar_exists_newcoefficientscoefficient) + (fs_a_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_scalar_exists_newcoefficientscoefficientsum = fs_q_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_newcoefficientscoefficientsum) + (fs_r_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_newcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_scalar_exists_newcoefficientscoefficientsum = fs_q_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_newcoefficientscoefficientsum) + (fs_s_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps = fs_r_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps + fs_a_pfc_scalar_exists_newcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_scalar_exists_newcoefficientscoefficientresiduebound. pfa_gap_scalar_exists_newcoefficientscoefficientresiduebound + S (pfc_value_scalar_exists_newcoefficients) = (p)) /\ ((exists pfa_offset_left_scalar_exists_newcoefficientscoefficientresiduecongruence pfa_offset_right_scalar_exists_newcoefficientscoefficientresiduecongruence. (pfc_natural_sum_scalar_exists_newcoefficientscoefficient) + (p) * pfa_offset_left_scalar_exists_newcoefficientscoefficientresiduecongruence = (pfc_value_scalar_exists_newcoefficients) + (p) * pfa_offset_right_scalar_exists_newcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ (((((exists pfa_gap_scalar_exists_outputscalar. pfa_gap_scalar_exists_outputscalar + S (k) = (p)) /\ ((forall pfp_index_scalar_exists_output. (exists pfa_gap_scalar_exists_outputindex. pfa_gap_scalar_exists_outputindex + S (pfp_index_scalar_exists_output) = (N)) -> exists pfp_source_scalar_exists_output pfp_value_scalar_exists_output. ((((exists ff_h_pfp_scalar_exists_outputsource. ff_h_pfp_scalar_exists_outputsource + S (pfp_source_scalar_exists_output) = S ((S (pfp_index_scalar_exists_output)) * cc)) /\ exists ff_q_pfp_scalar_exists_outputsource. cb = ff_q_pfp_scalar_exists_outputsource * S ((S (pfp_index_scalar_exists_output)) * cc) + (pfp_source_scalar_exists_output))) /\ (((((exists ff_h_pfp_scalar_exists_outputtarget. ff_h_pfp_scalar_exists_outputtarget + S (pfp_value_scalar_exists_output) = S ((S (pfp_index_scalar_exists_output)) * ec)) /\ exists ff_q_pfp_scalar_exists_outputtarget. eb = ff_q_pfp_scalar_exists_outputtarget * S ((S (pfp_index_scalar_exists_output)) * ec) + (pfp_value_scalar_exists_output))) /\ ((((exists pfa_gap_scalar_exists_outputoperationleft. pfa_gap_scalar_exists_outputoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scalar_exists_outputoperationright. pfa_gap_scalar_exists_outputoperationright + S (pfp_source_scalar_exists_output) = (p)) /\ ((((exists pfa_gap_scalar_exists_outputoperationresultbound. pfa_gap_scalar_exists_outputoperationresultbound + S (pfp_value_scalar_exists_output) = (p)) /\ ((exists pfa_offset_left_scalar_exists_outputoperationresultcongruence pfa_offset_right_scalar_exists_outputoperationresultcongruence. ((k) * (pfp_source_scalar_exists_output)) + (p) * pfa_offset_left_scalar_exists_outputoperationresultcongruence = (pfp_value_scalar_exists_output) + (p) * pfa_offset_right_scalar_exists_outputoperationresultcongruence))))))))))))))))) /\ ((forall mdr_i_pfp_scalar_exists_equal mdr_a_pfp_scalar_exists_equal. (exists mdr_gap_pfp_scalar_exists_equalb. mdr_gap_pfp_scalar_exists_equalb + S (mdr_i_pfp_scalar_exists_equal) = (N)) -> (((exists ff_h_mdr_pfp_scalar_exists_equalo. ff_h_mdr_pfp_scalar_exists_equalo + S (mdr_a_pfp_scalar_exists_equal) = S ((S (mdr_i_pfp_scalar_exists_equal)) * dc)) /\ exists ff_q_mdr_pfp_scalar_exists_equalo. db = ff_q_mdr_pfp_scalar_exists_equalo * S ((S (mdr_i_pfp_scalar_exists_equal)) * dc) + (mdr_a_pfp_scalar_exists_equal))) -> (((exists ff_h_mdr_pfp_scalar_exists_equaln. ff_h_mdr_pfp_scalar_exists_equaln + S (mdr_a_pfp_scalar_exists_equal) = S ((S (mdr_i_pfp_scalar_exists_equal)) * ec)) /\ exists ff_q_mdr_pfp_scalar_exists_equaln. eb = ff_q_mdr_pfp_scalar_exists_equaln * S ((S (mdr_i_pfp_scalar_exists_equal)) * ec) + (mdr_a_pfp_scalar_exists_equal)))))))))))Constructive proof overview
Generated structural guide
At any nonzero modulus and canonical scalar, construct the actual scaled input, its actual convolution, and an independently encoded scalar output, then derive their exact decoded-prefix agreement.
The unchanged tactic script uses 5 declared prerequisites and contains 119 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
prime_field_polynomial_scale_exists Alpha theorem; checked-use authorized prime_field_polynomial_scale_bounded Alpha theorem; checked-use authorized prime_field_polynomial_convolution_at_length_exists Alpha theorem; checked-use authorized prime_field_polynomial_convolution_bounded Alpha theorem; checked-use authorized PG0016 prime_field_polynomial_convolution_right_scale_equalDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–14
03Establish hcopyL15–16
Establish this local claim before using it. It is not an additional assumption.
- L15
have hcopy : FpPolyProduct(p,ab,ac,L,bb,bc,M,cb,cc,N)Definitions: FpPolyProduct - L16
exact hc
04Separate the logical casesL17–19
05Establish hsL20–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial scale exists.
- L20
have hs : ∃ sb. ∃ sc. FpPolyScale(p,k,bb,bc,sb,sc,M)Definitions: FpPolyScale - L21
specialize prime_field_polynomial_scale_exists (p) - L22
specialize prime_field_polynomial_scale_exists (k) - L23
specialize prime_field_polynomial_scale_exists (bb) - L24
specialize prime_field_polynomial_scale_exists (bc) - L25
specialize prime_field_polynomial_scale_exists (M) - L26
apply prime_field_polynomial_scale_exists - L27
exact hp - L28
exact hk - L29
exact hcopy_right_left
06Separate the logical casesL30–31
07Establish hbL32–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial scale bounded.
- L32
have hb : BetaPrefixInto(bb,bc,M,p) ∧ BetaPrefixInto(x,x1,M,p)Definitions: BetaPrefixInto - L33
specialize prime_field_polynomial_scale_bounded (p) - L34
specialize prime_field_polynomial_scale_bounded (k) - L35
specialize prime_field_polynomial_scale_bounded (bb) - L36
specialize prime_field_polynomial_scale_bounded (bc) - L37
specialize prime_field_polynomial_scale_bounded (x) - L38
specialize prime_field_polynomial_scale_bounded (x1) - L39
specialize prime_field_polynomial_scale_bounded (M) - L40
apply prime_field_polynomial_scale_bounded - L41
exact hs_witness_witness
08Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
cases hb
09Establish hdL43–52
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.
- L43
have hd : ∃ d. ∃ e. FpPolyProduct(p,ab,ac,L,x,x1,M,d,e,N)Definitions: FpPolyProduct - L44
specialize prime_field_polynomial_convolution_at_length_exists (p) - L45
specialize prime_field_polynomial_convolution_at_length_exists (ab) - L46
specialize prime_field_polynomial_convolution_at_length_exists (ac) - L47
specialize prime_field_polynomial_convolution_at_length_exists (L) - L48
specialize prime_field_polynomial_convolution_at_length_exists (x) - L49
specialize prime_field_polynomial_convolution_at_length_exists (x1) - L50
specialize prime_field_polynomial_convolution_at_length_exists (M) - L51
specialize prime_field_polynomial_convolution_at_length_exists (N) - L52
apply prime_field_polynomial_convolution_at_length_exists
10Use earlier factsL53–56
11Separate the logical casesL57–58
12Establish heL59–68
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial scale exists.
- L59
have he : ∃ eb. ∃ ec. FpPolyScale(p,k,cb,cc,eb,ec,N)Definitions: FpPolyScale - L60
specialize prime_field_polynomial_scale_exists (p) - L61
specialize prime_field_polynomial_scale_exists (k) - L62
specialize prime_field_polynomial_scale_exists (cb) - L63
specialize prime_field_polynomial_scale_exists (cc) - L64
specialize prime_field_polynomial_scale_exists (N) - L65
apply prime_field_polynomial_scale_exists - L66
exact hp - L67
exact hk - L68
specialize prime_field_polynomial_convolution_bounded (p)
13Use earlier factsL69–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L69
specialize prime_field_polynomial_convolution_bounded (ab) - L70
specialize prime_field_polynomial_convolution_bounded (ac) - L71
specialize prime_field_polynomial_convolution_bounded (L) - L72
specialize prime_field_polynomial_convolution_bounded (bb) - L73
specialize prime_field_polynomial_convolution_bounded (bc) - L74
specialize prime_field_polynomial_convolution_bounded (M) - L75
specialize prime_field_polynomial_convolution_bounded (cb) - L76
specialize prime_field_polynomial_convolution_bounded (cc) - L77
specialize prime_field_polynomial_convolution_bounded (N) - L78
apply prime_field_polynomial_convolution_bounded
14Use earlier factsL79–79
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L79
exact hc
15Separate the logical casesL80–81
16Construct an explicit witnessL82–87
17Separate the logical casesL88–88
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L88
split
18Use earlier factsL89–89
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L89
exact hs_witness_witness
19Separate the logical casesL90–90
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L90
split
20Use earlier factsL91–91
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L91
exact hd_witness_witness
21Separate the logical casesL92–92
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L92
split
22Use earlier factsL93–93
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L93
exact he_witness_witness
23Establish hdataL94–103
Establish this local claim before using it. It is not an additional assumption.
- L94
have hdata : N = N ∧ BetaPrefixEqual(x2,x3,x4,x5,N)Definitions: BetaPrefixEqual - L95
specialize prime_field_polynomial_convolution_right_scale_equal (p) - L96
specialize prime_field_polynomial_convolution_right_scale_equal (k) - L97
specialize prime_field_polynomial_convolution_right_scale_equal (ab) - L98
specialize prime_field_polynomial_convolution_right_scale_equal (ac) - L99
specialize prime_field_polynomial_convolution_right_scale_equal (L) - L100
specialize prime_field_polynomial_convolution_right_scale_equal (bb) - L101
specialize prime_field_polynomial_convolution_right_scale_equal (bc) - L102
specialize prime_field_polynomial_convolution_right_scale_equal (M) - L103
specialize prime_field_polynomial_convolution_right_scale_equal (x)
24Use earlier factsL104–113
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L104
specialize prime_field_polynomial_convolution_right_scale_equal (x1) - L105
specialize prime_field_polynomial_convolution_right_scale_equal (cb) - L106
specialize prime_field_polynomial_convolution_right_scale_equal (cc) - L107
specialize prime_field_polynomial_convolution_right_scale_equal (N) - L108
specialize prime_field_polynomial_convolution_right_scale_equal (x2) - L109
specialize prime_field_polynomial_convolution_right_scale_equal (x3) - L110
specialize prime_field_polynomial_convolution_right_scale_equal (N) - L111
specialize prime_field_polynomial_convolution_right_scale_equal (x4) - L112
specialize prime_field_polynomial_convolution_right_scale_equal (x5) - L113
apply prime_field_polynomial_convolution_right_scale_equal
25Use earlier factsL114–117
26Separate the logical casesL118–118
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L118
cases hdata
27Use earlier factsL119–119
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L119
exact hdata_right
Original exact command ledger · 119 lines
- 0001
intro p - 0002
intro k - 0003
intro ab - 0004
intro ac - 0005
intro L - 0006
intro bb - 0007
intro bc - 0008
intro M - 0009
intro cb - 0010
intro cc - 0011
intro N - 0012
intro hp - 0013
intro hk - 0014
intro hc - 0015
have hcopy : ((forall fom_index_pfp_scalar_exists_originalleft. (exists fom_gap_pfp_scalar_exists_originalleft_index_bound. fom_gap_pfp_scalar_exists_originalleft_index_bound + S (fom_index_pfp_scalar_exists_originalleft) = L) -> exists fom_value_pfp_scalar_exists_originalleft. ((((exists fom_beta_height_pfp_scalar_exists_originalleft_entry. fom_beta_height_pfp_scalar_exists_originalleft_entry + S (fom_value_pfp_scalar_exists_originalleft) = S ((S (fom_index_pfp_scalar_exists_originalleft)) * ac)) /\ exists fom_beta_quotient_pfp_scalar_exists_originalleft_entry. ab = fom_beta_quotient_pfp_scalar_exists_originalleft_entry * S ((S (fom_index_pfp_scalar_exists_originalleft)) * ac) + (fom_value_pfp_scalar_exists_originalleft))) /\ (exists fom_gap_pfp_scalar_exists_originalleft_value_bound. fom_gap_pfp_scalar_exists_originalleft_value_bound + S (fom_value_pfp_scalar_exists_originalleft) = p))) /\ (((forall fom_index_pfp_scalar_exists_originalright. (exists fom_gap_pfp_scalar_exists_originalright_index_bound. fom_gap_pfp_scalar_exists_originalright_index_bound + S (fom_index_pfp_scalar_exists_originalright) = M) -> exists fom_value_pfp_scalar_exists_originalright. ((((exists fom_beta_height_pfp_scalar_exists_originalright_entry. fom_beta_height_pfp_scalar_exists_originalright_entry + S (fom_value_pfp_scalar_exists_originalright) = S ((S (fom_index_pfp_scalar_exists_originalright)) * bc)) /\ exists fom_beta_quotient_pfp_scalar_exists_originalright_entry. bb = fom_beta_quotient_pfp_scalar_exists_originalright_entry * S ((S (fom_index_pfp_scalar_exists_originalright)) * bc) + (fom_value_pfp_scalar_exists_originalright))) /\ (exists fom_gap_pfp_scalar_exists_originalright_value_bound. fom_gap_pfp_scalar_exists_originalright_value_bound + S (fom_value_pfp_scalar_exists_originalright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_scalar_exists_originalcoefficients. (exists pfa_gap_scalar_exists_originalcoefficientsbound. pfa_gap_scalar_exists_originalcoefficientsbound + S (pfc_index_scalar_exists_originalcoefficients) = (N)) -> exists pfc_value_scalar_exists_originalcoefficients. ((((exists ff_h_pfp_scalar_exists_originalcoefficientsentry. ff_h_pfp_scalar_exists_originalcoefficientsentry + S (pfc_value_scalar_exists_originalcoefficients) = S ((S (pfc_index_scalar_exists_originalcoefficients)) * cc)) /\ exists ff_q_pfp_scalar_exists_originalcoefficientsentry. cb = ff_q_pfp_scalar_exists_originalcoefficientsentry * S ((S (pfc_index_scalar_exists_originalcoefficients)) * cc) + (pfc_value_scalar_exists_originalcoefficients))) /\ ((exists pfc_terms_code_scalar_exists_originalcoefficientscoefficient pfc_terms_scale_scalar_exists_originalcoefficientscoefficient pfc_natural_sum_scalar_exists_originalcoefficientscoefficient. ((forall pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal. (exists pfa_gap_scalar_exists_originalcoefficientscoefficientdiagonalbound. pfa_gap_scalar_exists_originalcoefficientscoefficientdiagonalbound + S (pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal) = (S (pfc_index_scalar_exists_originalcoefficients))) -> exists pfc_value_scalar_exists_originalcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_scalar_exists_originalcoefficientscoefficientdiagonalentry. ff_h_pfp_scalar_exists_originalcoefficientscoefficientdiagonalentry + S (pfc_value_scalar_exists_originalcoefficientscoefficientdiagonal) = S ((S (pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal)) * pfc_terms_scale_scalar_exists_originalcoefficientscoefficient)) /\ exists ff_q_pfp_scalar_exists_originalcoefficientscoefficientdiagonalentry. pfc_terms_code_scalar_exists_originalcoefficientscoefficient = ff_q_pfp_scalar_exists_originalcoefficientscoefficientdiagonalentry * S ((S (pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal)) * pfc_terms_scale_scalar_exists_originalcoefficientscoefficient) + (pfc_value_scalar_exists_originalcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_scalar_exists_originalcoefficientscoefficientdiagonalterm pfc_left_scalar_exists_originalcoefficientscoefficientdiagonalterm pfc_right_scalar_exists_originalcoefficientscoefficientdiagonalterm. (((pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal)+pfc_complement_scalar_exists_originalcoefficientscoefficientdiagonalterm=(pfc_index_scalar_exists_originalcoefficients)) /\ ((((((exists pfa_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermleftinside. pfa_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_scalar_exists_originalcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal)) * ac) + (pfc_left_scalar_exists_originalcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_scalar_exists_originalcoefficientscoefficientdiagonal)) /\ (((pfc_left_scalar_exists_originalcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermrightinside. pfa_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_scalar_exists_originalcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_scalar_exists_originalcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_scalar_exists_originalcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_scalar_exists_originalcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_scalar_exists_originalcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_scalar_exists_originalcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_scalar_exists_originalcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_scalar_exists_originalcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_scalar_exists_originalcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_scalar_exists_originalcoefficientscoefficientdiagonal)=pfc_left_scalar_exists_originalcoefficientscoefficientdiagonalterm*pfc_right_scalar_exists_originalcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_scalar_exists_originalcoefficientscoefficientsum fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum. ((((exists fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_start. fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_start. fs_u_pfc_scalar_exists_originalcoefficientscoefficientsum = fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_terminal. fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_scalar_exists_originalcoefficientscoefficient) = S ((S (S (pfc_index_scalar_exists_originalcoefficients))) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_terminal. fs_u_pfc_scalar_exists_originalcoefficientscoefficientsum = fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_scalar_exists_originalcoefficients))) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum) + (pfc_natural_sum_scalar_exists_originalcoefficientscoefficient))) /\ forall fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps = S (pfc_index_scalar_exists_originalcoefficients)) -> exists fs_a_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps fs_r_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps fs_s_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_scalar_exists_originalcoefficientscoefficient)) /\ exists fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_scalar_exists_originalcoefficientscoefficient = fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_scalar_exists_originalcoefficientscoefficient) + (fs_a_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_scalar_exists_originalcoefficientscoefficientsum = fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum) + (fs_r_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_scalar_exists_originalcoefficientscoefficientsum = fs_q_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_originalcoefficientscoefficientsum) + (fs_s_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps = fs_r_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps + fs_a_pfc_scalar_exists_originalcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_scalar_exists_originalcoefficientscoefficientresiduebound. pfa_gap_scalar_exists_originalcoefficientscoefficientresiduebound + S (pfc_value_scalar_exists_originalcoefficients) = (p)) /\ ((exists pfa_offset_left_scalar_exists_originalcoefficientscoefficientresiduecongruence pfa_offset_right_scalar_exists_originalcoefficientscoefficientresiduecongruence. (pfc_natural_sum_scalar_exists_originalcoefficientscoefficient) + (p) * pfa_offset_left_scalar_exists_originalcoefficientscoefficientresiduecongruence = (pfc_value_scalar_exists_originalcoefficients) + (p) * pfa_offset_right_scalar_exists_originalcoefficientscoefficientresiduecongruence)))))))))))))))))) - 0016
exact hc - 0017
cases hcopy - 0018
cases hcopy_right - 0019
cases hcopy_right_right - 0020
have hs : exists sb sc. ((exists pfa_gap_scalar_exists_inputscalar. pfa_gap_scalar_exists_inputscalar + S (k) = (p)) /\ ((forall pfp_index_scalar_exists_input. (exists pfa_gap_scalar_exists_inputindex. pfa_gap_scalar_exists_inputindex + S (pfp_index_scalar_exists_input) = (M)) -> exists pfp_source_scalar_exists_input pfp_value_scalar_exists_input. ((((exists ff_h_pfp_scalar_exists_inputsource. ff_h_pfp_scalar_exists_inputsource + S (pfp_source_scalar_exists_input) = S ((S (pfp_index_scalar_exists_input)) * bc)) /\ exists ff_q_pfp_scalar_exists_inputsource. bb = ff_q_pfp_scalar_exists_inputsource * S ((S (pfp_index_scalar_exists_input)) * bc) + (pfp_source_scalar_exists_input))) /\ (((((exists ff_h_pfp_scalar_exists_inputtarget. ff_h_pfp_scalar_exists_inputtarget + S (pfp_value_scalar_exists_input) = S ((S (pfp_index_scalar_exists_input)) * sc)) /\ exists ff_q_pfp_scalar_exists_inputtarget. sb = ff_q_pfp_scalar_exists_inputtarget * S ((S (pfp_index_scalar_exists_input)) * sc) + (pfp_value_scalar_exists_input))) /\ ((((exists pfa_gap_scalar_exists_inputoperationleft. pfa_gap_scalar_exists_inputoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scalar_exists_inputoperationright. pfa_gap_scalar_exists_inputoperationright + S (pfp_source_scalar_exists_input) = (p)) /\ ((((exists pfa_gap_scalar_exists_inputoperationresultbound. pfa_gap_scalar_exists_inputoperationresultbound + S (pfp_value_scalar_exists_input) = (p)) /\ ((exists pfa_offset_left_scalar_exists_inputoperationresultcongruence pfa_offset_right_scalar_exists_inputoperationresultcongruence. ((k) * (pfp_source_scalar_exists_input)) + (p) * pfa_offset_left_scalar_exists_inputoperationresultcongruence = (pfp_value_scalar_exists_input) + (p) * pfa_offset_right_scalar_exists_inputoperationresultcongruence)))))))))))))))) - 0021
specialize prime_field_polynomial_scale_exists (p) - 0022
specialize prime_field_polynomial_scale_exists (k) - 0023
specialize prime_field_polynomial_scale_exists (bb) - 0024
specialize prime_field_polynomial_scale_exists (bc) - 0025
specialize prime_field_polynomial_scale_exists (M) - 0026
apply prime_field_polynomial_scale_exists - 0027
exact hp - 0028
exact hk - 0029
exact hcopy_right_left - 0030
cases hs - 0031
cases hs_witness - 0032
have hb : ((forall fom_index_pfp_scalar_exists_old_bound. (exists fom_gap_pfp_scalar_exists_old_bound_index_bound. fom_gap_pfp_scalar_exists_old_bound_index_bound + S (fom_index_pfp_scalar_exists_old_bound) = M) -> exists fom_value_pfp_scalar_exists_old_bound. ((((exists fom_beta_height_pfp_scalar_exists_old_bound_entry. fom_beta_height_pfp_scalar_exists_old_bound_entry + S (fom_value_pfp_scalar_exists_old_bound) = S ((S (fom_index_pfp_scalar_exists_old_bound)) * bc)) /\ exists fom_beta_quotient_pfp_scalar_exists_old_bound_entry. bb = fom_beta_quotient_pfp_scalar_exists_old_bound_entry * S ((S (fom_index_pfp_scalar_exists_old_bound)) * bc) + (fom_value_pfp_scalar_exists_old_bound))) /\ (exists fom_gap_pfp_scalar_exists_old_bound_value_bound. fom_gap_pfp_scalar_exists_old_bound_value_bound + S (fom_value_pfp_scalar_exists_old_bound) = p))) /\ ((forall fom_index_pfp_scalar_exists_scaled_bound. (exists fom_gap_pfp_scalar_exists_scaled_bound_index_bound. fom_gap_pfp_scalar_exists_scaled_bound_index_bound + S (fom_index_pfp_scalar_exists_scaled_bound) = M) -> exists fom_value_pfp_scalar_exists_scaled_bound. ((((exists fom_beta_height_pfp_scalar_exists_scaled_bound_entry. fom_beta_height_pfp_scalar_exists_scaled_bound_entry + S (fom_value_pfp_scalar_exists_scaled_bound) = S ((S (fom_index_pfp_scalar_exists_scaled_bound)) * x1)) /\ exists fom_beta_quotient_pfp_scalar_exists_scaled_bound_entry. x = fom_beta_quotient_pfp_scalar_exists_scaled_bound_entry * S ((S (fom_index_pfp_scalar_exists_scaled_bound)) * x1) + (fom_value_pfp_scalar_exists_scaled_bound))) /\ (exists fom_gap_pfp_scalar_exists_scaled_bound_value_bound. fom_gap_pfp_scalar_exists_scaled_bound_value_bound + S (fom_value_pfp_scalar_exists_scaled_bound) = p))))) - 0033
specialize prime_field_polynomial_scale_bounded (p) - 0034
specialize prime_field_polynomial_scale_bounded (k) - 0035
specialize prime_field_polynomial_scale_bounded (bb) - 0036
specialize prime_field_polynomial_scale_bounded (bc) - 0037
specialize prime_field_polynomial_scale_bounded (x) - 0038
specialize prime_field_polynomial_scale_bounded (x1) - 0039
specialize prime_field_polynomial_scale_bounded (M) - 0040
apply prime_field_polynomial_scale_bounded - 0041
exact hs_witness_witness - 0042
cases hb - 0043
have hd : exists d e. ((forall fom_index_pfp_scalar_exists_chosen_productleft. (exists fom_gap_pfp_scalar_exists_chosen_productleft_index_bound. fom_gap_pfp_scalar_exists_chosen_productleft_index_bound + S (fom_index_pfp_scalar_exists_chosen_productleft) = L) -> exists fom_value_pfp_scalar_exists_chosen_productleft. ((((exists fom_beta_height_pfp_scalar_exists_chosen_productleft_entry. fom_beta_height_pfp_scalar_exists_chosen_productleft_entry + S (fom_value_pfp_scalar_exists_chosen_productleft) = S ((S (fom_index_pfp_scalar_exists_chosen_productleft)) * ac)) /\ exists fom_beta_quotient_pfp_scalar_exists_chosen_productleft_entry. ab = fom_beta_quotient_pfp_scalar_exists_chosen_productleft_entry * S ((S (fom_index_pfp_scalar_exists_chosen_productleft)) * ac) + (fom_value_pfp_scalar_exists_chosen_productleft))) /\ (exists fom_gap_pfp_scalar_exists_chosen_productleft_value_bound. fom_gap_pfp_scalar_exists_chosen_productleft_value_bound + S (fom_value_pfp_scalar_exists_chosen_productleft) = p))) /\ (((forall fom_index_pfp_scalar_exists_chosen_productright. (exists fom_gap_pfp_scalar_exists_chosen_productright_index_bound. fom_gap_pfp_scalar_exists_chosen_productright_index_bound + S (fom_index_pfp_scalar_exists_chosen_productright) = M) -> exists fom_value_pfp_scalar_exists_chosen_productright. ((((exists fom_beta_height_pfp_scalar_exists_chosen_productright_entry. fom_beta_height_pfp_scalar_exists_chosen_productright_entry + S (fom_value_pfp_scalar_exists_chosen_productright) = S ((S (fom_index_pfp_scalar_exists_chosen_productright)) * x1)) /\ exists fom_beta_quotient_pfp_scalar_exists_chosen_productright_entry. x = fom_beta_quotient_pfp_scalar_exists_chosen_productright_entry * S ((S (fom_index_pfp_scalar_exists_chosen_productright)) * x1) + (fom_value_pfp_scalar_exists_chosen_productright))) /\ (exists fom_gap_pfp_scalar_exists_chosen_productright_value_bound. fom_gap_pfp_scalar_exists_chosen_productright_value_bound + S (fom_value_pfp_scalar_exists_chosen_productright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_scalar_exists_chosen_productcoefficients. (exists pfa_gap_scalar_exists_chosen_productcoefficientsbound. pfa_gap_scalar_exists_chosen_productcoefficientsbound + S (pfc_index_scalar_exists_chosen_productcoefficients) = (N)) -> exists pfc_value_scalar_exists_chosen_productcoefficients. ((((exists ff_h_pfp_scalar_exists_chosen_productcoefficientsentry. ff_h_pfp_scalar_exists_chosen_productcoefficientsentry + S (pfc_value_scalar_exists_chosen_productcoefficients) = S ((S (pfc_index_scalar_exists_chosen_productcoefficients)) * e)) /\ exists ff_q_pfp_scalar_exists_chosen_productcoefficientsentry. d = ff_q_pfp_scalar_exists_chosen_productcoefficientsentry * S ((S (pfc_index_scalar_exists_chosen_productcoefficients)) * e) + (pfc_value_scalar_exists_chosen_productcoefficients))) /\ ((exists pfc_terms_code_scalar_exists_chosen_productcoefficientscoefficient pfc_terms_scale_scalar_exists_chosen_productcoefficientscoefficient pfc_natural_sum_scalar_exists_chosen_productcoefficientscoefficient. ((forall pfc_index_scalar_exists_chosen_productcoefficientscoefficientdiagonal. (exists pfa_gap_scalar_exists_chosen_productcoefficientscoefficientdiagonalbound. pfa_gap_scalar_exists_chosen_productcoefficientscoefficientdiagonalbound + S (pfc_index_scalar_exists_chosen_productcoefficientscoefficientdiagonal) = (S (pfc_index_scalar_exists_chosen_productcoefficients))) -> exists pfc_value_scalar_exists_chosen_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_scalar_exists_chosen_productcoefficientscoefficientdiagonalentry. ff_h_pfp_scalar_exists_chosen_productcoefficientscoefficientdiagonalentry + S (pfc_value_scalar_exists_chosen_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_scalar_exists_chosen_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_scalar_exists_chosen_productcoefficientscoefficient)) /\ exists ff_q_pfp_scalar_exists_chosen_productcoefficientscoefficientdiagonalentry. pfc_terms_code_scalar_exists_chosen_productcoefficientscoefficient = ff_q_pfp_scalar_exists_chosen_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_scalar_exists_chosen_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_scalar_exists_chosen_productcoefficientscoefficient) + (pfc_value_scalar_exists_chosen_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm pfc_left_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm pfc_right_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm. (((pfc_index_scalar_exists_chosen_productcoefficientscoefficientdiagonal)+pfc_complement_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm=(pfc_index_scalar_exists_chosen_productcoefficients)) /\ ((((((exists pfa_gap_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_scalar_exists_chosen_productcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_scalar_exists_chosen_productcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_scalar_exists_chosen_productcoefficientscoefficientdiagonal)) * ac) + (pfc_left_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_scalar_exists_chosen_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm)) * x1)) /\ exists ff_q_pfp_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermrightentry. x = ff_q_pfp_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm)) * x1) + (pfc_right_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_scalar_exists_chosen_productcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_scalar_exists_chosen_productcoefficientscoefficientdiagonal)=pfc_left_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm*pfc_right_scalar_exists_chosen_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_scalar_exists_chosen_productcoefficientscoefficientsum fs_v_pfc_scalar_exists_chosen_productcoefficientscoefficientsum. ((((exists fs_h_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_start. fs_h_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_scalar_exists_chosen_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_start. fs_u_pfc_scalar_exists_chosen_productcoefficientscoefficientsum = fs_q_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_scalar_exists_chosen_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_scalar_exists_chosen_productcoefficientscoefficient) = S ((S (S (pfc_index_scalar_exists_chosen_productcoefficients))) * fs_v_pfc_scalar_exists_chosen_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_scalar_exists_chosen_productcoefficientscoefficientsum = fs_q_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_scalar_exists_chosen_productcoefficients))) * fs_v_pfc_scalar_exists_chosen_productcoefficientscoefficientsum) + (pfc_natural_sum_scalar_exists_chosen_productcoefficientscoefficient))) /\ forall fs_i_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps = S (pfc_index_scalar_exists_chosen_productcoefficients)) -> exists fs_a_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps fs_r_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps fs_s_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_scalar_exists_chosen_productcoefficientscoefficient)) /\ exists fs_q_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_scalar_exists_chosen_productcoefficientscoefficient = fs_q_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_scalar_exists_chosen_productcoefficientscoefficient) + (fs_a_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_chosen_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_scalar_exists_chosen_productcoefficientscoefficientsum = fs_q_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_chosen_productcoefficientscoefficientsum) + (fs_r_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_chosen_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_scalar_exists_chosen_productcoefficientscoefficientsum = fs_q_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_scalar_exists_chosen_productcoefficientscoefficientsum) + (fs_s_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps = fs_r_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps + fs_a_pfc_scalar_exists_chosen_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_scalar_exists_chosen_productcoefficientscoefficientresiduebound. pfa_gap_scalar_exists_chosen_productcoefficientscoefficientresiduebound + S (pfc_value_scalar_exists_chosen_productcoefficients) = (p)) /\ ((exists pfa_offset_left_scalar_exists_chosen_productcoefficientscoefficientresiduecongruence pfa_offset_right_scalar_exists_chosen_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_scalar_exists_chosen_productcoefficientscoefficient) + (p) * pfa_offset_left_scalar_exists_chosen_productcoefficientscoefficientresiduecongruence = (pfc_value_scalar_exists_chosen_productcoefficients) + (p) * pfa_offset_right_scalar_exists_chosen_productcoefficientscoefficientresiduecongruence)))))))))))))))))) - 0044
specialize prime_field_polynomial_convolution_at_length_exists (p) - 0045
specialize prime_field_polynomial_convolution_at_length_exists (ab) - 0046
specialize prime_field_polynomial_convolution_at_length_exists (ac) - 0047
specialize prime_field_polynomial_convolution_at_length_exists (L) - 0048
specialize prime_field_polynomial_convolution_at_length_exists (x) - 0049
specialize prime_field_polynomial_convolution_at_length_exists (x1) - 0050
specialize prime_field_polynomial_convolution_at_length_exists (M) - 0051
specialize prime_field_polynomial_convolution_at_length_exists (N) - 0052
apply prime_field_polynomial_convolution_at_length_exists - 0053
exact hp - 0054
exact hcopy_left - 0055
exact hb_right - 0056
exact hcopy_right_right_left - 0057
cases hd - 0058
cases hd_witness - 0059
have he : exists eb ec. ((exists pfa_gap_scalar_exists_outputscalar. pfa_gap_scalar_exists_outputscalar + S (k) = (p)) /\ ((forall pfp_index_scalar_exists_output. (exists pfa_gap_scalar_exists_outputindex. pfa_gap_scalar_exists_outputindex + S (pfp_index_scalar_exists_output) = (N)) -> exists pfp_source_scalar_exists_output pfp_value_scalar_exists_output. ((((exists ff_h_pfp_scalar_exists_outputsource. ff_h_pfp_scalar_exists_outputsource + S (pfp_source_scalar_exists_output) = S ((S (pfp_index_scalar_exists_output)) * cc)) /\ exists ff_q_pfp_scalar_exists_outputsource. cb = ff_q_pfp_scalar_exists_outputsource * S ((S (pfp_index_scalar_exists_output)) * cc) + (pfp_source_scalar_exists_output))) /\ (((((exists ff_h_pfp_scalar_exists_outputtarget. ff_h_pfp_scalar_exists_outputtarget + S (pfp_value_scalar_exists_output) = S ((S (pfp_index_scalar_exists_output)) * ec)) /\ exists ff_q_pfp_scalar_exists_outputtarget. eb = ff_q_pfp_scalar_exists_outputtarget * S ((S (pfp_index_scalar_exists_output)) * ec) + (pfp_value_scalar_exists_output))) /\ ((((exists pfa_gap_scalar_exists_outputoperationleft. pfa_gap_scalar_exists_outputoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scalar_exists_outputoperationright. pfa_gap_scalar_exists_outputoperationright + S (pfp_source_scalar_exists_output) = (p)) /\ ((((exists pfa_gap_scalar_exists_outputoperationresultbound. pfa_gap_scalar_exists_outputoperationresultbound + S (pfp_value_scalar_exists_output) = (p)) /\ ((exists pfa_offset_left_scalar_exists_outputoperationresultcongruence pfa_offset_right_scalar_exists_outputoperationresultcongruence. ((k) * (pfp_source_scalar_exists_output)) + (p) * pfa_offset_left_scalar_exists_outputoperationresultcongruence = (pfp_value_scalar_exists_output) + (p) * pfa_offset_right_scalar_exists_outputoperationresultcongruence)))))))))))))))) - 0060
specialize prime_field_polynomial_scale_exists (p) - 0061
specialize prime_field_polynomial_scale_exists (k) - 0062
specialize prime_field_polynomial_scale_exists (cb) - 0063
specialize prime_field_polynomial_scale_exists (cc) - 0064
specialize prime_field_polynomial_scale_exists (N) - 0065
apply prime_field_polynomial_scale_exists - 0066
exact hp - 0067
exact hk - 0068
specialize prime_field_polynomial_convolution_bounded (p) - 0069
specialize prime_field_polynomial_convolution_bounded (ab) - 0070
specialize prime_field_polynomial_convolution_bounded (ac) - 0071
specialize prime_field_polynomial_convolution_bounded (L) - 0072
specialize prime_field_polynomial_convolution_bounded (bb) - 0073
specialize prime_field_polynomial_convolution_bounded (bc) - 0074
specialize prime_field_polynomial_convolution_bounded (M) - 0075
specialize prime_field_polynomial_convolution_bounded (cb) - 0076
specialize prime_field_polynomial_convolution_bounded (cc) - 0077
specialize prime_field_polynomial_convolution_bounded (N) - 0078
apply prime_field_polynomial_convolution_bounded - 0079
exact hc - 0080
cases he - 0081
cases he_witness - 0082
exists x - 0083
exists x1 - 0084
exists x2 - 0085
exists x3 - 0086
exists x4 - 0087
exists x5 - 0088
split - 0089
exact hs_witness_witness - 0090
split - 0091
exact hd_witness_witness - 0092
split - 0093
exact he_witness_witness - 0094
have hdata : ((N=N) /\ ((forall mdr_i_pfp_scalar_exists_comparison mdr_a_pfp_scalar_exists_comparison. (exists mdr_gap_pfp_scalar_exists_comparisonb. mdr_gap_pfp_scalar_exists_comparisonb + S (mdr_i_pfp_scalar_exists_comparison) = (N)) -> (((exists ff_h_mdr_pfp_scalar_exists_comparisono. ff_h_mdr_pfp_scalar_exists_comparisono + S (mdr_a_pfp_scalar_exists_comparison) = S ((S (mdr_i_pfp_scalar_exists_comparison)) * x3)) /\ exists ff_q_mdr_pfp_scalar_exists_comparisono. x2 = ff_q_mdr_pfp_scalar_exists_comparisono * S ((S (mdr_i_pfp_scalar_exists_comparison)) * x3) + (mdr_a_pfp_scalar_exists_comparison))) -> (((exists ff_h_mdr_pfp_scalar_exists_comparisonn. ff_h_mdr_pfp_scalar_exists_comparisonn + S (mdr_a_pfp_scalar_exists_comparison) = S ((S (mdr_i_pfp_scalar_exists_comparison)) * x5)) /\ exists ff_q_mdr_pfp_scalar_exists_comparisonn. x4 = ff_q_mdr_pfp_scalar_exists_comparisonn * S ((S (mdr_i_pfp_scalar_exists_comparison)) * x5) + (mdr_a_pfp_scalar_exists_comparison)))))) - 0095
specialize prime_field_polynomial_convolution_right_scale_equal (p) - 0096
specialize prime_field_polynomial_convolution_right_scale_equal (k) - 0097
specialize prime_field_polynomial_convolution_right_scale_equal (ab) - 0098
specialize prime_field_polynomial_convolution_right_scale_equal (ac) - 0099
specialize prime_field_polynomial_convolution_right_scale_equal (L) - 0100
specialize prime_field_polynomial_convolution_right_scale_equal (bb) - 0101
specialize prime_field_polynomial_convolution_right_scale_equal (bc) - 0102
specialize prime_field_polynomial_convolution_right_scale_equal (M) - 0103
specialize prime_field_polynomial_convolution_right_scale_equal (x) - 0104
specialize prime_field_polynomial_convolution_right_scale_equal (x1) - 0105
specialize prime_field_polynomial_convolution_right_scale_equal (cb) - 0106
specialize prime_field_polynomial_convolution_right_scale_equal (cc) - 0107
specialize prime_field_polynomial_convolution_right_scale_equal (N) - 0108
specialize prime_field_polynomial_convolution_right_scale_equal (x2) - 0109
specialize prime_field_polynomial_convolution_right_scale_equal (x3) - 0110
specialize prime_field_polynomial_convolution_right_scale_equal (N) - 0111
specialize prime_field_polynomial_convolution_right_scale_equal (x4) - 0112
specialize prime_field_polynomial_convolution_right_scale_equal (x5) - 0113
apply prime_field_polynomial_convolution_right_scale_equal - 0114
exact hs_witness_witness - 0115
exact hc - 0116
exact hd_witness_witness - 0117
exact he_witness_witness - 0118
cases hdata - 0119
exact hdata_right