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. (exists pfc_gap_division_cut_length. pfc_gap_division_cut_length+(q)=(L)) -> (forall pfp_repeat_index_division_cut_zero. (exists pfa_gap_division_cut_zeroindex. pfa_gap_division_cut_zeroindex + S (pfp_repeat_index_division_cut_zero) = (q)) -> (((exists ff_h_pfp_division_cut_zeroentry. ff_h_pfp_division_cut_zeroentry + S (0) = S ((S (pfp_repeat_index_division_cut_zero)) * uc)) /\ exists ff_q_pfp_division_cut_zeroentry. ub = ff_q_pfp_division_cut_zeroentry * S ((S (pfp_repeat_index_division_cut_zero)) * uc) + (0)))) -> ((((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_cut_triminput. (exists fom_gap_pfp_division_cut_triminput_index_bound. fom_gap_pfp_division_cut_triminput_index_bound + S (fom_index_pfp_division_cut_triminput) = L) -> exists fom_value_pfp_division_cut_triminput. ((((exists fom_beta_height_pfp_division_cut_triminput_entry. fom_beta_height_pfp_division_cut_triminput_entry + S (fom_value_pfp_division_cut_triminput) = S ((S (fom_index_pfp_division_cut_triminput)) * uc)) /\ exists fom_beta_quotient_pfp_division_cut_triminput_entry. ub = fom_beta_quotient_pfp_division_cut_triminput_entry * S ((S (fom_index_pfp_division_cut_triminput)) * uc) + (fom_value_pfp_division_cut_triminput))) /\ (exists fom_gap_pfp_division_cut_triminput_value_bound. fom_gap_pfp_division_cut_triminput_value_bound + S (fom_value_pfp_division_cut_triminput) = p))) /\ (((forall pfp_repeat_index_division_cut_trimremoved. (exists pfa_gap_division_cut_trimremovedindex. pfa_gap_division_cut_trimremovedindex + S (pfp_repeat_index_division_cut_trimremoved) = (t)) -> (((exists ff_h_pfp_division_cut_trimremovedentry. ff_h_pfp_division_cut_trimremovedentry + S (0) = S ((S (pfp_repeat_index_division_cut_trimremoved)) * uc)) /\ exists ff_q_pfp_division_cut_trimremovedentry. ub = ff_q_pfp_division_cut_trimremovedentry * S ((S (pfp_repeat_index_division_cut_trimremoved)) * uc) + (0)))) /\ (((forall pftrim_index_division_cut_trimsuffix pftrim_value_division_cut_trimsuffix. (exists pfa_gap_division_cut_trimsuffixbound. pfa_gap_division_cut_trimsuffixbound + S (pftrim_index_division_cut_trimsuffix) = (R)) -> (((exists ff_h_pfp_division_cut_trimsuffixsource. ff_h_pfp_division_cut_trimsuffixsource + S (pftrim_value_division_cut_trimsuffix) = S ((S ((t)+pftrim_index_division_cut_trimsuffix)) * uc)) /\ exists ff_q_pfp_division_cut_trimsuffixsource. ub = ff_q_pfp_division_cut_trimsuffixsource * S ((S ((t)+pftrim_index_division_cut_trimsuffix)) * uc) + (pftrim_value_division_cut_trimsuffix))) -> (((exists ff_h_pfp_division_cut_trimsuffixoutput. ff_h_pfp_division_cut_trimsuffixoutput + S (pftrim_value_division_cut_trimsuffix) = S ((S (pftrim_index_division_cut_trimsuffix)) * rc)) /\ exists ff_q_pfp_division_cut_trimsuffixoutput. rb = ff_q_pfp_division_cut_trimsuffixoutput * S ((S (pftrim_index_division_cut_trimsuffix)) * rc) + (pftrim_value_division_cut_trimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_cut_trimnormal. ((((exists ff_h_pfp_division_cut_trimnormalentry. ff_h_pfp_division_cut_trimnormalentry + S (pftrim_leading_division_cut_trimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_cut_trimnormalentry. rb = ff_q_pfp_division_cut_trimnormalentry * S ((S (0)) * rc) + (pftrim_leading_division_cut_trimnormal))) /\ ((~(pftrim_leading_division_cut_trimnormal=0))))))))))))))) -> (exists pfc_gap_division_cut_result. pfc_gap_division_cut_result+(q)=(t))Constructive proof overview
Generated structural guide
A normalized trim cannot stop inside a proved all-zero leading prefix; empty output is treated separately.
The unchanged tactic script uses 3 declared prerequisites and contains 53 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
le_or_lt Alpha theorem; checked-use authorized eq_decidable Alpha theorem; checked-use authorized prime_field_polynomial_trim_leading_source_nonzero 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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Establish horderL13–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le or lt.
04Separate the logical casesL17–17
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L17
cases horder
05Use earlier factsL18–18
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L18
exact horder_left
06Establish hRL19–22
07Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases hR
08Establish hcopyL24–25
Establish this local claim before using it. It is not an additional assumption.
- L24
have hcopy : FpPolynomialTrim(p,ub,uc,L,t,rb,rc,R)Definitions: FpPolynomialTrim - L25
exact ht
09Separate the logical casesL26–29
10Establish hLtL30–36
11Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
exfalso
12Use earlier factsL38–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
specialize prime_field_polynomial_trim_leading_source_nonzero (p) - L39
specialize prime_field_polynomial_trim_leading_source_nonzero (ub) - L40
specialize prime_field_polynomial_trim_leading_source_nonzero (uc) - L41
specialize prime_field_polynomial_trim_leading_source_nonzero (L) - L42
specialize prime_field_polynomial_trim_leading_source_nonzero (t) - L43
specialize prime_field_polynomial_trim_leading_source_nonzero (rb) - L44
specialize prime_field_polynomial_trim_leading_source_nonzero (rc) - L45
specialize prime_field_polynomial_trim_leading_source_nonzero (R) - L46
specialize prime_field_polynomial_trim_leading_source_nonzero (0) - L47
apply prime_field_polynomial_trim_leading_source_nonzero
13Use earlier factsL48–52
14Calculate and transport equalitiesL53–53
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L53
refl
Original exact command ledger · 53 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 hlen - 0011
intro hz - 0012
intro ht - 0013
have horder : (exists pfc_gap_division_cut_before. pfc_gap_division_cut_before+(q)=(t)) \/ (exists pfa_gap_division_cut_inside. pfa_gap_division_cut_inside + S (t) = (q)) - 0014
specialize le_or_lt (q) - 0015
specialize le_or_lt (t) - 0016
apply le_or_lt - 0017
cases horder - 0018
exact horder_left - 0019
have hR : R=0 \/ ~(R=0) - 0020
specialize eq_decidable (R) - 0021
specialize eq_decidable (0) - 0022
apply eq_decidable - 0023
cases hR - 0024
have hcopy : (((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_cut_copyinput. (exists fom_gap_pfp_division_cut_copyinput_index_bound. fom_gap_pfp_division_cut_copyinput_index_bound + S (fom_index_pfp_division_cut_copyinput) = L) -> exists fom_value_pfp_division_cut_copyinput. ((((exists fom_beta_height_pfp_division_cut_copyinput_entry. fom_beta_height_pfp_division_cut_copyinput_entry + S (fom_value_pfp_division_cut_copyinput) = S ((S (fom_index_pfp_division_cut_copyinput)) * uc)) /\ exists fom_beta_quotient_pfp_division_cut_copyinput_entry. ub = fom_beta_quotient_pfp_division_cut_copyinput_entry * S ((S (fom_index_pfp_division_cut_copyinput)) * uc) + (fom_value_pfp_division_cut_copyinput))) /\ (exists fom_gap_pfp_division_cut_copyinput_value_bound. fom_gap_pfp_division_cut_copyinput_value_bound + S (fom_value_pfp_division_cut_copyinput) = p))) /\ (((forall pfp_repeat_index_division_cut_copyremoved. (exists pfa_gap_division_cut_copyremovedindex. pfa_gap_division_cut_copyremovedindex + S (pfp_repeat_index_division_cut_copyremoved) = (t)) -> (((exists ff_h_pfp_division_cut_copyremovedentry. ff_h_pfp_division_cut_copyremovedentry + S (0) = S ((S (pfp_repeat_index_division_cut_copyremoved)) * uc)) /\ exists ff_q_pfp_division_cut_copyremovedentry. ub = ff_q_pfp_division_cut_copyremovedentry * S ((S (pfp_repeat_index_division_cut_copyremoved)) * uc) + (0)))) /\ (((forall pftrim_index_division_cut_copysuffix pftrim_value_division_cut_copysuffix. (exists pfa_gap_division_cut_copysuffixbound. pfa_gap_division_cut_copysuffixbound + S (pftrim_index_division_cut_copysuffix) = (R)) -> (((exists ff_h_pfp_division_cut_copysuffixsource. ff_h_pfp_division_cut_copysuffixsource + S (pftrim_value_division_cut_copysuffix) = S ((S ((t)+pftrim_index_division_cut_copysuffix)) * uc)) /\ exists ff_q_pfp_division_cut_copysuffixsource. ub = ff_q_pfp_division_cut_copysuffixsource * S ((S ((t)+pftrim_index_division_cut_copysuffix)) * uc) + (pftrim_value_division_cut_copysuffix))) -> (((exists ff_h_pfp_division_cut_copysuffixoutput. ff_h_pfp_division_cut_copysuffixoutput + S (pftrim_value_division_cut_copysuffix) = S ((S (pftrim_index_division_cut_copysuffix)) * rc)) /\ exists ff_q_pfp_division_cut_copysuffixoutput. rb = ff_q_pfp_division_cut_copysuffixoutput * S ((S (pftrim_index_division_cut_copysuffix)) * rc) + (pftrim_value_division_cut_copysuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_cut_copynormal. ((((exists ff_h_pfp_division_cut_copynormalentry. ff_h_pfp_division_cut_copynormalentry + S (pftrim_leading_division_cut_copynormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_cut_copynormalentry. rb = ff_q_pfp_division_cut_copynormalentry * S ((S (0)) * rc) + (pftrim_leading_division_cut_copynormal))) /\ ((~(pftrim_leading_division_cut_copynormal=0)))))))))))))) - 0025
exact ht - 0026
cases hcopy - 0027
cases hcopy_right - 0028
cases hcopy_right_right - 0029
cases hcopy_right_right_right - 0030
have hLt : L=t - 0031
trans t+R - 0032
exact hcopy_left - 0033
rewrite hR_left - 0034
simp - 0035
rewrite hLt at hlen - 0036
exact hlen - 0037
exfalso - 0038
specialize prime_field_polynomial_trim_leading_source_nonzero (p) - 0039
specialize prime_field_polynomial_trim_leading_source_nonzero (ub) - 0040
specialize prime_field_polynomial_trim_leading_source_nonzero (uc) - 0041
specialize prime_field_polynomial_trim_leading_source_nonzero (L) - 0042
specialize prime_field_polynomial_trim_leading_source_nonzero (t) - 0043
specialize prime_field_polynomial_trim_leading_source_nonzero (rb) - 0044
specialize prime_field_polynomial_trim_leading_source_nonzero (rc) - 0045
specialize prime_field_polynomial_trim_leading_source_nonzero (R) - 0046
specialize prime_field_polynomial_trim_leading_source_nonzero (0) - 0047
apply prime_field_polynomial_trim_leading_source_nonzero - 0048
exact ht - 0049
exact hR_right - 0050
specialize hz (t) - 0051
apply hz - 0052
exact horder_right - 0053
refl