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 ub uc L t rb rc R q d. (exists pfc_gap_division_remainder_quotient_length. pfc_gap_division_remainder_quotient_length+(q)=(L)) -> (exists pfc_gap_division_remainder_cover_length. pfc_gap_division_remainder_cover_length+(L)=(q+d)) -> (forall pfp_repeat_index_division_remainder_zero. (exists pfa_gap_division_remainder_zeroindex. pfa_gap_division_remainder_zeroindex + S (pfp_repeat_index_division_remainder_zero) = (q)) -> (((exists ff_h_pfp_division_remainder_zeroentry. ff_h_pfp_division_remainder_zeroentry + S (0) = S ((S (pfp_repeat_index_division_remainder_zero)) * uc)) /\ exists ff_q_pfp_division_remainder_zeroentry. ub = ff_q_pfp_division_remainder_zeroentry * S ((S (pfp_repeat_index_division_remainder_zero)) * uc) + (0)))) -> ((((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_remainder_triminput. (exists fom_gap_pfp_division_remainder_triminput_index_bound. fom_gap_pfp_division_remainder_triminput_index_bound + S (fom_index_pfp_division_remainder_triminput) = L) -> exists fom_value_pfp_division_remainder_triminput. ((((exists fom_beta_height_pfp_division_remainder_triminput_entry. fom_beta_height_pfp_division_remainder_triminput_entry + S (fom_value_pfp_division_remainder_triminput) = S ((S (fom_index_pfp_division_remainder_triminput)) * uc)) /\ exists fom_beta_quotient_pfp_division_remainder_triminput_entry. ub = fom_beta_quotient_pfp_division_remainder_triminput_entry * S ((S (fom_index_pfp_division_remainder_triminput)) * uc) + (fom_value_pfp_division_remainder_triminput))) /\ (exists fom_gap_pfp_division_remainder_triminput_value_bound. fom_gap_pfp_division_remainder_triminput_value_bound + S (fom_value_pfp_division_remainder_triminput) = p))) /\ (((forall pfp_repeat_index_division_remainder_trimremoved. (exists pfa_gap_division_remainder_trimremovedindex. pfa_gap_division_remainder_trimremovedindex + S (pfp_repeat_index_division_remainder_trimremoved) = (t)) -> (((exists ff_h_pfp_division_remainder_trimremovedentry. ff_h_pfp_division_remainder_trimremovedentry + S (0) = S ((S (pfp_repeat_index_division_remainder_trimremoved)) * uc)) /\ exists ff_q_pfp_division_remainder_trimremovedentry. ub = ff_q_pfp_division_remainder_trimremovedentry * S ((S (pfp_repeat_index_division_remainder_trimremoved)) * uc) + (0)))) /\ (((forall pftrim_index_division_remainder_trimsuffix pftrim_value_division_remainder_trimsuffix. (exists pfa_gap_division_remainder_trimsuffixbound. pfa_gap_division_remainder_trimsuffixbound + S (pftrim_index_division_remainder_trimsuffix) = (R)) -> (((exists ff_h_pfp_division_remainder_trimsuffixsource. ff_h_pfp_division_remainder_trimsuffixsource + S (pftrim_value_division_remainder_trimsuffix) = S ((S ((t)+pftrim_index_division_remainder_trimsuffix)) * uc)) /\ exists ff_q_pfp_division_remainder_trimsuffixsource. ub = ff_q_pfp_division_remainder_trimsuffixsource * S ((S ((t)+pftrim_index_division_remainder_trimsuffix)) * uc) + (pftrim_value_division_remainder_trimsuffix))) -> (((exists ff_h_pfp_division_remainder_trimsuffixoutput. ff_h_pfp_division_remainder_trimsuffixoutput + S (pftrim_value_division_remainder_trimsuffix) = S ((S (pftrim_index_division_remainder_trimsuffix)) * rc)) /\ exists ff_q_pfp_division_remainder_trimsuffixoutput. rb = ff_q_pfp_division_remainder_trimsuffixoutput * S ((S (pftrim_index_division_remainder_trimsuffix)) * rc) + (pftrim_value_division_remainder_trimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_remainder_trimnormal. ((((exists ff_h_pfp_division_remainder_trimnormalentry. ff_h_pfp_division_remainder_trimnormalentry + S (pftrim_leading_division_remainder_trimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_remainder_trimnormalentry. rb = ff_q_pfp_division_remainder_trimnormalentry * S ((S (0)) * rc) + (pftrim_leading_division_remainder_trimnormal))) /\ ((~(pftrim_leading_division_remainder_trimnormal=0))))))))))))))) -> (exists pfc_gap_division_remainder_bound. pfc_gap_division_remainder_bound+(R)=(d))Constructive proof overview
Generated structural guide
The actual trimmed residual has at most d coefficients after a length-q zero prefix is proved; no degree is assigned to the empty case.
The unchanged tactic script uses 5 declared prerequisites and contains 65 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PX0034 prime_field_polynomial_trim_zero_prefix_cut_bound add_comm Alpha theorem; checked-use authorized add_le_add_left Alpha theorem; checked-use authorized le_trans Alpha theorem; checked-use authorized add_le_cancel_right Alpha theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–14
03Establish hqtL15–24
Establish this local claim before using it. It is not an additional assumption.
- L15
have hqt : exists pfc_gap_division_remainder_cut. pfc_gap_division_remainder_cut+(q)=(t) - L16
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (p) - L17
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (ub) - L18
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (uc) - L19
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (L) - L20
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (t) - L21
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (rb) - L22
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (rc) - L23
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (R) - L24
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (q)
04Use earlier factsL25–28
05Establish hcopyL29–30
Establish this local claim before using it. It is not an additional assumption.
- L29
have hcopy : FpPolynomialTrim(p,ub,uc,L,t,rb,rc,R)Definitions: FpPolynomialTrim - L30
exact ht
06Separate the logical casesL31–34
07Establish htotalL35–41
08Establish hpartialL42–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add le add left.
09Establish hfullL49–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
10Establish hcommL56–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add comm.
Original exact command ledger · 65 lines
- 0001
intro p - 0002
intro ub - 0003
intro uc - 0004
intro L - 0005
intro t - 0006
intro rb - 0007
intro rc - 0008
intro R - 0009
intro q - 0010
intro d - 0011
intro hqL - 0012
intro hLd - 0013
intro hz - 0014
intro ht - 0015
have hqt : exists pfc_gap_division_remainder_cut. pfc_gap_division_remainder_cut+(q)=(t) - 0016
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (p) - 0017
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (ub) - 0018
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (uc) - 0019
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (L) - 0020
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (t) - 0021
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (rb) - 0022
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (rc) - 0023
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (R) - 0024
specialize prime_field_polynomial_trim_zero_prefix_cut_bound (q) - 0025
apply prime_field_polynomial_trim_zero_prefix_cut_bound - 0026
exact hqL - 0027
exact hz - 0028
exact ht - 0029
have hcopy : (((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_remainder_copyinput. (exists fom_gap_pfp_division_remainder_copyinput_index_bound. fom_gap_pfp_division_remainder_copyinput_index_bound + S (fom_index_pfp_division_remainder_copyinput) = L) -> exists fom_value_pfp_division_remainder_copyinput. ((((exists fom_beta_height_pfp_division_remainder_copyinput_entry. fom_beta_height_pfp_division_remainder_copyinput_entry + S (fom_value_pfp_division_remainder_copyinput) = S ((S (fom_index_pfp_division_remainder_copyinput)) * uc)) /\ exists fom_beta_quotient_pfp_division_remainder_copyinput_entry. ub = fom_beta_quotient_pfp_division_remainder_copyinput_entry * S ((S (fom_index_pfp_division_remainder_copyinput)) * uc) + (fom_value_pfp_division_remainder_copyinput))) /\ (exists fom_gap_pfp_division_remainder_copyinput_value_bound. fom_gap_pfp_division_remainder_copyinput_value_bound + S (fom_value_pfp_division_remainder_copyinput) = p))) /\ (((forall pfp_repeat_index_division_remainder_copyremoved. (exists pfa_gap_division_remainder_copyremovedindex. pfa_gap_division_remainder_copyremovedindex + S (pfp_repeat_index_division_remainder_copyremoved) = (t)) -> (((exists ff_h_pfp_division_remainder_copyremovedentry. ff_h_pfp_division_remainder_copyremovedentry + S (0) = S ((S (pfp_repeat_index_division_remainder_copyremoved)) * uc)) /\ exists ff_q_pfp_division_remainder_copyremovedentry. ub = ff_q_pfp_division_remainder_copyremovedentry * S ((S (pfp_repeat_index_division_remainder_copyremoved)) * uc) + (0)))) /\ (((forall pftrim_index_division_remainder_copysuffix pftrim_value_division_remainder_copysuffix. (exists pfa_gap_division_remainder_copysuffixbound. pfa_gap_division_remainder_copysuffixbound + S (pftrim_index_division_remainder_copysuffix) = (R)) -> (((exists ff_h_pfp_division_remainder_copysuffixsource. ff_h_pfp_division_remainder_copysuffixsource + S (pftrim_value_division_remainder_copysuffix) = S ((S ((t)+pftrim_index_division_remainder_copysuffix)) * uc)) /\ exists ff_q_pfp_division_remainder_copysuffixsource. ub = ff_q_pfp_division_remainder_copysuffixsource * S ((S ((t)+pftrim_index_division_remainder_copysuffix)) * uc) + (pftrim_value_division_remainder_copysuffix))) -> (((exists ff_h_pfp_division_remainder_copysuffixoutput. ff_h_pfp_division_remainder_copysuffixoutput + S (pftrim_value_division_remainder_copysuffix) = S ((S (pftrim_index_division_remainder_copysuffix)) * rc)) /\ exists ff_q_pfp_division_remainder_copysuffixoutput. rb = ff_q_pfp_division_remainder_copysuffixoutput * S ((S (pftrim_index_division_remainder_copysuffix)) * rc) + (pftrim_value_division_remainder_copysuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_remainder_copynormal. ((((exists ff_h_pfp_division_remainder_copynormalentry. ff_h_pfp_division_remainder_copynormalentry + S (pftrim_leading_division_remainder_copynormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_remainder_copynormalentry. rb = ff_q_pfp_division_remainder_copynormalentry * S ((S (0)) * rc) + (pftrim_leading_division_remainder_copynormal))) /\ ((~(pftrim_leading_division_remainder_copynormal=0)))))))))))))) - 0030
exact ht - 0031
cases hcopy - 0032
cases hcopy_right - 0033
cases hcopy_right_right - 0034
cases hcopy_right_right_right - 0035
have htotal : R+t=L - 0036
trans t+R - 0037
specialize add_comm (R) - 0038
specialize add_comm (t) - 0039
apply add_comm - 0040
symm - 0041
exact hcopy_left - 0042
have hpartial : exists pfc_gap_division_remainder_partial. pfc_gap_division_remainder_partial+(R+q)=(R+t) - 0043
specialize add_le_add_left (q) - 0044
specialize add_le_add_left (t) - 0045
specialize add_le_add_left (R) - 0046
apply add_le_add_left - 0047
exact hqt - 0048
rewrite htotal at hpartial - 0049
have hfull : exists pfc_gap_division_remainder_full. pfc_gap_division_remainder_full+(R+q)=(q+d) - 0050
specialize le_trans (R+q) - 0051
specialize le_trans (L) - 0052
specialize le_trans (q+d) - 0053
apply le_trans - 0054
exact hpartial - 0055
exact hLd - 0056
have hcomm : q+d=d+q - 0057
specialize add_comm (q) - 0058
specialize add_comm (d) - 0059
apply add_comm - 0060
rewrite hcomm at hfull - 0061
specialize add_le_cancel_right (R) - 0062
specialize add_le_cancel_right (d) - 0063
specialize add_le_cancel_right (q) - 0064
apply add_le_cancel_right - 0065
exact hfull