PX0058

prime_field_polynomial_division_residual_data_functional

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

Equal decoded quotients give equal actual ambient products and residuals, hence identical trim lengths and coefficientwise equal normalized remainders.

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 d qb qc QB QC q pb pc ub uc t rb rc R PB PC UB UC T RB RC K. (forall mdr_i_pfp_residual_unique_quotients mdr_a_pfp_residual_unique_quotients. (exists mdr_gap_pfp_residual_unique_quotientsb. mdr_gap_pfp_residual_unique_quotientsb + S (mdr_i_pfp_residual_unique_quotients) = (q)) -> (((exists ff_h_mdr_pfp_residual_unique_quotientso. ff_h_mdr_pfp_residual_unique_quotientso + S (mdr_a_pfp_residual_unique_quotients) = S ((S (mdr_i_pfp_residual_unique_quotients)) * qc)) /\ exists ff_q_mdr_pfp_residual_unique_quotientso. qb = ff_q_mdr_pfp_residual_unique_quotientso * S ((S (mdr_i_pfp_residual_unique_quotients)) * qc) + (mdr_a_pfp_residual_unique_quotients))) -> (((exists ff_h_mdr_pfp_residual_unique_quotientsn. ff_h_mdr_pfp_residual_unique_quotientsn + S (mdr_a_pfp_residual_unique_quotients) = S ((S (mdr_i_pfp_residual_unique_quotients)) * QC)) /\ exists ff_q_mdr_pfp_residual_unique_quotientsn. QB = ff_q_mdr_pfp_residual_unique_quotientsn * S ((S (mdr_i_pfp_residual_unique_quotients)) * QC) + (mdr_a_pfp_residual_unique_quotients)))) -> (((forall pfc_index_residual_unique_firstproduct. (exists pfa_gap_residual_unique_firstproductbound. pfa_gap_residual_unique_firstproductbound + S (pfc_index_residual_unique_firstproduct) = (L)) -> exists pfc_value_residual_unique_firstproduct. ((((exists ff_h_pfp_residual_unique_firstproductentry. ff_h_pfp_residual_unique_firstproductentry + S (pfc_value_residual_unique_firstproduct) = S ((S (pfc_index_residual_unique_firstproduct)) * pc)) /\ exists ff_q_pfp_residual_unique_firstproductentry. pb = ff_q_pfp_residual_unique_firstproductentry * S ((S (pfc_index_residual_unique_firstproduct)) * pc) + (pfc_value_residual_unique_firstproduct))) /\ ((exists pfc_terms_code_residual_unique_firstproductcoefficient pfc_terms_scale_residual_unique_firstproductcoefficient pfc_natural_sum_residual_unique_firstproductcoefficient. ((forall pfc_index_residual_unique_firstproductcoefficientdiagonal. (exists pfa_gap_residual_unique_firstproductcoefficientdiagonalbound. pfa_gap_residual_unique_firstproductcoefficientdiagonalbound + S (pfc_index_residual_unique_firstproductcoefficientdiagonal) = (S (pfc_index_residual_unique_firstproduct))) -> exists pfc_value_residual_unique_firstproductcoefficientdiagonal. ((((exists ff_h_pfp_residual_unique_firstproductcoefficientdiagonalentry. ff_h_pfp_residual_unique_firstproductcoefficientdiagonalentry + S (pfc_value_residual_unique_firstproductcoefficientdiagonal) = S ((S (pfc_index_residual_unique_firstproductcoefficientdiagonal)) * pfc_terms_scale_residual_unique_firstproductcoefficient)) /\ exists ff_q_pfp_residual_unique_firstproductcoefficientdiagonalentry. pfc_terms_code_residual_unique_firstproductcoefficient = ff_q_pfp_residual_unique_firstproductcoefficientdiagonalentry * S ((S (pfc_index_residual_unique_firstproductcoefficientdiagonal)) * pfc_terms_scale_residual_unique_firstproductcoefficient) + (pfc_value_residual_unique_firstproductcoefficientdiagonal))) /\ ((exists pfc_complement_residual_unique_firstproductcoefficientdiagonalterm pfc_left_residual_unique_firstproductcoefficientdiagonalterm pfc_right_residual_unique_firstproductcoefficientdiagonalterm. (((pfc_index_residual_unique_firstproductcoefficientdiagonal)+pfc_complement_residual_unique_firstproductcoefficientdiagonalterm=(pfc_index_residual_unique_firstproduct)) /\ ((((((exists pfa_gap_residual_unique_firstproductcoefficientdiagonaltermleftinside. pfa_gap_residual_unique_firstproductcoefficientdiagonaltermleftinside + S (pfc_index_residual_unique_firstproductcoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_residual_unique_firstproductcoefficientdiagonaltermleftentry. ff_h_pfp_residual_unique_firstproductcoefficientdiagonaltermleftentry + S (pfc_left_residual_unique_firstproductcoefficientdiagonalterm) = S ((S (pfc_index_residual_unique_firstproductcoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_residual_unique_firstproductcoefficientdiagonaltermleftentry. qb = ff_q_pfp_residual_unique_firstproductcoefficientdiagonaltermleftentry * S ((S (pfc_index_residual_unique_firstproductcoefficientdiagonal)) * qc) + (pfc_left_residual_unique_firstproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_residual_unique_firstproductcoefficientdiagonaltermleftoutside. pfc_gap_residual_unique_firstproductcoefficientdiagonaltermleftoutside+(q)=(pfc_index_residual_unique_firstproductcoefficientdiagonal)) /\ (((pfc_left_residual_unique_firstproductcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_residual_unique_firstproductcoefficientdiagonaltermrightinside. pfa_gap_residual_unique_firstproductcoefficientdiagonaltermrightinside + S (pfc_complement_residual_unique_firstproductcoefficientdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_residual_unique_firstproductcoefficientdiagonaltermrightentry. ff_h_pfp_residual_unique_firstproductcoefficientdiagonaltermrightentry + S (pfc_right_residual_unique_firstproductcoefficientdiagonalterm) = S ((S (pfc_complement_residual_unique_firstproductcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_residual_unique_firstproductcoefficientdiagonaltermrightentry. bb = ff_q_pfp_residual_unique_firstproductcoefficientdiagonaltermrightentry * S ((S (pfc_complement_residual_unique_firstproductcoefficientdiagonalterm)) * bc) + (pfc_right_residual_unique_firstproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_residual_unique_firstproductcoefficientdiagonaltermrightoutside. pfc_gap_residual_unique_firstproductcoefficientdiagonaltermrightoutside+(S (d))=(pfc_complement_residual_unique_firstproductcoefficientdiagonalterm)) /\ (((pfc_right_residual_unique_firstproductcoefficientdiagonalterm)=0))))) /\ (((pfc_value_residual_unique_firstproductcoefficientdiagonal)=pfc_left_residual_unique_firstproductcoefficientdiagonalterm*pfc_right_residual_unique_firstproductcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_residual_unique_firstproductcoefficientsum fs_v_pfc_residual_unique_firstproductcoefficientsum. ((((exists fs_h_pfc_residual_unique_firstproductcoefficientsum_body_start. fs_h_pfc_residual_unique_firstproductcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_residual_unique_firstproductcoefficientsum)) /\ exists fs_q_pfc_residual_unique_firstproductcoefficientsum_body_start. fs_u_pfc_residual_unique_firstproductcoefficientsum = fs_q_pfc_residual_unique_firstproductcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_residual_unique_firstproductcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_residual_unique_firstproductcoefficientsum_body_terminal. fs_h_pfc_residual_unique_firstproductcoefficientsum_body_terminal + S (pfc_natural_sum_residual_unique_firstproductcoefficient) = S ((S (S (pfc_index_residual_unique_firstproduct))) * fs_v_pfc_residual_unique_firstproductcoefficientsum)) /\ exists fs_q_pfc_residual_unique_firstproductcoefficientsum_body_terminal. fs_u_pfc_residual_unique_firstproductcoefficientsum = fs_q_pfc_residual_unique_firstproductcoefficientsum_body_terminal * S ((S (S (pfc_index_residual_unique_firstproduct))) * fs_v_pfc_residual_unique_firstproductcoefficientsum) + (pfc_natural_sum_residual_unique_firstproductcoefficient))) /\ forall fs_i_pfc_residual_unique_firstproductcoefficientsum_body_steps. (exists fs_lt_pfc_residual_unique_firstproductcoefficientsum_body_steps_bound. fs_lt_pfc_residual_unique_firstproductcoefficientsum_body_steps_bound + S fs_i_pfc_residual_unique_firstproductcoefficientsum_body_steps = S (pfc_index_residual_unique_firstproduct)) -> exists fs_a_pfc_residual_unique_firstproductcoefficientsum_body_steps fs_r_pfc_residual_unique_firstproductcoefficientsum_body_steps fs_s_pfc_residual_unique_firstproductcoefficientsum_body_steps. ((((exists fs_h_pfc_residual_unique_firstproductcoefficientsum_body_steps_summand. fs_h_pfc_residual_unique_firstproductcoefficientsum_body_steps_summand + S (fs_a_pfc_residual_unique_firstproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_residual_unique_firstproductcoefficientsum_body_steps)) * pfc_terms_scale_residual_unique_firstproductcoefficient)) /\ exists fs_q_pfc_residual_unique_firstproductcoefficientsum_body_steps_summand. pfc_terms_code_residual_unique_firstproductcoefficient = fs_q_pfc_residual_unique_firstproductcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_residual_unique_firstproductcoefficientsum_body_steps)) * pfc_terms_scale_residual_unique_firstproductcoefficient) + (fs_a_pfc_residual_unique_firstproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_residual_unique_firstproductcoefficientsum_body_steps_partial. fs_h_pfc_residual_unique_firstproductcoefficientsum_body_steps_partial + S (fs_r_pfc_residual_unique_firstproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_residual_unique_firstproductcoefficientsum_body_steps)) * fs_v_pfc_residual_unique_firstproductcoefficientsum)) /\ exists fs_q_pfc_residual_unique_firstproductcoefficientsum_body_steps_partial. fs_u_pfc_residual_unique_firstproductcoefficientsum = fs_q_pfc_residual_unique_firstproductcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_residual_unique_firstproductcoefficientsum_body_steps)) * fs_v_pfc_residual_unique_firstproductcoefficientsum) + (fs_r_pfc_residual_unique_firstproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_residual_unique_firstproductcoefficientsum_body_steps_successor. fs_h_pfc_residual_unique_firstproductcoefficientsum_body_steps_successor + S (fs_s_pfc_residual_unique_firstproductcoefficientsum_body_steps) = S ((S (S fs_i_pfc_residual_unique_firstproductcoefficientsum_body_steps)) * fs_v_pfc_residual_unique_firstproductcoefficientsum)) /\ exists fs_q_pfc_residual_unique_firstproductcoefficientsum_body_steps_successor. fs_u_pfc_residual_unique_firstproductcoefficientsum = fs_q_pfc_residual_unique_firstproductcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_residual_unique_firstproductcoefficientsum_body_steps)) * fs_v_pfc_residual_unique_firstproductcoefficientsum) + (fs_s_pfc_residual_unique_firstproductcoefficientsum_body_steps))) /\ fs_s_pfc_residual_unique_firstproductcoefficientsum_body_steps = fs_r_pfc_residual_unique_firstproductcoefficientsum_body_steps + fs_a_pfc_residual_unique_firstproductcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_residual_unique_firstproductcoefficientresiduebound. pfa_gap_residual_unique_firstproductcoefficientresiduebound + S (pfc_value_residual_unique_firstproduct) = (p)) /\ ((exists pfa_offset_left_residual_unique_firstproductcoefficientresiduecongruence pfa_offset_right_residual_unique_firstproductcoefficientresiduecongruence. (pfc_natural_sum_residual_unique_firstproductcoefficient) + (p) * pfa_offset_left_residual_unique_firstproductcoefficientresiduecongruence = (pfc_value_residual_unique_firstproduct) + (p) * pfa_offset_right_residual_unique_firstproductcoefficientresiduecongruence)))))))))))) /\ (((forall pfs_index_residual_unique_firstdifference. (exists pfa_gap_residual_unique_firstdifferenceindex. pfa_gap_residual_unique_firstdifferenceindex + S (pfs_index_residual_unique_firstdifference) = (L)) -> exists pfs_left_residual_unique_firstdifference pfs_right_residual_unique_firstdifference pfs_result_residual_unique_firstdifference. ((((exists ff_h_pfp_residual_unique_firstdifferenceleft. ff_h_pfp_residual_unique_firstdifferenceleft + S (pfs_left_residual_unique_firstdifference) = S ((S (pfs_index_residual_unique_firstdifference)) * ac)) /\ exists ff_q_pfp_residual_unique_firstdifferenceleft. ab = ff_q_pfp_residual_unique_firstdifferenceleft * S ((S (pfs_index_residual_unique_firstdifference)) * ac) + (pfs_left_residual_unique_firstdifference))) /\ (((((exists ff_h_pfp_residual_unique_firstdifferenceright. ff_h_pfp_residual_unique_firstdifferenceright + S (pfs_right_residual_unique_firstdifference) = S ((S (pfs_index_residual_unique_firstdifference)) * pc)) /\ exists ff_q_pfp_residual_unique_firstdifferenceright. pb = ff_q_pfp_residual_unique_firstdifferenceright * S ((S (pfs_index_residual_unique_firstdifference)) * pc) + (pfs_right_residual_unique_firstdifference))) /\ (((((exists ff_h_pfp_residual_unique_firstdifferenceresult. ff_h_pfp_residual_unique_firstdifferenceresult + S (pfs_result_residual_unique_firstdifference) = S ((S (pfs_index_residual_unique_firstdifference)) * uc)) /\ exists ff_q_pfp_residual_unique_firstdifferenceresult. ub = ff_q_pfp_residual_unique_firstdifferenceresult * S ((S (pfs_index_residual_unique_firstdifference)) * uc) + (pfs_result_residual_unique_firstdifference))) /\ ((((exists pfa_gap_residual_unique_firstdifferenceoperationleft. pfa_gap_residual_unique_firstdifferenceoperationleft + S (pfs_right_residual_unique_firstdifference) = (p)) /\ (((exists pfa_gap_residual_unique_firstdifferenceoperationright. pfa_gap_residual_unique_firstdifferenceoperationright + S (pfs_result_residual_unique_firstdifference) = (p)) /\ ((((exists pfa_gap_residual_unique_firstdifferenceoperationresultbound. pfa_gap_residual_unique_firstdifferenceoperationresultbound + S (pfs_left_residual_unique_firstdifference) = (p)) /\ ((exists pfa_offset_left_residual_unique_firstdifferenceoperationresultcongruence pfa_offset_right_residual_unique_firstdifferenceoperationresultcongruence. ((pfs_right_residual_unique_firstdifference) + (pfs_result_residual_unique_firstdifference)) + (p) * pfa_offset_left_residual_unique_firstdifferenceoperationresultcongruence = (pfs_left_residual_unique_firstdifference) + (p) * pfa_offset_right_residual_unique_firstdifferenceoperationresultcongruence)))))))))))))))) /\ (((((L)=(t)+(R)) /\ (((forall fom_index_pfp_residual_unique_firsttriminput. (exists fom_gap_pfp_residual_unique_firsttriminput_index_bound. fom_gap_pfp_residual_unique_firsttriminput_index_bound + S (fom_index_pfp_residual_unique_firsttriminput) = L) -> exists fom_value_pfp_residual_unique_firsttriminput. ((((exists fom_beta_height_pfp_residual_unique_firsttriminput_entry. fom_beta_height_pfp_residual_unique_firsttriminput_entry + S (fom_value_pfp_residual_unique_firsttriminput) = S ((S (fom_index_pfp_residual_unique_firsttriminput)) * uc)) /\ exists fom_beta_quotient_pfp_residual_unique_firsttriminput_entry. ub = fom_beta_quotient_pfp_residual_unique_firsttriminput_entry * S ((S (fom_index_pfp_residual_unique_firsttriminput)) * uc) + (fom_value_pfp_residual_unique_firsttriminput))) /\ (exists fom_gap_pfp_residual_unique_firsttriminput_value_bound. fom_gap_pfp_residual_unique_firsttriminput_value_bound + S (fom_value_pfp_residual_unique_firsttriminput) = p))) /\ (((forall pfp_repeat_index_residual_unique_firsttrimremoved. (exists pfa_gap_residual_unique_firsttrimremovedindex. pfa_gap_residual_unique_firsttrimremovedindex + S (pfp_repeat_index_residual_unique_firsttrimremoved) = (t)) -> (((exists ff_h_pfp_residual_unique_firsttrimremovedentry. ff_h_pfp_residual_unique_firsttrimremovedentry + S (0) = S ((S (pfp_repeat_index_residual_unique_firsttrimremoved)) * uc)) /\ exists ff_q_pfp_residual_unique_firsttrimremovedentry. ub = ff_q_pfp_residual_unique_firsttrimremovedentry * S ((S (pfp_repeat_index_residual_unique_firsttrimremoved)) * uc) + (0)))) /\ (((forall pftrim_index_residual_unique_firsttrimsuffix pftrim_value_residual_unique_firsttrimsuffix. (exists pfa_gap_residual_unique_firsttrimsuffixbound. pfa_gap_residual_unique_firsttrimsuffixbound + S (pftrim_index_residual_unique_firsttrimsuffix) = (R)) -> (((exists ff_h_pfp_residual_unique_firsttrimsuffixsource. ff_h_pfp_residual_unique_firsttrimsuffixsource + S (pftrim_value_residual_unique_firsttrimsuffix) = S ((S ((t)+pftrim_index_residual_unique_firsttrimsuffix)) * uc)) /\ exists ff_q_pfp_residual_unique_firsttrimsuffixsource. ub = ff_q_pfp_residual_unique_firsttrimsuffixsource * S ((S ((t)+pftrim_index_residual_unique_firsttrimsuffix)) * uc) + (pftrim_value_residual_unique_firsttrimsuffix))) -> (((exists ff_h_pfp_residual_unique_firsttrimsuffixoutput. ff_h_pfp_residual_unique_firsttrimsuffixoutput + S (pftrim_value_residual_unique_firsttrimsuffix) = S ((S (pftrim_index_residual_unique_firsttrimsuffix)) * rc)) /\ exists ff_q_pfp_residual_unique_firsttrimsuffixoutput. rb = ff_q_pfp_residual_unique_firsttrimsuffixoutput * S ((S (pftrim_index_residual_unique_firsttrimsuffix)) * rc) + (pftrim_value_residual_unique_firsttrimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_residual_unique_firsttrimnormal. ((((exists ff_h_pfp_residual_unique_firsttrimnormalentry. ff_h_pfp_residual_unique_firsttrimnormalentry + S (pftrim_leading_residual_unique_firsttrimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_residual_unique_firsttrimnormalentry. rb = ff_q_pfp_residual_unique_firsttrimnormalentry * S ((S (0)) * rc) + (pftrim_leading_residual_unique_firsttrimnormal))) /\ ((~(pftrim_leading_residual_unique_firsttrimnormal=0)))))))))))))))))))) -> (((forall pfc_index_residual_unique_secondproduct. (exists pfa_gap_residual_unique_secondproductbound. pfa_gap_residual_unique_secondproductbound + S (pfc_index_residual_unique_secondproduct) = (L)) -> exists pfc_value_residual_unique_secondproduct. ((((exists ff_h_pfp_residual_unique_secondproductentry. ff_h_pfp_residual_unique_secondproductentry + S (pfc_value_residual_unique_secondproduct) = S ((S (pfc_index_residual_unique_secondproduct)) * PC)) /\ exists ff_q_pfp_residual_unique_secondproductentry. PB = ff_q_pfp_residual_unique_secondproductentry * S ((S (pfc_index_residual_unique_secondproduct)) * PC) + (pfc_value_residual_unique_secondproduct))) /\ ((exists pfc_terms_code_residual_unique_secondproductcoefficient pfc_terms_scale_residual_unique_secondproductcoefficient pfc_natural_sum_residual_unique_secondproductcoefficient. ((forall pfc_index_residual_unique_secondproductcoefficientdiagonal. (exists pfa_gap_residual_unique_secondproductcoefficientdiagonalbound. pfa_gap_residual_unique_secondproductcoefficientdiagonalbound + S (pfc_index_residual_unique_secondproductcoefficientdiagonal) = (S (pfc_index_residual_unique_secondproduct))) -> exists pfc_value_residual_unique_secondproductcoefficientdiagonal. ((((exists ff_h_pfp_residual_unique_secondproductcoefficientdiagonalentry. ff_h_pfp_residual_unique_secondproductcoefficientdiagonalentry + S (pfc_value_residual_unique_secondproductcoefficientdiagonal) = S ((S (pfc_index_residual_unique_secondproductcoefficientdiagonal)) * pfc_terms_scale_residual_unique_secondproductcoefficient)) /\ exists ff_q_pfp_residual_unique_secondproductcoefficientdiagonalentry. pfc_terms_code_residual_unique_secondproductcoefficient = ff_q_pfp_residual_unique_secondproductcoefficientdiagonalentry * S ((S (pfc_index_residual_unique_secondproductcoefficientdiagonal)) * pfc_terms_scale_residual_unique_secondproductcoefficient) + (pfc_value_residual_unique_secondproductcoefficientdiagonal))) /\ ((exists pfc_complement_residual_unique_secondproductcoefficientdiagonalterm pfc_left_residual_unique_secondproductcoefficientdiagonalterm pfc_right_residual_unique_secondproductcoefficientdiagonalterm. (((pfc_index_residual_unique_secondproductcoefficientdiagonal)+pfc_complement_residual_unique_secondproductcoefficientdiagonalterm=(pfc_index_residual_unique_secondproduct)) /\ ((((((exists pfa_gap_residual_unique_secondproductcoefficientdiagonaltermleftinside. pfa_gap_residual_unique_secondproductcoefficientdiagonaltermleftinside + S (pfc_index_residual_unique_secondproductcoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_residual_unique_secondproductcoefficientdiagonaltermleftentry. ff_h_pfp_residual_unique_secondproductcoefficientdiagonaltermleftentry + S (pfc_left_residual_unique_secondproductcoefficientdiagonalterm) = S ((S (pfc_index_residual_unique_secondproductcoefficientdiagonal)) * QC)) /\ exists ff_q_pfp_residual_unique_secondproductcoefficientdiagonaltermleftentry. QB = ff_q_pfp_residual_unique_secondproductcoefficientdiagonaltermleftentry * S ((S (pfc_index_residual_unique_secondproductcoefficientdiagonal)) * QC) + (pfc_left_residual_unique_secondproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_residual_unique_secondproductcoefficientdiagonaltermleftoutside. pfc_gap_residual_unique_secondproductcoefficientdiagonaltermleftoutside+(q)=(pfc_index_residual_unique_secondproductcoefficientdiagonal)) /\ (((pfc_left_residual_unique_secondproductcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_residual_unique_secondproductcoefficientdiagonaltermrightinside. pfa_gap_residual_unique_secondproductcoefficientdiagonaltermrightinside + S (pfc_complement_residual_unique_secondproductcoefficientdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_residual_unique_secondproductcoefficientdiagonaltermrightentry. ff_h_pfp_residual_unique_secondproductcoefficientdiagonaltermrightentry + S (pfc_right_residual_unique_secondproductcoefficientdiagonalterm) = S ((S (pfc_complement_residual_unique_secondproductcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_residual_unique_secondproductcoefficientdiagonaltermrightentry. bb = ff_q_pfp_residual_unique_secondproductcoefficientdiagonaltermrightentry * S ((S (pfc_complement_residual_unique_secondproductcoefficientdiagonalterm)) * bc) + (pfc_right_residual_unique_secondproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_residual_unique_secondproductcoefficientdiagonaltermrightoutside. pfc_gap_residual_unique_secondproductcoefficientdiagonaltermrightoutside+(S (d))=(pfc_complement_residual_unique_secondproductcoefficientdiagonalterm)) /\ (((pfc_right_residual_unique_secondproductcoefficientdiagonalterm)=0))))) /\ (((pfc_value_residual_unique_secondproductcoefficientdiagonal)=pfc_left_residual_unique_secondproductcoefficientdiagonalterm*pfc_right_residual_unique_secondproductcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_residual_unique_secondproductcoefficientsum fs_v_pfc_residual_unique_secondproductcoefficientsum. ((((exists fs_h_pfc_residual_unique_secondproductcoefficientsum_body_start. fs_h_pfc_residual_unique_secondproductcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_residual_unique_secondproductcoefficientsum)) /\ exists fs_q_pfc_residual_unique_secondproductcoefficientsum_body_start. fs_u_pfc_residual_unique_secondproductcoefficientsum = fs_q_pfc_residual_unique_secondproductcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_residual_unique_secondproductcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_residual_unique_secondproductcoefficientsum_body_terminal. fs_h_pfc_residual_unique_secondproductcoefficientsum_body_terminal + S (pfc_natural_sum_residual_unique_secondproductcoefficient) = S ((S (S (pfc_index_residual_unique_secondproduct))) * fs_v_pfc_residual_unique_secondproductcoefficientsum)) /\ exists fs_q_pfc_residual_unique_secondproductcoefficientsum_body_terminal. fs_u_pfc_residual_unique_secondproductcoefficientsum = fs_q_pfc_residual_unique_secondproductcoefficientsum_body_terminal * S ((S (S (pfc_index_residual_unique_secondproduct))) * fs_v_pfc_residual_unique_secondproductcoefficientsum) + (pfc_natural_sum_residual_unique_secondproductcoefficient))) /\ forall fs_i_pfc_residual_unique_secondproductcoefficientsum_body_steps. (exists fs_lt_pfc_residual_unique_secondproductcoefficientsum_body_steps_bound. fs_lt_pfc_residual_unique_secondproductcoefficientsum_body_steps_bound + S fs_i_pfc_residual_unique_secondproductcoefficientsum_body_steps = S (pfc_index_residual_unique_secondproduct)) -> exists fs_a_pfc_residual_unique_secondproductcoefficientsum_body_steps fs_r_pfc_residual_unique_secondproductcoefficientsum_body_steps fs_s_pfc_residual_unique_secondproductcoefficientsum_body_steps. ((((exists fs_h_pfc_residual_unique_secondproductcoefficientsum_body_steps_summand. fs_h_pfc_residual_unique_secondproductcoefficientsum_body_steps_summand + S (fs_a_pfc_residual_unique_secondproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_residual_unique_secondproductcoefficientsum_body_steps)) * pfc_terms_scale_residual_unique_secondproductcoefficient)) /\ exists fs_q_pfc_residual_unique_secondproductcoefficientsum_body_steps_summand. pfc_terms_code_residual_unique_secondproductcoefficient = fs_q_pfc_residual_unique_secondproductcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_residual_unique_secondproductcoefficientsum_body_steps)) * pfc_terms_scale_residual_unique_secondproductcoefficient) + (fs_a_pfc_residual_unique_secondproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_residual_unique_secondproductcoefficientsum_body_steps_partial. fs_h_pfc_residual_unique_secondproductcoefficientsum_body_steps_partial + S (fs_r_pfc_residual_unique_secondproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_residual_unique_secondproductcoefficientsum_body_steps)) * fs_v_pfc_residual_unique_secondproductcoefficientsum)) /\ exists fs_q_pfc_residual_unique_secondproductcoefficientsum_body_steps_partial. fs_u_pfc_residual_unique_secondproductcoefficientsum = fs_q_pfc_residual_unique_secondproductcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_residual_unique_secondproductcoefficientsum_body_steps)) * fs_v_pfc_residual_unique_secondproductcoefficientsum) + (fs_r_pfc_residual_unique_secondproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_residual_unique_secondproductcoefficientsum_body_steps_successor. fs_h_pfc_residual_unique_secondproductcoefficientsum_body_steps_successor + S (fs_s_pfc_residual_unique_secondproductcoefficientsum_body_steps) = S ((S (S fs_i_pfc_residual_unique_secondproductcoefficientsum_body_steps)) * fs_v_pfc_residual_unique_secondproductcoefficientsum)) /\ exists fs_q_pfc_residual_unique_secondproductcoefficientsum_body_steps_successor. fs_u_pfc_residual_unique_secondproductcoefficientsum = fs_q_pfc_residual_unique_secondproductcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_residual_unique_secondproductcoefficientsum_body_steps)) * fs_v_pfc_residual_unique_secondproductcoefficientsum) + (fs_s_pfc_residual_unique_secondproductcoefficientsum_body_steps))) /\ fs_s_pfc_residual_unique_secondproductcoefficientsum_body_steps = fs_r_pfc_residual_unique_secondproductcoefficientsum_body_steps + fs_a_pfc_residual_unique_secondproductcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_residual_unique_secondproductcoefficientresiduebound. pfa_gap_residual_unique_secondproductcoefficientresiduebound + S (pfc_value_residual_unique_secondproduct) = (p)) /\ ((exists pfa_offset_left_residual_unique_secondproductcoefficientresiduecongruence pfa_offset_right_residual_unique_secondproductcoefficientresiduecongruence. (pfc_natural_sum_residual_unique_secondproductcoefficient) + (p) * pfa_offset_left_residual_unique_secondproductcoefficientresiduecongruence = (pfc_value_residual_unique_secondproduct) + (p) * pfa_offset_right_residual_unique_secondproductcoefficientresiduecongruence)))))))))))) /\ (((forall pfs_index_residual_unique_seconddifference. (exists pfa_gap_residual_unique_seconddifferenceindex. pfa_gap_residual_unique_seconddifferenceindex + S (pfs_index_residual_unique_seconddifference) = (L)) -> exists pfs_left_residual_unique_seconddifference pfs_right_residual_unique_seconddifference pfs_result_residual_unique_seconddifference. ((((exists ff_h_pfp_residual_unique_seconddifferenceleft. ff_h_pfp_residual_unique_seconddifferenceleft + S (pfs_left_residual_unique_seconddifference) = S ((S (pfs_index_residual_unique_seconddifference)) * ac)) /\ exists ff_q_pfp_residual_unique_seconddifferenceleft. ab = ff_q_pfp_residual_unique_seconddifferenceleft * S ((S (pfs_index_residual_unique_seconddifference)) * ac) + (pfs_left_residual_unique_seconddifference))) /\ (((((exists ff_h_pfp_residual_unique_seconddifferenceright. ff_h_pfp_residual_unique_seconddifferenceright + S (pfs_right_residual_unique_seconddifference) = S ((S (pfs_index_residual_unique_seconddifference)) * PC)) /\ exists ff_q_pfp_residual_unique_seconddifferenceright. PB = ff_q_pfp_residual_unique_seconddifferenceright * S ((S (pfs_index_residual_unique_seconddifference)) * PC) + (pfs_right_residual_unique_seconddifference))) /\ (((((exists ff_h_pfp_residual_unique_seconddifferenceresult. ff_h_pfp_residual_unique_seconddifferenceresult + S (pfs_result_residual_unique_seconddifference) = S ((S (pfs_index_residual_unique_seconddifference)) * UC)) /\ exists ff_q_pfp_residual_unique_seconddifferenceresult. UB = ff_q_pfp_residual_unique_seconddifferenceresult * S ((S (pfs_index_residual_unique_seconddifference)) * UC) + (pfs_result_residual_unique_seconddifference))) /\ ((((exists pfa_gap_residual_unique_seconddifferenceoperationleft. pfa_gap_residual_unique_seconddifferenceoperationleft + S (pfs_right_residual_unique_seconddifference) = (p)) /\ (((exists pfa_gap_residual_unique_seconddifferenceoperationright. pfa_gap_residual_unique_seconddifferenceoperationright + S (pfs_result_residual_unique_seconddifference) = (p)) /\ ((((exists pfa_gap_residual_unique_seconddifferenceoperationresultbound. pfa_gap_residual_unique_seconddifferenceoperationresultbound + S (pfs_left_residual_unique_seconddifference) = (p)) /\ ((exists pfa_offset_left_residual_unique_seconddifferenceoperationresultcongruence pfa_offset_right_residual_unique_seconddifferenceoperationresultcongruence. ((pfs_right_residual_unique_seconddifference) + (pfs_result_residual_unique_seconddifference)) + (p) * pfa_offset_left_residual_unique_seconddifferenceoperationresultcongruence = (pfs_left_residual_unique_seconddifference) + (p) * pfa_offset_right_residual_unique_seconddifferenceoperationresultcongruence)))))))))))))))) /\ (((((L)=(T)+(K)) /\ (((forall fom_index_pfp_residual_unique_secondtriminput. (exists fom_gap_pfp_residual_unique_secondtriminput_index_bound. fom_gap_pfp_residual_unique_secondtriminput_index_bound + S (fom_index_pfp_residual_unique_secondtriminput) = L) -> exists fom_value_pfp_residual_unique_secondtriminput. ((((exists fom_beta_height_pfp_residual_unique_secondtriminput_entry. fom_beta_height_pfp_residual_unique_secondtriminput_entry + S (fom_value_pfp_residual_unique_secondtriminput) = S ((S (fom_index_pfp_residual_unique_secondtriminput)) * UC)) /\ exists fom_beta_quotient_pfp_residual_unique_secondtriminput_entry. UB = fom_beta_quotient_pfp_residual_unique_secondtriminput_entry * S ((S (fom_index_pfp_residual_unique_secondtriminput)) * UC) + (fom_value_pfp_residual_unique_secondtriminput))) /\ (exists fom_gap_pfp_residual_unique_secondtriminput_value_bound. fom_gap_pfp_residual_unique_secondtriminput_value_bound + S (fom_value_pfp_residual_unique_secondtriminput) = p))) /\ (((forall pfp_repeat_index_residual_unique_secondtrimremoved. (exists pfa_gap_residual_unique_secondtrimremovedindex. pfa_gap_residual_unique_secondtrimremovedindex + S (pfp_repeat_index_residual_unique_secondtrimremoved) = (T)) -> (((exists ff_h_pfp_residual_unique_secondtrimremovedentry. ff_h_pfp_residual_unique_secondtrimremovedentry + S (0) = S ((S (pfp_repeat_index_residual_unique_secondtrimremoved)) * UC)) /\ exists ff_q_pfp_residual_unique_secondtrimremovedentry. UB = ff_q_pfp_residual_unique_secondtrimremovedentry * S ((S (pfp_repeat_index_residual_unique_secondtrimremoved)) * UC) + (0)))) /\ (((forall pftrim_index_residual_unique_secondtrimsuffix pftrim_value_residual_unique_secondtrimsuffix. (exists pfa_gap_residual_unique_secondtrimsuffixbound. pfa_gap_residual_unique_secondtrimsuffixbound + S (pftrim_index_residual_unique_secondtrimsuffix) = (K)) -> (((exists ff_h_pfp_residual_unique_secondtrimsuffixsource. ff_h_pfp_residual_unique_secondtrimsuffixsource + S (pftrim_value_residual_unique_secondtrimsuffix) = S ((S ((T)+pftrim_index_residual_unique_secondtrimsuffix)) * UC)) /\ exists ff_q_pfp_residual_unique_secondtrimsuffixsource. UB = ff_q_pfp_residual_unique_secondtrimsuffixsource * S ((S ((T)+pftrim_index_residual_unique_secondtrimsuffix)) * UC) + (pftrim_value_residual_unique_secondtrimsuffix))) -> (((exists ff_h_pfp_residual_unique_secondtrimsuffixoutput. ff_h_pfp_residual_unique_secondtrimsuffixoutput + S (pftrim_value_residual_unique_secondtrimsuffix) = S ((S (pftrim_index_residual_unique_secondtrimsuffix)) * RC)) /\ exists ff_q_pfp_residual_unique_secondtrimsuffixoutput. RB = ff_q_pfp_residual_unique_secondtrimsuffixoutput * S ((S (pftrim_index_residual_unique_secondtrimsuffix)) * RC) + (pftrim_value_residual_unique_secondtrimsuffix)))) /\ (((K)=0 \/ (exists pftrim_leading_residual_unique_secondtrimnormal. ((((exists ff_h_pfp_residual_unique_secondtrimnormalentry. ff_h_pfp_residual_unique_secondtrimnormalentry + S (pftrim_leading_residual_unique_secondtrimnormal) = S ((S (0)) * RC)) /\ exists ff_q_pfp_residual_unique_secondtrimnormalentry. RB = ff_q_pfp_residual_unique_secondtrimnormalentry * S ((S (0)) * RC) + (pftrim_leading_residual_unique_secondtrimnormal))) /\ ((~(pftrim_leading_residual_unique_secondtrimnormal=0)))))))))))))))))))) -> (((t=T) /\ (((R=K) /\ ((forall mdr_i_pfp_residual_unique_output mdr_a_pfp_residual_unique_output. (exists mdr_gap_pfp_residual_unique_outputb. mdr_gap_pfp_residual_unique_outputb + S (mdr_i_pfp_residual_unique_output) = (R)) -> (((exists ff_h_mdr_pfp_residual_unique_outputo. ff_h_mdr_pfp_residual_unique_outputo + S (mdr_a_pfp_residual_unique_output) = S ((S (mdr_i_pfp_residual_unique_output)) * rc)) /\ exists ff_q_mdr_pfp_residual_unique_outputo. rb = ff_q_mdr_pfp_residual_unique_outputo * S ((S (mdr_i_pfp_residual_unique_output)) * rc) + (mdr_a_pfp_residual_unique_output))) -> (((exists ff_h_mdr_pfp_residual_unique_outputn. ff_h_mdr_pfp_residual_unique_outputn + S (mdr_a_pfp_residual_unique_output) = S ((S (mdr_i_pfp_residual_unique_output)) * RC)) /\ exists ff_q_mdr_pfp_residual_unique_outputn. RB = ff_q_mdr_pfp_residual_unique_outputn * S ((S (mdr_i_pfp_residual_unique_output)) * RC) + (mdr_a_pfp_residual_unique_output)))))))))

Constructive proof overview

Generated structural guide

Equal decoded quotients give equal actual ambient products and residuals, hence identical trim lengths and coefficientwise equal normalized remainders.

The unchanged tactic script uses 8 declared prerequisites and contains 177 exact native proof lines.

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

Proof neighborhood

Direct dependencies

prime_field_convolution_prefix_input_transport Alpha theorem; checked-use authorized prime_field_convolution_prefix_functional Alpha theorem; checked-use authorized prime_field_polynomial_subtract_transport Alpha theorem; checked-use authorized prime_field_polynomial_subtract_functional Alpha theorem; checked-use authorized PX0056 prime_field_polynomial_trim_input_transport prime_field_polynomial_trim_removed_count_unique Alpha theorem; checked-use authorized prime_field_polynomial_trim_retained_length_unique Alpha theorem; checked-use authorized prime_field_polynomial_trim_output_equal 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

177 script commands · 28 reading checkpoints · 5 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 (1)

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 d
  8. L8
    intro qb
  9. L9
    intro qc
  10. L10
    intro QB
02Fix variables and assumptionsL11–20

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

  1. L11
    intro QC
  2. L12
    intro q
  3. L13
    intro pb
  4. L14
    intro pc
  5. L15
    intro ub
  6. L16
    intro uc
  7. L17
    intro t
  8. L18
    intro rb
  9. L19
    intro rc
  10. L20
    intro R
03Fix variables and assumptionsL21–30

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

  1. L21
    intro PB
  2. L22
    intro PC
  3. L23
    intro UB
  4. L24
    intro UC
  5. L25
    intro T
  6. L26
    intro RB
  7. L27
    intro RC
  8. L28
    intro K
  9. L29
    intro hequal
  10. L30
    intro hfirst
04Fix variables and assumptionsL31–31

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

  1. L31
    intro hsecond
05Separate the logical casesL32–35

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

  1. L32
    cases hfirst
  2. L33
    cases hfirst_right
  3. L34
    cases hsecond
  4. L35
    cases hsecond_right
06Establish hproductL36–45

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

  1. L36
    have hproduct : FpConvolutionPrefix(p,QB,QC,q,bb,bc,S d,pb,pc,L)Definitions: FpConvolutionPrefix
  2. L37
    specialize prime_field_convolution_prefix_input_transport (p)
  3. L38
    specialize prime_field_convolution_prefix_input_transport (qb)
  4. L39
    specialize prime_field_convolution_prefix_input_transport (qc)
  5. L40
    specialize prime_field_convolution_prefix_input_transport (q)
  6. L41
    specialize prime_field_convolution_prefix_input_transport (bb)
  7. L42
    specialize prime_field_convolution_prefix_input_transport (bc)
  8. L43
    specialize prime_field_convolution_prefix_input_transport (S d)
  9. L44
    specialize prime_field_convolution_prefix_input_transport (QB)
  10. L45
    specialize prime_field_convolution_prefix_input_transport (QC)
07Use earlier factsL46–52

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

  1. L46
    specialize prime_field_convolution_prefix_input_transport (bb)
  2. L47
    specialize prime_field_convolution_prefix_input_transport (bc)
  3. L48
    specialize prime_field_convolution_prefix_input_transport (pb)
  4. L49
    specialize prime_field_convolution_prefix_input_transport (pc)
  5. L50
    specialize prime_field_convolution_prefix_input_transport (L)
  6. L51
    apply prime_field_convolution_prefix_input_transport
  7. L52
    exact hequal
08Fix variables and assumptionsL53–56

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

  1. L53
    intro i
  2. L54
    intro a
  3. L55
    intro hindex
  4. L56
    intro hvalue
09Use earlier factsL57–58

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

  1. L57
    exact hvalue
  2. L58
    exact hfirst_left
10Establish hproductsL59–68

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

  1. L59
    have hproducts : BetaPrefixEqual(pb,pc,PB,PC,L)Definitions: BetaPrefixEqual
  2. L60
    specialize prime_field_convolution_prefix_functional (p)
  3. L61
    specialize prime_field_convolution_prefix_functional (QB)
  4. L62
    specialize prime_field_convolution_prefix_functional (QC)
  5. L63
    specialize prime_field_convolution_prefix_functional (q)
  6. L64
    specialize prime_field_convolution_prefix_functional (bb)
  7. L65
    specialize prime_field_convolution_prefix_functional (bc)
  8. L66
    specialize prime_field_convolution_prefix_functional (S d)
  9. L67
    specialize prime_field_convolution_prefix_functional (pb)
  10. L68
    specialize prime_field_convolution_prefix_functional (pc)
11Use earlier factsL69–74

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

  1. L69
    specialize prime_field_convolution_prefix_functional (PB)
  2. L70
    specialize prime_field_convolution_prefix_functional (PC)
  3. L71
    specialize prime_field_convolution_prefix_functional (L)
  4. L72
    apply prime_field_convolution_prefix_functional
  5. L73
    exact hproduct
  6. L74
    exact hsecond_left
12Establish hsubtractL75–84

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

  1. L75
    have hsubtract : FpCoefficientSubtraction(p,ab,ac,PB,PC,ub,uc,L)Definitions: FpCoefficientSubtraction
  2. L76
    specialize prime_field_polynomial_subtract_transport (p)
  3. L77
    specialize prime_field_polynomial_subtract_transport (ab)
  4. L78
    specialize prime_field_polynomial_subtract_transport (ac)
  5. L79
    specialize prime_field_polynomial_subtract_transport (pb)
  6. L80
    specialize prime_field_polynomial_subtract_transport (pc)
  7. L81
    specialize prime_field_polynomial_subtract_transport (ub)
  8. L82
    specialize prime_field_polynomial_subtract_transport (uc)
  9. L83
    specialize prime_field_polynomial_subtract_transport (ab)
  10. L84
    specialize prime_field_polynomial_subtract_transport (ac)
13Use earlier factsL85–90

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

  1. L85
    specialize prime_field_polynomial_subtract_transport (PB)
  2. L86
    specialize prime_field_polynomial_subtract_transport (PC)
  3. L87
    specialize prime_field_polynomial_subtract_transport (ub)
  4. L88
    specialize prime_field_polynomial_subtract_transport (uc)
  5. L89
    specialize prime_field_polynomial_subtract_transport (L)
  6. L90
    apply prime_field_polynomial_subtract_transport
14Fix variables and assumptionsL91–94

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

  1. L91
    intro i
  2. L92
    intro a
  3. L93
    intro hindex
  4. L94
    intro hvalue
15Use earlier factsL95–96

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

  1. L95
    exact hvalue
  2. L96
    exact hproducts
16Fix variables and assumptionsL97–100

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

  1. L97
    intro i
  2. L98
    intro a
  3. L99
    intro hindex
  4. L100
    intro hvalue
17Use earlier factsL101–102

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

  1. L101
    exact hvalue
  2. L102
    exact hfirst_right_left
18Establish hresidualsL103–112

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

  1. L103
    have hresiduals : BetaPrefixEqual(ub,uc,UB,UC,L)Definitions: BetaPrefixEqual
  2. L104
    specialize prime_field_polynomial_subtract_functional (p)
  3. L105
    specialize prime_field_polynomial_subtract_functional (ab)
  4. L106
    specialize prime_field_polynomial_subtract_functional (ac)
  5. L107
    specialize prime_field_polynomial_subtract_functional (PB)
  6. L108
    specialize prime_field_polynomial_subtract_functional (PC)
  7. L109
    specialize prime_field_polynomial_subtract_functional (ub)
  8. L110
    specialize prime_field_polynomial_subtract_functional (uc)
  9. L111
    specialize prime_field_polynomial_subtract_functional (UB)
  10. L112
    specialize prime_field_polynomial_subtract_functional (UC)
19Use earlier factsL113–116

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

  1. L113
    specialize prime_field_polynomial_subtract_functional (L)
  2. L114
    apply prime_field_polynomial_subtract_functional
  3. L115
    exact hsubtract
  4. L116
    exact hsecond_right_left
20Establish htrimL117–126

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

  1. L117
    have htrim : FpPolynomialTrim(p,UB,UC,L,t,rb,rc,R)Definitions: FpPolynomialTrim
  2. L118
    specialize prime_field_polynomial_trim_input_transport (p)
  3. L119
    specialize prime_field_polynomial_trim_input_transport (ub)
  4. L120
    specialize prime_field_polynomial_trim_input_transport (uc)
  5. L121
    specialize prime_field_polynomial_trim_input_transport (UB)
  6. L122
    specialize prime_field_polynomial_trim_input_transport (UC)
  7. L123
    specialize prime_field_polynomial_trim_input_transport (L)
  8. L124
    specialize prime_field_polynomial_trim_input_transport (t)
  9. L125
    specialize prime_field_polynomial_trim_input_transport (rb)
  10. L126
    specialize prime_field_polynomial_trim_input_transport (rc)
21Use earlier factsL127–130

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

  1. L127
    specialize prime_field_polynomial_trim_input_transport (R)
  2. L128
    apply prime_field_polynomial_trim_input_transport
  3. L129
    exact hresiduals
  4. L130
    exact hfirst_right_right
22Separate the logical casesL131–131

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

  1. L131
    split
23Use earlier factsL132–141

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

  1. L132
    specialize prime_field_polynomial_trim_removed_count_unique (p)
  2. L133
    specialize prime_field_polynomial_trim_removed_count_unique (UB)
  3. L134
    specialize prime_field_polynomial_trim_removed_count_unique (UC)
  4. L135
    specialize prime_field_polynomial_trim_removed_count_unique (L)
  5. L136
    specialize prime_field_polynomial_trim_removed_count_unique (t)
  6. L137
    specialize prime_field_polynomial_trim_removed_count_unique (rb)
  7. L138
    specialize prime_field_polynomial_trim_removed_count_unique (rc)
  8. L139
    specialize prime_field_polynomial_trim_removed_count_unique (R)
  9. L140
    specialize prime_field_polynomial_trim_removed_count_unique (T)
  10. L141
    specialize prime_field_polynomial_trim_removed_count_unique (RB)
24Use earlier factsL142–146

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

  1. L142
    specialize prime_field_polynomial_trim_removed_count_unique (RC)
  2. L143
    specialize prime_field_polynomial_trim_removed_count_unique (K)
  3. L144
    apply prime_field_polynomial_trim_removed_count_unique
  4. L145
    exact htrim
  5. L146
    exact hsecond_right_right
25Separate the logical casesL147–147

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

  1. L147
    split
26Use earlier factsL148–157

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

  1. L148
    specialize prime_field_polynomial_trim_retained_length_unique (p)
  2. L149
    specialize prime_field_polynomial_trim_retained_length_unique (UB)
  3. L150
    specialize prime_field_polynomial_trim_retained_length_unique (UC)
  4. L151
    specialize prime_field_polynomial_trim_retained_length_unique (L)
  5. L152
    specialize prime_field_polynomial_trim_retained_length_unique (t)
  6. L153
    specialize prime_field_polynomial_trim_retained_length_unique (rb)
  7. L154
    specialize prime_field_polynomial_trim_retained_length_unique (rc)
  8. L155
    specialize prime_field_polynomial_trim_retained_length_unique (R)
  9. L156
    specialize prime_field_polynomial_trim_retained_length_unique (T)
  10. L157
    specialize prime_field_polynomial_trim_retained_length_unique (RB)
27Use earlier factsL158–167

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

  1. L158
    specialize prime_field_polynomial_trim_retained_length_unique (RC)
  2. L159
    specialize prime_field_polynomial_trim_retained_length_unique (K)
  3. L160
    apply prime_field_polynomial_trim_retained_length_unique
  4. L161
    exact htrim
  5. L162
    exact hsecond_right_right
  6. L163
    specialize prime_field_polynomial_trim_output_equal (p)
  7. L164
    specialize prime_field_polynomial_trim_output_equal (UB)
  8. L165
    specialize prime_field_polynomial_trim_output_equal (UC)
  9. L166
    specialize prime_field_polynomial_trim_output_equal (L)
  10. L167
    specialize prime_field_polynomial_trim_output_equal (t)
28Use earlier factsL168–177

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

  1. L168
    specialize prime_field_polynomial_trim_output_equal (rb)
  2. L169
    specialize prime_field_polynomial_trim_output_equal (rc)
  3. L170
    specialize prime_field_polynomial_trim_output_equal (R)
  4. L171
    specialize prime_field_polynomial_trim_output_equal (T)
  5. L172
    specialize prime_field_polynomial_trim_output_equal (RB)
  6. L173
    specialize prime_field_polynomial_trim_output_equal (RC)
  7. L174
    specialize prime_field_polynomial_trim_output_equal (K)
  8. L175
    apply prime_field_polynomial_trim_output_equal
  9. L176
    exact htrim
  10. L177
    exact hsecond_right_right

Library-wide reading audit

Original exact command ledger · 177 lines
  1. 0001intro p
  2. 0002intro ab
  3. 0003intro ac
  4. 0004intro L
  5. 0005intro bb
  6. 0006intro bc
  7. 0007intro d
  8. 0008intro qb
  9. 0009intro qc
  10. 0010intro QB
  11. 0011intro QC
  12. 0012intro q
  13. 0013intro pb
  14. 0014intro pc
  15. 0015intro ub
  16. 0016intro uc
  17. 0017intro t
  18. 0018intro rb
  19. 0019intro rc
  20. 0020intro R
  21. 0021intro PB
  22. 0022intro PC
  23. 0023intro UB
  24. 0024intro UC
  25. 0025intro T
  26. 0026intro RB
  27. 0027intro RC
  28. 0028intro K
  29. 0029intro hequal
  30. 0030intro hfirst
  31. 0031intro hsecond
  32. 0032cases hfirst
  33. 0033cases hfirst_right
  34. 0034cases hsecond
  35. 0035cases hsecond_right
  36. 0036have hproduct : forall pfc_index_residual_unique_recode. (exists pfa_gap_residual_unique_recodebound. pfa_gap_residual_unique_recodebound + S (pfc_index_residual_unique_recode) = (L)) -> exists pfc_value_residual_unique_recode. ((((exists ff_h_pfp_residual_unique_recodeentry. ff_h_pfp_residual_unique_recodeentry + S (pfc_value_residual_unique_recode) = S ((S (pfc_index_residual_unique_recode)) * pc)) /\ exists ff_q_pfp_residual_unique_recodeentry. pb = ff_q_pfp_residual_unique_recodeentry * S ((S (pfc_index_residual_unique_recode)) * pc) + (pfc_value_residual_unique_recode))) /\ ((exists pfc_terms_code_residual_unique_recodecoefficient pfc_terms_scale_residual_unique_recodecoefficient pfc_natural_sum_residual_unique_recodecoefficient. ((forall pfc_index_residual_unique_recodecoefficientdiagonal. (exists pfa_gap_residual_unique_recodecoefficientdiagonalbound. pfa_gap_residual_unique_recodecoefficientdiagonalbound + S (pfc_index_residual_unique_recodecoefficientdiagonal) = (S (pfc_index_residual_unique_recode))) -> exists pfc_value_residual_unique_recodecoefficientdiagonal. ((((exists ff_h_pfp_residual_unique_recodecoefficientdiagonalentry. ff_h_pfp_residual_unique_recodecoefficientdiagonalentry + S (pfc_value_residual_unique_recodecoefficientdiagonal) = S ((S (pfc_index_residual_unique_recodecoefficientdiagonal)) * pfc_terms_scale_residual_unique_recodecoefficient)) /\ exists ff_q_pfp_residual_unique_recodecoefficientdiagonalentry. pfc_terms_code_residual_unique_recodecoefficient = ff_q_pfp_residual_unique_recodecoefficientdiagonalentry * S ((S (pfc_index_residual_unique_recodecoefficientdiagonal)) * pfc_terms_scale_residual_unique_recodecoefficient) + (pfc_value_residual_unique_recodecoefficientdiagonal))) /\ ((exists pfc_complement_residual_unique_recodecoefficientdiagonalterm pfc_left_residual_unique_recodecoefficientdiagonalterm pfc_right_residual_unique_recodecoefficientdiagonalterm. (((pfc_index_residual_unique_recodecoefficientdiagonal)+pfc_complement_residual_unique_recodecoefficientdiagonalterm=(pfc_index_residual_unique_recode)) /\ ((((((exists pfa_gap_residual_unique_recodecoefficientdiagonaltermleftinside. pfa_gap_residual_unique_recodecoefficientdiagonaltermleftinside + S (pfc_index_residual_unique_recodecoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_residual_unique_recodecoefficientdiagonaltermleftentry. ff_h_pfp_residual_unique_recodecoefficientdiagonaltermleftentry + S (pfc_left_residual_unique_recodecoefficientdiagonalterm) = S ((S (pfc_index_residual_unique_recodecoefficientdiagonal)) * QC)) /\ exists ff_q_pfp_residual_unique_recodecoefficientdiagonaltermleftentry. QB = ff_q_pfp_residual_unique_recodecoefficientdiagonaltermleftentry * S ((S (pfc_index_residual_unique_recodecoefficientdiagonal)) * QC) + (pfc_left_residual_unique_recodecoefficientdiagonalterm)))))) \/ (((exists pfc_gap_residual_unique_recodecoefficientdiagonaltermleftoutside. pfc_gap_residual_unique_recodecoefficientdiagonaltermleftoutside+(q)=(pfc_index_residual_unique_recodecoefficientdiagonal)) /\ (((pfc_left_residual_unique_recodecoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_residual_unique_recodecoefficientdiagonaltermrightinside. pfa_gap_residual_unique_recodecoefficientdiagonaltermrightinside + S (pfc_complement_residual_unique_recodecoefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_residual_unique_recodecoefficientdiagonaltermrightentry. ff_h_pfp_residual_unique_recodecoefficientdiagonaltermrightentry + S (pfc_right_residual_unique_recodecoefficientdiagonalterm) = S ((S (pfc_complement_residual_unique_recodecoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_residual_unique_recodecoefficientdiagonaltermrightentry. bb = ff_q_pfp_residual_unique_recodecoefficientdiagonaltermrightentry * S ((S (pfc_complement_residual_unique_recodecoefficientdiagonalterm)) * bc) + (pfc_right_residual_unique_recodecoefficientdiagonalterm)))))) \/ (((exists pfc_gap_residual_unique_recodecoefficientdiagonaltermrightoutside. pfc_gap_residual_unique_recodecoefficientdiagonaltermrightoutside+(S d)=(pfc_complement_residual_unique_recodecoefficientdiagonalterm)) /\ (((pfc_right_residual_unique_recodecoefficientdiagonalterm)=0))))) /\ (((pfc_value_residual_unique_recodecoefficientdiagonal)=pfc_left_residual_unique_recodecoefficientdiagonalterm*pfc_right_residual_unique_recodecoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_residual_unique_recodecoefficientsum fs_v_pfc_residual_unique_recodecoefficientsum. ((((exists fs_h_pfc_residual_unique_recodecoefficientsum_body_start. fs_h_pfc_residual_unique_recodecoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_residual_unique_recodecoefficientsum)) /\ exists fs_q_pfc_residual_unique_recodecoefficientsum_body_start. fs_u_pfc_residual_unique_recodecoefficientsum = fs_q_pfc_residual_unique_recodecoefficientsum_body_start * S ((S (0)) * fs_v_pfc_residual_unique_recodecoefficientsum) + (0))) /\ ((((exists fs_h_pfc_residual_unique_recodecoefficientsum_body_terminal. fs_h_pfc_residual_unique_recodecoefficientsum_body_terminal + S (pfc_natural_sum_residual_unique_recodecoefficient) = S ((S (S (pfc_index_residual_unique_recode))) * fs_v_pfc_residual_unique_recodecoefficientsum)) /\ exists fs_q_pfc_residual_unique_recodecoefficientsum_body_terminal. fs_u_pfc_residual_unique_recodecoefficientsum = fs_q_pfc_residual_unique_recodecoefficientsum_body_terminal * S ((S (S (pfc_index_residual_unique_recode))) * fs_v_pfc_residual_unique_recodecoefficientsum) + (pfc_natural_sum_residual_unique_recodecoefficient))) /\ forall fs_i_pfc_residual_unique_recodecoefficientsum_body_steps. (exists fs_lt_pfc_residual_unique_recodecoefficientsum_body_steps_bound. fs_lt_pfc_residual_unique_recodecoefficientsum_body_steps_bound + S fs_i_pfc_residual_unique_recodecoefficientsum_body_steps = S (pfc_index_residual_unique_recode)) -> exists fs_a_pfc_residual_unique_recodecoefficientsum_body_steps fs_r_pfc_residual_unique_recodecoefficientsum_body_steps fs_s_pfc_residual_unique_recodecoefficientsum_body_steps. ((((exists fs_h_pfc_residual_unique_recodecoefficientsum_body_steps_summand. fs_h_pfc_residual_unique_recodecoefficientsum_body_steps_summand + S (fs_a_pfc_residual_unique_recodecoefficientsum_body_steps) = S ((S (fs_i_pfc_residual_unique_recodecoefficientsum_body_steps)) * pfc_terms_scale_residual_unique_recodecoefficient)) /\ exists fs_q_pfc_residual_unique_recodecoefficientsum_body_steps_summand. pfc_terms_code_residual_unique_recodecoefficient = fs_q_pfc_residual_unique_recodecoefficientsum_body_steps_summand * S ((S (fs_i_pfc_residual_unique_recodecoefficientsum_body_steps)) * pfc_terms_scale_residual_unique_recodecoefficient) + (fs_a_pfc_residual_unique_recodecoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_residual_unique_recodecoefficientsum_body_steps_partial. fs_h_pfc_residual_unique_recodecoefficientsum_body_steps_partial + S (fs_r_pfc_residual_unique_recodecoefficientsum_body_steps) = S ((S (fs_i_pfc_residual_unique_recodecoefficientsum_body_steps)) * fs_v_pfc_residual_unique_recodecoefficientsum)) /\ exists fs_q_pfc_residual_unique_recodecoefficientsum_body_steps_partial. fs_u_pfc_residual_unique_recodecoefficientsum = fs_q_pfc_residual_unique_recodecoefficientsum_body_steps_partial * S ((S (fs_i_pfc_residual_unique_recodecoefficientsum_body_steps)) * fs_v_pfc_residual_unique_recodecoefficientsum) + (fs_r_pfc_residual_unique_recodecoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_residual_unique_recodecoefficientsum_body_steps_successor. fs_h_pfc_residual_unique_recodecoefficientsum_body_steps_successor + S (fs_s_pfc_residual_unique_recodecoefficientsum_body_steps) = S ((S (S fs_i_pfc_residual_unique_recodecoefficientsum_body_steps)) * fs_v_pfc_residual_unique_recodecoefficientsum)) /\ exists fs_q_pfc_residual_unique_recodecoefficientsum_body_steps_successor. fs_u_pfc_residual_unique_recodecoefficientsum = fs_q_pfc_residual_unique_recodecoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_residual_unique_recodecoefficientsum_body_steps)) * fs_v_pfc_residual_unique_recodecoefficientsum) + (fs_s_pfc_residual_unique_recodecoefficientsum_body_steps))) /\ fs_s_pfc_residual_unique_recodecoefficientsum_body_steps = fs_r_pfc_residual_unique_recodecoefficientsum_body_steps + fs_a_pfc_residual_unique_recodecoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_residual_unique_recodecoefficientresiduebound. pfa_gap_residual_unique_recodecoefficientresiduebound + S (pfc_value_residual_unique_recode) = (p)) /\ ((exists pfa_offset_left_residual_unique_recodecoefficientresiduecongruence pfa_offset_right_residual_unique_recodecoefficientresiduecongruence. (pfc_natural_sum_residual_unique_recodecoefficient) + (p) * pfa_offset_left_residual_unique_recodecoefficientresiduecongruence = (pfc_value_residual_unique_recode) + (p) * pfa_offset_right_residual_unique_recodecoefficientresiduecongruence)))))))))))
  37. 0037specialize prime_field_convolution_prefix_input_transport (p)
  38. 0038specialize prime_field_convolution_prefix_input_transport (qb)
  39. 0039specialize prime_field_convolution_prefix_input_transport (qc)
  40. 0040specialize prime_field_convolution_prefix_input_transport (q)
  41. 0041specialize prime_field_convolution_prefix_input_transport (bb)
  42. 0042specialize prime_field_convolution_prefix_input_transport (bc)
  43. 0043specialize prime_field_convolution_prefix_input_transport (S d)
  44. 0044specialize prime_field_convolution_prefix_input_transport (QB)
  45. 0045specialize prime_field_convolution_prefix_input_transport (QC)
  46. 0046specialize prime_field_convolution_prefix_input_transport (bb)
  47. 0047specialize prime_field_convolution_prefix_input_transport (bc)
  48. 0048specialize prime_field_convolution_prefix_input_transport (pb)
  49. 0049specialize prime_field_convolution_prefix_input_transport (pc)
  50. 0050specialize prime_field_convolution_prefix_input_transport (L)
  51. 0051apply prime_field_convolution_prefix_input_transport
  52. 0052exact hequal
  53. 0053intro i
  54. 0054intro a
  55. 0055intro hindex
  56. 0056intro hvalue
  57. 0057exact hvalue
  58. 0058exact hfirst_left
  59. 0059have hproducts : forall mdr_i_pfp_residual_unique_products mdr_a_pfp_residual_unique_products. (exists mdr_gap_pfp_residual_unique_productsb. mdr_gap_pfp_residual_unique_productsb + S (mdr_i_pfp_residual_unique_products) = (L)) -> (((exists ff_h_mdr_pfp_residual_unique_productso. ff_h_mdr_pfp_residual_unique_productso + S (mdr_a_pfp_residual_unique_products) = S ((S (mdr_i_pfp_residual_unique_products)) * pc)) /\ exists ff_q_mdr_pfp_residual_unique_productso. pb = ff_q_mdr_pfp_residual_unique_productso * S ((S (mdr_i_pfp_residual_unique_products)) * pc) + (mdr_a_pfp_residual_unique_products))) -> (((exists ff_h_mdr_pfp_residual_unique_productsn. ff_h_mdr_pfp_residual_unique_productsn + S (mdr_a_pfp_residual_unique_products) = S ((S (mdr_i_pfp_residual_unique_products)) * PC)) /\ exists ff_q_mdr_pfp_residual_unique_productsn. PB = ff_q_mdr_pfp_residual_unique_productsn * S ((S (mdr_i_pfp_residual_unique_products)) * PC) + (mdr_a_pfp_residual_unique_products)))
  60. 0060specialize prime_field_convolution_prefix_functional (p)
  61. 0061specialize prime_field_convolution_prefix_functional (QB)
  62. 0062specialize prime_field_convolution_prefix_functional (QC)
  63. 0063specialize prime_field_convolution_prefix_functional (q)
  64. 0064specialize prime_field_convolution_prefix_functional (bb)
  65. 0065specialize prime_field_convolution_prefix_functional (bc)
  66. 0066specialize prime_field_convolution_prefix_functional (S d)
  67. 0067specialize prime_field_convolution_prefix_functional (pb)
  68. 0068specialize prime_field_convolution_prefix_functional (pc)
  69. 0069specialize prime_field_convolution_prefix_functional (PB)
  70. 0070specialize prime_field_convolution_prefix_functional (PC)
  71. 0071specialize prime_field_convolution_prefix_functional (L)
  72. 0072apply prime_field_convolution_prefix_functional
  73. 0073exact hproduct
  74. 0074exact hsecond_left
  75. 0075have hsubtract : forall pfs_index_residual_unique_difference. (exists pfa_gap_residual_unique_differenceindex. pfa_gap_residual_unique_differenceindex + S (pfs_index_residual_unique_difference) = (L)) -> exists pfs_left_residual_unique_difference pfs_right_residual_unique_difference pfs_result_residual_unique_difference. ((((exists ff_h_pfp_residual_unique_differenceleft. ff_h_pfp_residual_unique_differenceleft + S (pfs_left_residual_unique_difference) = S ((S (pfs_index_residual_unique_difference)) * ac)) /\ exists ff_q_pfp_residual_unique_differenceleft. ab = ff_q_pfp_residual_unique_differenceleft * S ((S (pfs_index_residual_unique_difference)) * ac) + (pfs_left_residual_unique_difference))) /\ (((((exists ff_h_pfp_residual_unique_differenceright. ff_h_pfp_residual_unique_differenceright + S (pfs_right_residual_unique_difference) = S ((S (pfs_index_residual_unique_difference)) * PC)) /\ exists ff_q_pfp_residual_unique_differenceright. PB = ff_q_pfp_residual_unique_differenceright * S ((S (pfs_index_residual_unique_difference)) * PC) + (pfs_right_residual_unique_difference))) /\ (((((exists ff_h_pfp_residual_unique_differenceresult. ff_h_pfp_residual_unique_differenceresult + S (pfs_result_residual_unique_difference) = S ((S (pfs_index_residual_unique_difference)) * uc)) /\ exists ff_q_pfp_residual_unique_differenceresult. ub = ff_q_pfp_residual_unique_differenceresult * S ((S (pfs_index_residual_unique_difference)) * uc) + (pfs_result_residual_unique_difference))) /\ ((((exists pfa_gap_residual_unique_differenceoperationleft. pfa_gap_residual_unique_differenceoperationleft + S (pfs_right_residual_unique_difference) = (p)) /\ (((exists pfa_gap_residual_unique_differenceoperationright. pfa_gap_residual_unique_differenceoperationright + S (pfs_result_residual_unique_difference) = (p)) /\ ((((exists pfa_gap_residual_unique_differenceoperationresultbound. pfa_gap_residual_unique_differenceoperationresultbound + S (pfs_left_residual_unique_difference) = (p)) /\ ((exists pfa_offset_left_residual_unique_differenceoperationresultcongruence pfa_offset_right_residual_unique_differenceoperationresultcongruence. ((pfs_right_residual_unique_difference) + (pfs_result_residual_unique_difference)) + (p) * pfa_offset_left_residual_unique_differenceoperationresultcongruence = (pfs_left_residual_unique_difference) + (p) * pfa_offset_right_residual_unique_differenceoperationresultcongruence)))))))))))))))
  76. 0076specialize prime_field_polynomial_subtract_transport (p)
  77. 0077specialize prime_field_polynomial_subtract_transport (ab)
  78. 0078specialize prime_field_polynomial_subtract_transport (ac)
  79. 0079specialize prime_field_polynomial_subtract_transport (pb)
  80. 0080specialize prime_field_polynomial_subtract_transport (pc)
  81. 0081specialize prime_field_polynomial_subtract_transport (ub)
  82. 0082specialize prime_field_polynomial_subtract_transport (uc)
  83. 0083specialize prime_field_polynomial_subtract_transport (ab)
  84. 0084specialize prime_field_polynomial_subtract_transport (ac)
  85. 0085specialize prime_field_polynomial_subtract_transport (PB)
  86. 0086specialize prime_field_polynomial_subtract_transport (PC)
  87. 0087specialize prime_field_polynomial_subtract_transport (ub)
  88. 0088specialize prime_field_polynomial_subtract_transport (uc)
  89. 0089specialize prime_field_polynomial_subtract_transport (L)
  90. 0090apply prime_field_polynomial_subtract_transport
  91. 0091intro i
  92. 0092intro a
  93. 0093intro hindex
  94. 0094intro hvalue
  95. 0095exact hvalue
  96. 0096exact hproducts
  97. 0097intro i
  98. 0098intro a
  99. 0099intro hindex
  100. 0100intro hvalue
  101. 0101exact hvalue
  102. 0102exact hfirst_right_left
  103. 0103have hresiduals : forall mdr_i_pfp_residual_unique_inputs mdr_a_pfp_residual_unique_inputs. (exists mdr_gap_pfp_residual_unique_inputsb. mdr_gap_pfp_residual_unique_inputsb + S (mdr_i_pfp_residual_unique_inputs) = (L)) -> (((exists ff_h_mdr_pfp_residual_unique_inputso. ff_h_mdr_pfp_residual_unique_inputso + S (mdr_a_pfp_residual_unique_inputs) = S ((S (mdr_i_pfp_residual_unique_inputs)) * uc)) /\ exists ff_q_mdr_pfp_residual_unique_inputso. ub = ff_q_mdr_pfp_residual_unique_inputso * S ((S (mdr_i_pfp_residual_unique_inputs)) * uc) + (mdr_a_pfp_residual_unique_inputs))) -> (((exists ff_h_mdr_pfp_residual_unique_inputsn. ff_h_mdr_pfp_residual_unique_inputsn + S (mdr_a_pfp_residual_unique_inputs) = S ((S (mdr_i_pfp_residual_unique_inputs)) * UC)) /\ exists ff_q_mdr_pfp_residual_unique_inputsn. UB = ff_q_mdr_pfp_residual_unique_inputsn * S ((S (mdr_i_pfp_residual_unique_inputs)) * UC) + (mdr_a_pfp_residual_unique_inputs)))
  104. 0104specialize prime_field_polynomial_subtract_functional (p)
  105. 0105specialize prime_field_polynomial_subtract_functional (ab)
  106. 0106specialize prime_field_polynomial_subtract_functional (ac)
  107. 0107specialize prime_field_polynomial_subtract_functional (PB)
  108. 0108specialize prime_field_polynomial_subtract_functional (PC)
  109. 0109specialize prime_field_polynomial_subtract_functional (ub)
  110. 0110specialize prime_field_polynomial_subtract_functional (uc)
  111. 0111specialize prime_field_polynomial_subtract_functional (UB)
  112. 0112specialize prime_field_polynomial_subtract_functional (UC)
  113. 0113specialize prime_field_polynomial_subtract_functional (L)
  114. 0114apply prime_field_polynomial_subtract_functional
  115. 0115exact hsubtract
  116. 0116exact hsecond_right_left
  117. 0117have htrim : (((L)=(t)+(R)) /\ (((forall fom_index_pfp_residual_unique_trim_recodeinput. (exists fom_gap_pfp_residual_unique_trim_recodeinput_index_bound. fom_gap_pfp_residual_unique_trim_recodeinput_index_bound + S (fom_index_pfp_residual_unique_trim_recodeinput) = L) -> exists fom_value_pfp_residual_unique_trim_recodeinput. ((((exists fom_beta_height_pfp_residual_unique_trim_recodeinput_entry. fom_beta_height_pfp_residual_unique_trim_recodeinput_entry + S (fom_value_pfp_residual_unique_trim_recodeinput) = S ((S (fom_index_pfp_residual_unique_trim_recodeinput)) * UC)) /\ exists fom_beta_quotient_pfp_residual_unique_trim_recodeinput_entry. UB = fom_beta_quotient_pfp_residual_unique_trim_recodeinput_entry * S ((S (fom_index_pfp_residual_unique_trim_recodeinput)) * UC) + (fom_value_pfp_residual_unique_trim_recodeinput))) /\ (exists fom_gap_pfp_residual_unique_trim_recodeinput_value_bound. fom_gap_pfp_residual_unique_trim_recodeinput_value_bound + S (fom_value_pfp_residual_unique_trim_recodeinput) = p))) /\ (((forall pfp_repeat_index_residual_unique_trim_recoderemoved. (exists pfa_gap_residual_unique_trim_recoderemovedindex. pfa_gap_residual_unique_trim_recoderemovedindex + S (pfp_repeat_index_residual_unique_trim_recoderemoved) = (t)) -> (((exists ff_h_pfp_residual_unique_trim_recoderemovedentry. ff_h_pfp_residual_unique_trim_recoderemovedentry + S (0) = S ((S (pfp_repeat_index_residual_unique_trim_recoderemoved)) * UC)) /\ exists ff_q_pfp_residual_unique_trim_recoderemovedentry. UB = ff_q_pfp_residual_unique_trim_recoderemovedentry * S ((S (pfp_repeat_index_residual_unique_trim_recoderemoved)) * UC) + (0)))) /\ (((forall pftrim_index_residual_unique_trim_recodesuffix pftrim_value_residual_unique_trim_recodesuffix. (exists pfa_gap_residual_unique_trim_recodesuffixbound. pfa_gap_residual_unique_trim_recodesuffixbound + S (pftrim_index_residual_unique_trim_recodesuffix) = (R)) -> (((exists ff_h_pfp_residual_unique_trim_recodesuffixsource. ff_h_pfp_residual_unique_trim_recodesuffixsource + S (pftrim_value_residual_unique_trim_recodesuffix) = S ((S ((t)+pftrim_index_residual_unique_trim_recodesuffix)) * UC)) /\ exists ff_q_pfp_residual_unique_trim_recodesuffixsource. UB = ff_q_pfp_residual_unique_trim_recodesuffixsource * S ((S ((t)+pftrim_index_residual_unique_trim_recodesuffix)) * UC) + (pftrim_value_residual_unique_trim_recodesuffix))) -> (((exists ff_h_pfp_residual_unique_trim_recodesuffixoutput. ff_h_pfp_residual_unique_trim_recodesuffixoutput + S (pftrim_value_residual_unique_trim_recodesuffix) = S ((S (pftrim_index_residual_unique_trim_recodesuffix)) * rc)) /\ exists ff_q_pfp_residual_unique_trim_recodesuffixoutput. rb = ff_q_pfp_residual_unique_trim_recodesuffixoutput * S ((S (pftrim_index_residual_unique_trim_recodesuffix)) * rc) + (pftrim_value_residual_unique_trim_recodesuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_residual_unique_trim_recodenormal. ((((exists ff_h_pfp_residual_unique_trim_recodenormalentry. ff_h_pfp_residual_unique_trim_recodenormalentry + S (pftrim_leading_residual_unique_trim_recodenormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_residual_unique_trim_recodenormalentry. rb = ff_q_pfp_residual_unique_trim_recodenormalentry * S ((S (0)) * rc) + (pftrim_leading_residual_unique_trim_recodenormal))) /\ ((~(pftrim_leading_residual_unique_trim_recodenormal=0))))))))))))))
  118. 0118specialize prime_field_polynomial_trim_input_transport (p)
  119. 0119specialize prime_field_polynomial_trim_input_transport (ub)
  120. 0120specialize prime_field_polynomial_trim_input_transport (uc)
  121. 0121specialize prime_field_polynomial_trim_input_transport (UB)
  122. 0122specialize prime_field_polynomial_trim_input_transport (UC)
  123. 0123specialize prime_field_polynomial_trim_input_transport (L)
  124. 0124specialize prime_field_polynomial_trim_input_transport (t)
  125. 0125specialize prime_field_polynomial_trim_input_transport (rb)
  126. 0126specialize prime_field_polynomial_trim_input_transport (rc)
  127. 0127specialize prime_field_polynomial_trim_input_transport (R)
  128. 0128apply prime_field_polynomial_trim_input_transport
  129. 0129exact hresiduals
  130. 0130exact hfirst_right_right
  131. 0131split
  132. 0132specialize prime_field_polynomial_trim_removed_count_unique (p)
  133. 0133specialize prime_field_polynomial_trim_removed_count_unique (UB)
  134. 0134specialize prime_field_polynomial_trim_removed_count_unique (UC)
  135. 0135specialize prime_field_polynomial_trim_removed_count_unique (L)
  136. 0136specialize prime_field_polynomial_trim_removed_count_unique (t)
  137. 0137specialize prime_field_polynomial_trim_removed_count_unique (rb)
  138. 0138specialize prime_field_polynomial_trim_removed_count_unique (rc)
  139. 0139specialize prime_field_polynomial_trim_removed_count_unique (R)
  140. 0140specialize prime_field_polynomial_trim_removed_count_unique (T)
  141. 0141specialize prime_field_polynomial_trim_removed_count_unique (RB)
  142. 0142specialize prime_field_polynomial_trim_removed_count_unique (RC)
  143. 0143specialize prime_field_polynomial_trim_removed_count_unique (K)
  144. 0144apply prime_field_polynomial_trim_removed_count_unique
  145. 0145exact htrim
  146. 0146exact hsecond_right_right
  147. 0147split
  148. 0148specialize prime_field_polynomial_trim_retained_length_unique (p)
  149. 0149specialize prime_field_polynomial_trim_retained_length_unique (UB)
  150. 0150specialize prime_field_polynomial_trim_retained_length_unique (UC)
  151. 0151specialize prime_field_polynomial_trim_retained_length_unique (L)
  152. 0152specialize prime_field_polynomial_trim_retained_length_unique (t)
  153. 0153specialize prime_field_polynomial_trim_retained_length_unique (rb)
  154. 0154specialize prime_field_polynomial_trim_retained_length_unique (rc)
  155. 0155specialize prime_field_polynomial_trim_retained_length_unique (R)
  156. 0156specialize prime_field_polynomial_trim_retained_length_unique (T)
  157. 0157specialize prime_field_polynomial_trim_retained_length_unique (RB)
  158. 0158specialize prime_field_polynomial_trim_retained_length_unique (RC)
  159. 0159specialize prime_field_polynomial_trim_retained_length_unique (K)
  160. 0160apply prime_field_polynomial_trim_retained_length_unique
  161. 0161exact htrim
  162. 0162exact hsecond_right_right
  163. 0163specialize prime_field_polynomial_trim_output_equal (p)
  164. 0164specialize prime_field_polynomial_trim_output_equal (UB)
  165. 0165specialize prime_field_polynomial_trim_output_equal (UC)
  166. 0166specialize prime_field_polynomial_trim_output_equal (L)
  167. 0167specialize prime_field_polynomial_trim_output_equal (t)
  168. 0168specialize prime_field_polynomial_trim_output_equal (rb)
  169. 0169specialize prime_field_polynomial_trim_output_equal (rc)
  170. 0170specialize prime_field_polynomial_trim_output_equal (R)
  171. 0171specialize prime_field_polynomial_trim_output_equal (T)
  172. 0172specialize prime_field_polynomial_trim_output_equal (RB)
  173. 0173specialize prime_field_polynomial_trim_output_equal (RC)
  174. 0174specialize prime_field_polynomial_trim_output_equal (K)
  175. 0175apply prime_field_polynomial_trim_output_equal
  176. 0176exact htrim
  177. 0177exact hsecond_right_right