PG0049

prime_field_polynomial_add_trim_aligned

An actual fixed-length sum and actual trim supply real common representatives for the canonical product and trimmed remainder; no prime premise or equality of unused beta entries is needed.

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

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.

All products and sums use actual beta-coded coefficients; equality is formal coefficient equivalence, not equality of evaluations or raw codes. The zero gcd is included. Uniqueness is up to formal equivalence, not unique Bézout coefficients. This proves the polynomial gcd component, not G091 irreducible-polynomial existence or arbitrary prime-power-field construction.

Exact theorem in conservative defined notation

∀ p. ∀ pb. ∀ pc. ∀ N. ∀ xb. ∀ xc. ∀ ub. ∀ uc. ∀ ab. ∀ ac. ∀ L. ∀ t. ∀ rb. ∀ rc. ∀ R. BetaPrefixInto(pb,pc,N,p)PolynomialEquivalent(pb,pc,N,xb,xc,L)FpPolyAdd(p,xb,xc,ub,uc,ab,ac,L)FpPolynomialTrim(p,ub,uc,L,t,rb,rc,R)FpPolynomialAlignedAdd(p,pb,pc,N,rb,rc,R,ab,ac,L)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall p pb pc N xb xc ub uc ab ac L t rb rc R. (forall fom_index_pfp_trim_aligned_product_bounded. (exists fom_gap_pfp_trim_aligned_product_bounded_index_bound. fom_gap_pfp_trim_aligned_product_bounded_index_bound + S (fom_index_pfp_trim_aligned_product_bounded) = N) -> exists fom_value_pfp_trim_aligned_product_bounded. ((((exists fom_beta_height_pfp_trim_aligned_product_bounded_entry. fom_beta_height_pfp_trim_aligned_product_bounded_entry + S (fom_value_pfp_trim_aligned_product_bounded) = S ((S (fom_index_pfp_trim_aligned_product_bounded)) * pc)) /\ exists fom_beta_quotient_pfp_trim_aligned_product_bounded_entry. pb = fom_beta_quotient_pfp_trim_aligned_product_bounded_entry * S ((S (fom_index_pfp_trim_aligned_product_bounded)) * pc) + (fom_value_pfp_trim_aligned_product_bounded))) /\ (exists fom_gap_pfp_trim_aligned_product_bounded_value_bound. fom_gap_pfp_trim_aligned_product_bounded_value_bound + S (fom_value_pfp_trim_aligned_product_bounded) = p))) -> (forall pfrep_power_trim_aligned_product pfrep_left_trim_aligned_product pfrep_right_trim_aligned_product. ((exists pfrep_position_trim_aligned_productfirst. ((pfrep_position_trim_aligned_productfirst+S (pfrep_power_trim_aligned_product)=(N)) /\ ((((exists ff_h_pfp_trim_aligned_productfirstentry. ff_h_pfp_trim_aligned_productfirstentry + S (pfrep_left_trim_aligned_product) = S ((S (pfrep_position_trim_aligned_productfirst)) * pc)) /\ exists ff_q_pfp_trim_aligned_productfirstentry. pb = ff_q_pfp_trim_aligned_productfirstentry * S ((S (pfrep_position_trim_aligned_productfirst)) * pc) + (pfrep_left_trim_aligned_product)))))) \/ (((exists pfrep_gap_trim_aligned_productfirstoutside. pfrep_gap_trim_aligned_productfirstoutside+(N)=(pfrep_power_trim_aligned_product)) /\ (((pfrep_left_trim_aligned_product)=0))))) -> ((exists pfrep_position_trim_aligned_productsecond. ((pfrep_position_trim_aligned_productsecond+S (pfrep_power_trim_aligned_product)=(L)) /\ ((((exists ff_h_pfp_trim_aligned_productsecondentry. ff_h_pfp_trim_aligned_productsecondentry + S (pfrep_right_trim_aligned_product) = S ((S (pfrep_position_trim_aligned_productsecond)) * xc)) /\ exists ff_q_pfp_trim_aligned_productsecondentry. xb = ff_q_pfp_trim_aligned_productsecondentry * S ((S (pfrep_position_trim_aligned_productsecond)) * xc) + (pfrep_right_trim_aligned_product)))))) \/ (((exists pfrep_gap_trim_aligned_productsecondoutside. pfrep_gap_trim_aligned_productsecondoutside+(L)=(pfrep_power_trim_aligned_product)) /\ (((pfrep_right_trim_aligned_product)=0))))) -> pfrep_left_trim_aligned_product=pfrep_right_trim_aligned_product) -> (forall pfp_index_trim_aligned_sum. (exists pfa_gap_trim_aligned_sumindex. pfa_gap_trim_aligned_sumindex + S (pfp_index_trim_aligned_sum) = (L)) -> exists pfp_left_trim_aligned_sum pfp_right_trim_aligned_sum pfp_value_trim_aligned_sum. ((((exists ff_h_pfp_trim_aligned_sumleft. ff_h_pfp_trim_aligned_sumleft + S (pfp_left_trim_aligned_sum) = S ((S (pfp_index_trim_aligned_sum)) * xc)) /\ exists ff_q_pfp_trim_aligned_sumleft. xb = ff_q_pfp_trim_aligned_sumleft * S ((S (pfp_index_trim_aligned_sum)) * xc) + (pfp_left_trim_aligned_sum))) /\ (((((exists ff_h_pfp_trim_aligned_sumright. ff_h_pfp_trim_aligned_sumright + S (pfp_right_trim_aligned_sum) = S ((S (pfp_index_trim_aligned_sum)) * uc)) /\ exists ff_q_pfp_trim_aligned_sumright. ub = ff_q_pfp_trim_aligned_sumright * S ((S (pfp_index_trim_aligned_sum)) * uc) + (pfp_right_trim_aligned_sum))) /\ (((((exists ff_h_pfp_trim_aligned_sumtarget. ff_h_pfp_trim_aligned_sumtarget + S (pfp_value_trim_aligned_sum) = S ((S (pfp_index_trim_aligned_sum)) * ac)) /\ exists ff_q_pfp_trim_aligned_sumtarget. ab = ff_q_pfp_trim_aligned_sumtarget * S ((S (pfp_index_trim_aligned_sum)) * ac) + (pfp_value_trim_aligned_sum))) /\ ((((exists pfa_gap_trim_aligned_sumoperationleft. pfa_gap_trim_aligned_sumoperationleft + S (pfp_left_trim_aligned_sum) = (p)) /\ (((exists pfa_gap_trim_aligned_sumoperationright. pfa_gap_trim_aligned_sumoperationright + S (pfp_right_trim_aligned_sum) = (p)) /\ ((((exists pfa_gap_trim_aligned_sumoperationresultbound. pfa_gap_trim_aligned_sumoperationresultbound + S (pfp_value_trim_aligned_sum) = (p)) /\ ((exists pfa_offset_left_trim_aligned_sumoperationresultcongruence pfa_offset_right_trim_aligned_sumoperationresultcongruence. ((pfp_left_trim_aligned_sum) + (pfp_right_trim_aligned_sum)) + (p) * pfa_offset_left_trim_aligned_sumoperationresultcongruence = (pfp_value_trim_aligned_sum) + (p) * pfa_offset_right_trim_aligned_sumoperationresultcongruence)))))))))))))))) -> ((((L)=(t)+(R)) /\ (((forall fom_index_pfp_trim_aligned_triminput. (exists fom_gap_pfp_trim_aligned_triminput_index_bound. fom_gap_pfp_trim_aligned_triminput_index_bound + S (fom_index_pfp_trim_aligned_triminput) = L) -> exists fom_value_pfp_trim_aligned_triminput. ((((exists fom_beta_height_pfp_trim_aligned_triminput_entry. fom_beta_height_pfp_trim_aligned_triminput_entry + S (fom_value_pfp_trim_aligned_triminput) = S ((S (fom_index_pfp_trim_aligned_triminput)) * uc)) /\ exists fom_beta_quotient_pfp_trim_aligned_triminput_entry. ub = fom_beta_quotient_pfp_trim_aligned_triminput_entry * S ((S (fom_index_pfp_trim_aligned_triminput)) * uc) + (fom_value_pfp_trim_aligned_triminput))) /\ (exists fom_gap_pfp_trim_aligned_triminput_value_bound. fom_gap_pfp_trim_aligned_triminput_value_bound + S (fom_value_pfp_trim_aligned_triminput) = p))) /\ (((forall pfp_repeat_index_trim_aligned_trimremoved. (exists pfa_gap_trim_aligned_trimremovedindex. pfa_gap_trim_aligned_trimremovedindex + S (pfp_repeat_index_trim_aligned_trimremoved) = (t)) -> (((exists ff_h_pfp_trim_aligned_trimremovedentry. ff_h_pfp_trim_aligned_trimremovedentry + S (0) = S ((S (pfp_repeat_index_trim_aligned_trimremoved)) * uc)) /\ exists ff_q_pfp_trim_aligned_trimremovedentry. ub = ff_q_pfp_trim_aligned_trimremovedentry * S ((S (pfp_repeat_index_trim_aligned_trimremoved)) * uc) + (0)))) /\ (((forall pftrim_index_trim_aligned_trimsuffix pftrim_value_trim_aligned_trimsuffix. (exists pfa_gap_trim_aligned_trimsuffixbound. pfa_gap_trim_aligned_trimsuffixbound + S (pftrim_index_trim_aligned_trimsuffix) = (R)) -> (((exists ff_h_pfp_trim_aligned_trimsuffixsource. ff_h_pfp_trim_aligned_trimsuffixsource + S (pftrim_value_trim_aligned_trimsuffix) = S ((S ((t)+pftrim_index_trim_aligned_trimsuffix)) * uc)) /\ exists ff_q_pfp_trim_aligned_trimsuffixsource. ub = ff_q_pfp_trim_aligned_trimsuffixsource * S ((S ((t)+pftrim_index_trim_aligned_trimsuffix)) * uc) + (pftrim_value_trim_aligned_trimsuffix))) -> (((exists ff_h_pfp_trim_aligned_trimsuffixoutput. ff_h_pfp_trim_aligned_trimsuffixoutput + S (pftrim_value_trim_aligned_trimsuffix) = S ((S (pftrim_index_trim_aligned_trimsuffix)) * rc)) /\ exists ff_q_pfp_trim_aligned_trimsuffixoutput. rb = ff_q_pfp_trim_aligned_trimsuffixoutput * S ((S (pftrim_index_trim_aligned_trimsuffix)) * rc) + (pftrim_value_trim_aligned_trimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_trim_aligned_trimnormal. ((((exists ff_h_pfp_trim_aligned_trimnormalentry. ff_h_pfp_trim_aligned_trimnormalentry + S (pftrim_leading_trim_aligned_trimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_trim_aligned_trimnormalentry. rb = ff_q_pfp_trim_aligned_trimnormalentry * S ((S (0)) * rc) + (pftrim_leading_trim_aligned_trimnormal))) /\ ((~(pftrim_leading_trim_aligned_trimnormal=0))))))))))))))) -> (((forall fom_index_pfp_trim_aligned_result_left_bounded. (exists fom_gap_pfp_trim_aligned_result_left_bounded_index_bound. fom_gap_pfp_trim_aligned_result_left_bounded_index_bound + S (fom_index_pfp_trim_aligned_result_left_bounded) = N) -> exists fom_value_pfp_trim_aligned_result_left_bounded. ((((exists fom_beta_height_pfp_trim_aligned_result_left_bounded_entry. fom_beta_height_pfp_trim_aligned_result_left_bounded_entry + S (fom_value_pfp_trim_aligned_result_left_bounded) = S ((S (fom_index_pfp_trim_aligned_result_left_bounded)) * pc)) /\ exists fom_beta_quotient_pfp_trim_aligned_result_left_bounded_entry. pb = fom_beta_quotient_pfp_trim_aligned_result_left_bounded_entry * S ((S (fom_index_pfp_trim_aligned_result_left_bounded)) * pc) + (fom_value_pfp_trim_aligned_result_left_bounded))) /\ (exists fom_gap_pfp_trim_aligned_result_left_bounded_value_bound. fom_gap_pfp_trim_aligned_result_left_bounded_value_bound + S (fom_value_pfp_trim_aligned_result_left_bounded) = p))) /\ (((forall fom_index_pfp_trim_aligned_result_right_bounded. (exists fom_gap_pfp_trim_aligned_result_right_bounded_index_bound. fom_gap_pfp_trim_aligned_result_right_bounded_index_bound + S (fom_index_pfp_trim_aligned_result_right_bounded) = R) -> exists fom_value_pfp_trim_aligned_result_right_bounded. ((((exists fom_beta_height_pfp_trim_aligned_result_right_bounded_entry. fom_beta_height_pfp_trim_aligned_result_right_bounded_entry + S (fom_value_pfp_trim_aligned_result_right_bounded) = S ((S (fom_index_pfp_trim_aligned_result_right_bounded)) * rc)) /\ exists fom_beta_quotient_pfp_trim_aligned_result_right_bounded_entry. rb = fom_beta_quotient_pfp_trim_aligned_result_right_bounded_entry * S ((S (fom_index_pfp_trim_aligned_result_right_bounded)) * rc) + (fom_value_pfp_trim_aligned_result_right_bounded))) /\ (exists fom_gap_pfp_trim_aligned_result_right_bounded_value_bound. fom_gap_pfp_trim_aligned_result_right_bounded_value_bound + S (fom_value_pfp_trim_aligned_result_right_bounded) = p))) /\ (((forall fom_index_pfp_trim_aligned_result_result_bounded. (exists fom_gap_pfp_trim_aligned_result_result_bounded_index_bound. fom_gap_pfp_trim_aligned_result_result_bounded_index_bound + S (fom_index_pfp_trim_aligned_result_result_bounded) = L) -> exists fom_value_pfp_trim_aligned_result_result_bounded. ((((exists fom_beta_height_pfp_trim_aligned_result_result_bounded_entry. fom_beta_height_pfp_trim_aligned_result_result_bounded_entry + S (fom_value_pfp_trim_aligned_result_result_bounded) = S ((S (fom_index_pfp_trim_aligned_result_result_bounded)) * ac)) /\ exists fom_beta_quotient_pfp_trim_aligned_result_result_bounded_entry. ab = fom_beta_quotient_pfp_trim_aligned_result_result_bounded_entry * S ((S (fom_index_pfp_trim_aligned_result_result_bounded)) * ac) + (fom_value_pfp_trim_aligned_result_result_bounded))) /\ (exists fom_gap_pfp_trim_aligned_result_result_bounded_value_bound. fom_gap_pfp_trim_aligned_result_result_bounded_value_bound + S (fom_value_pfp_trim_aligned_result_result_bounded) = p))) /\ ((exists pfaa_left_b_trim_aligned_result pfaa_left_c_trim_aligned_result pfaa_right_b_trim_aligned_result pfaa_right_c_trim_aligned_result pfaa_sum_b_trim_aligned_result pfaa_sum_c_trim_aligned_result pfaa_length_trim_aligned_result. ((((forall pfrep_power_trim_aligned_result_witness_common_left pfrep_left_trim_aligned_result_witness_common_left pfrep_right_trim_aligned_result_witness_common_left. ((exists pfrep_position_trim_aligned_result_witness_common_leftfirst. ((pfrep_position_trim_aligned_result_witness_common_leftfirst+S (pfrep_power_trim_aligned_result_witness_common_left)=(N)) /\ ((((exists ff_h_pfp_trim_aligned_result_witness_common_leftfirstentry. ff_h_pfp_trim_aligned_result_witness_common_leftfirstentry + S (pfrep_left_trim_aligned_result_witness_common_left) = S ((S (pfrep_position_trim_aligned_result_witness_common_leftfirst)) * pc)) /\ exists ff_q_pfp_trim_aligned_result_witness_common_leftfirstentry. pb = ff_q_pfp_trim_aligned_result_witness_common_leftfirstentry * S ((S (pfrep_position_trim_aligned_result_witness_common_leftfirst)) * pc) + (pfrep_left_trim_aligned_result_witness_common_left)))))) \/ (((exists pfrep_gap_trim_aligned_result_witness_common_leftfirstoutside. pfrep_gap_trim_aligned_result_witness_common_leftfirstoutside+(N)=(pfrep_power_trim_aligned_result_witness_common_left)) /\ (((pfrep_left_trim_aligned_result_witness_common_left)=0))))) -> ((exists pfrep_position_trim_aligned_result_witness_common_leftsecond. ((pfrep_position_trim_aligned_result_witness_common_leftsecond+S (pfrep_power_trim_aligned_result_witness_common_left)=(pfaa_length_trim_aligned_result)) /\ ((((exists ff_h_pfp_trim_aligned_result_witness_common_leftsecondentry. ff_h_pfp_trim_aligned_result_witness_common_leftsecondentry + S (pfrep_right_trim_aligned_result_witness_common_left) = S ((S (pfrep_position_trim_aligned_result_witness_common_leftsecond)) * pfaa_left_c_trim_aligned_result)) /\ exists ff_q_pfp_trim_aligned_result_witness_common_leftsecondentry. pfaa_left_b_trim_aligned_result = ff_q_pfp_trim_aligned_result_witness_common_leftsecondentry * S ((S (pfrep_position_trim_aligned_result_witness_common_leftsecond)) * pfaa_left_c_trim_aligned_result) + (pfrep_right_trim_aligned_result_witness_common_left)))))) \/ (((exists pfrep_gap_trim_aligned_result_witness_common_leftsecondoutside. pfrep_gap_trim_aligned_result_witness_common_leftsecondoutside+(pfaa_length_trim_aligned_result)=(pfrep_power_trim_aligned_result_witness_common_left)) /\ (((pfrep_right_trim_aligned_result_witness_common_left)=0))))) -> pfrep_left_trim_aligned_result_witness_common_left=pfrep_right_trim_aligned_result_witness_common_left) /\ ((forall pfrep_power_trim_aligned_result_witness_common_right pfrep_left_trim_aligned_result_witness_common_right pfrep_right_trim_aligned_result_witness_common_right. ((exists pfrep_position_trim_aligned_result_witness_common_rightfirst. ((pfrep_position_trim_aligned_result_witness_common_rightfirst+S (pfrep_power_trim_aligned_result_witness_common_right)=(R)) /\ ((((exists ff_h_pfp_trim_aligned_result_witness_common_rightfirstentry. ff_h_pfp_trim_aligned_result_witness_common_rightfirstentry + S (pfrep_left_trim_aligned_result_witness_common_right) = S ((S (pfrep_position_trim_aligned_result_witness_common_rightfirst)) * rc)) /\ exists ff_q_pfp_trim_aligned_result_witness_common_rightfirstentry. rb = ff_q_pfp_trim_aligned_result_witness_common_rightfirstentry * S ((S (pfrep_position_trim_aligned_result_witness_common_rightfirst)) * rc) + (pfrep_left_trim_aligned_result_witness_common_right)))))) \/ (((exists pfrep_gap_trim_aligned_result_witness_common_rightfirstoutside. pfrep_gap_trim_aligned_result_witness_common_rightfirstoutside+(R)=(pfrep_power_trim_aligned_result_witness_common_right)) /\ (((pfrep_left_trim_aligned_result_witness_common_right)=0))))) -> ((exists pfrep_position_trim_aligned_result_witness_common_rightsecond. ((pfrep_position_trim_aligned_result_witness_common_rightsecond+S (pfrep_power_trim_aligned_result_witness_common_right)=(pfaa_length_trim_aligned_result)) /\ ((((exists ff_h_pfp_trim_aligned_result_witness_common_rightsecondentry. ff_h_pfp_trim_aligned_result_witness_common_rightsecondentry + S (pfrep_right_trim_aligned_result_witness_common_right) = S ((S (pfrep_position_trim_aligned_result_witness_common_rightsecond)) * pfaa_right_c_trim_aligned_result)) /\ exists ff_q_pfp_trim_aligned_result_witness_common_rightsecondentry. pfaa_right_b_trim_aligned_result = ff_q_pfp_trim_aligned_result_witness_common_rightsecondentry * S ((S (pfrep_position_trim_aligned_result_witness_common_rightsecond)) * pfaa_right_c_trim_aligned_result) + (pfrep_right_trim_aligned_result_witness_common_right)))))) \/ (((exists pfrep_gap_trim_aligned_result_witness_common_rightsecondoutside. pfrep_gap_trim_aligned_result_witness_common_rightsecondoutside+(pfaa_length_trim_aligned_result)=(pfrep_power_trim_aligned_result_witness_common_right)) /\ (((pfrep_right_trim_aligned_result_witness_common_right)=0))))) -> pfrep_left_trim_aligned_result_witness_common_right=pfrep_right_trim_aligned_result_witness_common_right)))) /\ (((forall pfp_index_trim_aligned_result_witness_operation. (exists pfa_gap_trim_aligned_result_witness_operationindex. pfa_gap_trim_aligned_result_witness_operationindex + S (pfp_index_trim_aligned_result_witness_operation) = (pfaa_length_trim_aligned_result)) -> exists pfp_left_trim_aligned_result_witness_operation pfp_right_trim_aligned_result_witness_operation pfp_value_trim_aligned_result_witness_operation. ((((exists ff_h_pfp_trim_aligned_result_witness_operationleft. ff_h_pfp_trim_aligned_result_witness_operationleft + S (pfp_left_trim_aligned_result_witness_operation) = S ((S (pfp_index_trim_aligned_result_witness_operation)) * pfaa_left_c_trim_aligned_result)) /\ exists ff_q_pfp_trim_aligned_result_witness_operationleft. pfaa_left_b_trim_aligned_result = ff_q_pfp_trim_aligned_result_witness_operationleft * S ((S (pfp_index_trim_aligned_result_witness_operation)) * pfaa_left_c_trim_aligned_result) + (pfp_left_trim_aligned_result_witness_operation))) /\ (((((exists ff_h_pfp_trim_aligned_result_witness_operationright. ff_h_pfp_trim_aligned_result_witness_operationright + S (pfp_right_trim_aligned_result_witness_operation) = S ((S (pfp_index_trim_aligned_result_witness_operation)) * pfaa_right_c_trim_aligned_result)) /\ exists ff_q_pfp_trim_aligned_result_witness_operationright. pfaa_right_b_trim_aligned_result = ff_q_pfp_trim_aligned_result_witness_operationright * S ((S (pfp_index_trim_aligned_result_witness_operation)) * pfaa_right_c_trim_aligned_result) + (pfp_right_trim_aligned_result_witness_operation))) /\ (((((exists ff_h_pfp_trim_aligned_result_witness_operationtarget. ff_h_pfp_trim_aligned_result_witness_operationtarget + S (pfp_value_trim_aligned_result_witness_operation) = S ((S (pfp_index_trim_aligned_result_witness_operation)) * pfaa_sum_c_trim_aligned_result)) /\ exists ff_q_pfp_trim_aligned_result_witness_operationtarget. pfaa_sum_b_trim_aligned_result = ff_q_pfp_trim_aligned_result_witness_operationtarget * S ((S (pfp_index_trim_aligned_result_witness_operation)) * pfaa_sum_c_trim_aligned_result) + (pfp_value_trim_aligned_result_witness_operation))) /\ ((((exists pfa_gap_trim_aligned_result_witness_operationoperationleft. pfa_gap_trim_aligned_result_witness_operationoperationleft + S (pfp_left_trim_aligned_result_witness_operation) = (p)) /\ (((exists pfa_gap_trim_aligned_result_witness_operationoperationright. pfa_gap_trim_aligned_result_witness_operationoperationright + S (pfp_right_trim_aligned_result_witness_operation) = (p)) /\ ((((exists pfa_gap_trim_aligned_result_witness_operationoperationresultbound. pfa_gap_trim_aligned_result_witness_operationoperationresultbound + S (pfp_value_trim_aligned_result_witness_operation) = (p)) /\ ((exists pfa_offset_left_trim_aligned_result_witness_operationoperationresultcongruence pfa_offset_right_trim_aligned_result_witness_operationoperationresultcongruence. ((pfp_left_trim_aligned_result_witness_operation) + (pfp_right_trim_aligned_result_witness_operation)) + (p) * pfa_offset_left_trim_aligned_result_witness_operationoperationresultcongruence = (pfp_value_trim_aligned_result_witness_operation) + (p) * pfa_offset_right_trim_aligned_result_witness_operationoperationresultcongruence)))))))))))))))) /\ ((forall pfrep_power_trim_aligned_result_witness_output pfrep_left_trim_aligned_result_witness_output pfrep_right_trim_aligned_result_witness_output. ((exists pfrep_position_trim_aligned_result_witness_outputfirst. ((pfrep_position_trim_aligned_result_witness_outputfirst+S (pfrep_power_trim_aligned_result_witness_output)=(pfaa_length_trim_aligned_result)) /\ ((((exists ff_h_pfp_trim_aligned_result_witness_outputfirstentry. ff_h_pfp_trim_aligned_result_witness_outputfirstentry + S (pfrep_left_trim_aligned_result_witness_output) = S ((S (pfrep_position_trim_aligned_result_witness_outputfirst)) * pfaa_sum_c_trim_aligned_result)) /\ exists ff_q_pfp_trim_aligned_result_witness_outputfirstentry. pfaa_sum_b_trim_aligned_result = ff_q_pfp_trim_aligned_result_witness_outputfirstentry * S ((S (pfrep_position_trim_aligned_result_witness_outputfirst)) * pfaa_sum_c_trim_aligned_result) + (pfrep_left_trim_aligned_result_witness_output)))))) \/ (((exists pfrep_gap_trim_aligned_result_witness_outputfirstoutside. pfrep_gap_trim_aligned_result_witness_outputfirstoutside+(pfaa_length_trim_aligned_result)=(pfrep_power_trim_aligned_result_witness_output)) /\ (((pfrep_left_trim_aligned_result_witness_output)=0))))) -> ((exists pfrep_position_trim_aligned_result_witness_outputsecond. ((pfrep_position_trim_aligned_result_witness_outputsecond+S (pfrep_power_trim_aligned_result_witness_output)=(L)) /\ ((((exists ff_h_pfp_trim_aligned_result_witness_outputsecondentry. ff_h_pfp_trim_aligned_result_witness_outputsecondentry + S (pfrep_right_trim_aligned_result_witness_output) = S ((S (pfrep_position_trim_aligned_result_witness_outputsecond)) * ac)) /\ exists ff_q_pfp_trim_aligned_result_witness_outputsecondentry. ab = ff_q_pfp_trim_aligned_result_witness_outputsecondentry * S ((S (pfrep_position_trim_aligned_result_witness_outputsecond)) * ac) + (pfrep_right_trim_aligned_result_witness_output)))))) \/ (((exists pfrep_gap_trim_aligned_result_witness_outputsecondoutside. pfrep_gap_trim_aligned_result_witness_outputsecondoutside+(L)=(pfrep_power_trim_aligned_result_witness_output)) /\ (((pfrep_right_trim_aligned_result_witness_output)=0))))) -> pfrep_left_trim_aligned_result_witness_output=pfrep_right_trim_aligned_result_witness_output)))))))))))))

Complete tactic proof in conservative notation

All 84 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

84 script commands · 20 reading checkpoints · 3 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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

01Fix variables and assumptionsL1–10

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

  1. L1
    intro p
  2. L2
    intro pb
  3. L3
    intro pc
  4. L4
    intro N
  5. L5
    intro xb
  6. L6
    intro xc
  7. L7
    intro ub
  8. L8
    intro uc
  9. L9
    intro ab
  10. L10
    intro ac
02Fix variables and assumptionsL11–19

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

  1. L11
    intro L
  2. L12
    intro t
  3. L13
    intro rb
  4. L14
    intro rc
  5. L15
    intro R
  6. L16
    intro hproduct
  7. L17
    intro hequivalent
  8. L18
    intro hadd
  9. L19
    intro htrim
03Establish hboundsL20–29

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

  1. L20
    have hbounds : BetaPrefixInto(xb,xc,L,p) ∧ (BetaPrefixInto(ub,uc,L,p) ∧ BetaPrefixInto(ab,ac,L,p))Definitions: BetaPrefixInto(xb,xc,L,p)BetaPrefixInto(ub,uc,L,p)BetaPrefixInto(ab,ac,L,p)Original native command in the exact edition
  2. L21
    specialize prime_field_polynomial_add_bounded (p)
  3. L22
    specialize prime_field_polynomial_add_bounded (xb)
  4. L23
    specialize prime_field_polynomial_add_bounded (xc)
  5. L24
    specialize prime_field_polynomial_add_bounded (ub)
  6. L25
    specialize prime_field_polynomial_add_bounded (uc)
  7. L26
    specialize prime_field_polynomial_add_bounded (ab)
  8. L27
    specialize prime_field_polynomial_add_bounded (ac)
  9. L28
    specialize prime_field_polynomial_add_bounded (L)
  10. L29
    apply prime_field_polynomial_add_bounded
04Use earlier factsL30–30

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

  1. L30
    exact hadd
05Separate the logical casesL31–32

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

  1. L31
    cases hbounds
  2. L32
    cases hbounds_right
06Establish hremainderL33–42

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

  1. L33
    have hremainder : BetaPrefixInto(rb,rc,R,p)Definitions: BetaPrefixInto(rb,rc,R,p)Original native command in the exact edition
  2. L34
    specialize prime_field_polynomial_trim_output_coefficients (p)
  3. L35
    specialize prime_field_polynomial_trim_output_coefficients (ub)
  4. L36
    specialize prime_field_polynomial_trim_output_coefficients (uc)
  5. L37
    specialize prime_field_polynomial_trim_output_coefficients (L)
  6. L38
    specialize prime_field_polynomial_trim_output_coefficients (t)
  7. L39
    specialize prime_field_polynomial_trim_output_coefficients (rb)
  8. L40
    specialize prime_field_polynomial_trim_output_coefficients (rc)
  9. L41
    specialize prime_field_polynomial_trim_output_coefficients (R)
  10. L42
    apply prime_field_polynomial_trim_output_coefficients
07Use earlier factsL43–43

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

  1. L43
    exact htrim
08Establish hreverseL44–53

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

  1. L44
    have hreverse : PolynomialEquivalent(rb,rc,R,ub,uc,L)Definitions: PolynomialEquivalent(rb,rc,R,ub,uc,L)Original native command in the exact edition
  2. L45
    specialize prime_field_polynomial_equivalent_symmetric (ub)
  3. L46
    specialize prime_field_polynomial_equivalent_symmetric (uc)
  4. L47
    specialize prime_field_polynomial_equivalent_symmetric (L)
  5. L48
    specialize prime_field_polynomial_equivalent_symmetric (rb)
  6. L49
    specialize prime_field_polynomial_equivalent_symmetric (rc)
  7. L50
    specialize prime_field_polynomial_equivalent_symmetric (R)
  8. L51
    apply prime_field_polynomial_equivalent_symmetric
  9. L52
    specialize prime_field_polynomial_trim_equivalent (p)
  10. L53
    specialize prime_field_polynomial_trim_equivalent (ub)
09Use earlier factsL54–61

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

  1. L54
    specialize prime_field_polynomial_trim_equivalent (uc)
  2. L55
    specialize prime_field_polynomial_trim_equivalent (L)
  3. L56
    specialize prime_field_polynomial_trim_equivalent (t)
  4. L57
    specialize prime_field_polynomial_trim_equivalent (rb)
  5. L58
    specialize prime_field_polynomial_trim_equivalent (rc)
  6. L59
    specialize prime_field_polynomial_trim_equivalent (R)
  7. L60
    apply prime_field_polynomial_trim_equivalent
  8. L61
    exact htrim
10Separate the logical casesL62–62

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

  1. L62
    split
11Use earlier factsL63–63

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

  1. L63
    exact hproduct
12Separate the logical casesL64–64

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

  1. L64
    split
13Use earlier factsL65–65

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

  1. L65
    exact hremainder
14Separate the logical casesL66–66

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

  1. L66
    split
15Use earlier factsL67–67

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

  1. L67
    exact hbounds_right_right
16Construct an explicit witnessL68–74

Supply the displayed value, then prove that it has the required property.

  1. L68
    exists xb
  2. L69
    exists xc
  3. L70
    exists ub
  4. L71
    exists uc
  5. L72
    exists ab
  6. L73
    exists ac
  7. L74
    exists L
17Separate the logical casesL75–76

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

  1. L75
    split
  2. L76
    split
18Use earlier factsL77–78

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

  1. L77
    exact hequivalent
  2. L78
    exact hreverse
19Separate the logical casesL79–79

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

  1. L79
    split
20Use earlier factsL80–84

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

  1. L80
    exact hadd
  2. L81
    specialize prime_field_polynomial_power_coefficient_functional (ab)
  3. L82
    specialize prime_field_polynomial_power_coefficient_functional (ac)
  4. L83
    specialize prime_field_polynomial_power_coefficient_functional (L)
  5. L84
    apply prime_field_polynomial_power_coefficient_functional

Library-wide reading audit

Original defined command ledger · 84 lines
  1. 0001intro p
  2. 0002intro pb
  3. 0003intro pc
  4. 0004intro N
  5. 0005intro xb
  6. 0006intro xc
  7. 0007intro ub
  8. 0008intro uc
  9. 0009intro ab
  10. 0010intro ac
  11. 0011intro L
  12. 0012intro t
  13. 0013intro rb
  14. 0014intro rc
  15. 0015intro R
  16. 0016intro hproduct
  17. 0017intro hequivalent
  18. 0018intro hadd
  19. 0019intro htrim
  20. 0020have hbounds : BetaPrefixInto(xb,xc,L,p) ∧ (BetaPrefixInto(ub,uc,L,p)BetaPrefixInto(ab,ac,L,p))
  21. 0021specialize prime_field_polynomial_add_bounded (p)
  22. 0022specialize prime_field_polynomial_add_bounded (xb)
  23. 0023specialize prime_field_polynomial_add_bounded (xc)
  24. 0024specialize prime_field_polynomial_add_bounded (ub)
  25. 0025specialize prime_field_polynomial_add_bounded (uc)
  26. 0026specialize prime_field_polynomial_add_bounded (ab)
  27. 0027specialize prime_field_polynomial_add_bounded (ac)
  28. 0028specialize prime_field_polynomial_add_bounded (L)
  29. 0029apply prime_field_polynomial_add_bounded
  30. 0030exact hadd
  31. 0031cases hbounds
  32. 0032cases hbounds_right
  33. 0033have hremainder : BetaPrefixInto(rb,rc,R,p)
  34. 0034specialize prime_field_polynomial_trim_output_coefficients (p)
  35. 0035specialize prime_field_polynomial_trim_output_coefficients (ub)
  36. 0036specialize prime_field_polynomial_trim_output_coefficients (uc)
  37. 0037specialize prime_field_polynomial_trim_output_coefficients (L)
  38. 0038specialize prime_field_polynomial_trim_output_coefficients (t)
  39. 0039specialize prime_field_polynomial_trim_output_coefficients (rb)
  40. 0040specialize prime_field_polynomial_trim_output_coefficients (rc)
  41. 0041specialize prime_field_polynomial_trim_output_coefficients (R)
  42. 0042apply prime_field_polynomial_trim_output_coefficients
  43. 0043exact htrim
  44. 0044have hreverse : PolynomialEquivalent(rb,rc,R,ub,uc,L)
  45. 0045specialize prime_field_polynomial_equivalent_symmetric (ub)
  46. 0046specialize prime_field_polynomial_equivalent_symmetric (uc)
  47. 0047specialize prime_field_polynomial_equivalent_symmetric (L)
  48. 0048specialize prime_field_polynomial_equivalent_symmetric (rb)
  49. 0049specialize prime_field_polynomial_equivalent_symmetric (rc)
  50. 0050specialize prime_field_polynomial_equivalent_symmetric (R)
  51. 0051apply prime_field_polynomial_equivalent_symmetric
  52. 0052specialize prime_field_polynomial_trim_equivalent (p)
  53. 0053specialize prime_field_polynomial_trim_equivalent (ub)
  54. 0054specialize prime_field_polynomial_trim_equivalent (uc)
  55. 0055specialize prime_field_polynomial_trim_equivalent (L)
  56. 0056specialize prime_field_polynomial_trim_equivalent (t)
  57. 0057specialize prime_field_polynomial_trim_equivalent (rb)
  58. 0058specialize prime_field_polynomial_trim_equivalent (rc)
  59. 0059specialize prime_field_polynomial_trim_equivalent (R)
  60. 0060apply prime_field_polynomial_trim_equivalent
  61. 0061exact htrim
  62. 0062split
  63. 0063exact hproduct
  64. 0064split
  65. 0065exact hremainder
  66. 0066split
  67. 0067exact hbounds_right_right
  68. 0068exists xb
  69. 0069exists xc
  70. 0070exists ub
  71. 0071exists uc
  72. 0072exists ab
  73. 0073exists ac
  74. 0074exists L
  75. 0075split
  76. 0076split
  77. 0077exact hequivalent
  78. 0078exact hreverse
  79. 0079split
  80. 0080exact hadd
  81. 0081specialize prime_field_polynomial_power_coefficient_functional (ab)
  82. 0082specialize prime_field_polynomial_power_coefficient_functional (ac)
  83. 0083specialize prime_field_polynomial_power_coefficient_functional (L)
  84. 0084apply prime_field_polynomial_power_coefficient_functional