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 coefficients retain the established highest-degree-first order. Trimming handles empty and all-zero prefixes; monic normalization requires a nonzero leading coefficient. Synthetic division has a nonempty input of length S n and a quotient of length n, unique in decoded values. Its coefficient recurrence, actual evaluation remainder and positive-degree drop are checked. General polynomial Euclidean division, gcd/Bezout, an arbitrary-convolution factor theorem, irreducible-polynomial existence and the full G091 prime-power-field endpoint remain open. These exact theorems are first admitted to Alpha v32; Stable remains unchanged.
Exact theorem in conservative defined notation
∀ p. ∀ b. ∀ c. ∀ L. ∀ t. ∀ d. ∀ e. ∀ M. BetaPrefixInto(b,c,L,p) → L = t + M ∧ (Repeat(b,c,0,t) ∧ (M = 0 ∨ ¬M = 0 ∧ (∃ x. BetaAt(b,c,t,x) ∧ ¬x = 0))) → PolynomialSuffix(b,c,t,d,e,M) → FpPolynomialTrim(p,b,c,L,t,d,e,M)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 42 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
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–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro hs
03Separate the logical casesL12–14
04Use earlier factsL15–15
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L15
exact hcut_left
05Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
split
06Use earlier factsL17–17
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L17
exact hc
07Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
split
08Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
exact hcut_right_left
09Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
split
10Use earlier factsL21–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
exact hs
11Separate the logical casesL22–23
12Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
exact hcut_right_right_left
13Separate the logical casesL25–28
14Construct an explicit witnessL29–29
Supply the displayed value, then prove that it has the required property.
- L29
exists x
15Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
split
16Use earlier factsL31–36
Original defined command ledger · 42 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro L - 0005
intro t - 0006
intro d - 0007
intro e - 0008
intro M - 0009
intro hc - 0010
intro hcut - 0011
intro hs - 0012
cases hcut - 0013
cases hcut_right - 0014
split - 0015
exact hcut_left - 0016
split - 0017
exact hc - 0018
split - 0019
exact hcut_right_left - 0020
split - 0021
exact hs - 0022
cases hcut_right_right - 0023
left - 0024
exact hcut_right_right_left - 0025
right - 0026
cases hcut_right_right_right - 0027
cases hcut_right_right_right_right - 0028
cases hcut_right_right_right_right_witness - 0029
exists x - 0030
split - 0031
specialize hs (0) - 0032
specialize hs (x) - 0033
apply hs - 0034
specialize one_le_of_ne_zero (M) - 0035
apply one_le_of_ne_zero - 0036
exact hcut_right_right_right_left - 0037
have hindex : t+0=t - 0038
simp - 0039
rewrite hindex - 0040
rewrite hindex - 0041
exact hcut_right_right_right_right_witness_left - 0042
exact hcut_right_right_right_right_witness_right