Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Coefficients are highest-degree-first. The divisor has a nonzero decoded head; primality supplies its actual inverse. Empty quotients and remainders are included. Functionality compares the constructed execution lengths and decoded coefficients, never arbitrary beta codes. Formal polynomial equivalence compares every coefficient, not evaluations on a finite field. The formal identity and remainder-degree bound are proved separately, not assumed by the execution graph. Arbitrary quotient/remainder-pair uniqueness from a formal identity, multiplication associativity, gcd/Bezout, irreducible-polynomial existence, and the full G091 prime-power-field goal remain open. The seven displayed new names are conservative first-order notation, not new kernel primitives.
Exact theorem in conservative defined notation
∀ L. ∀ M. ∀ N. ∀ t. ∀ K. PolynomialProductLength(L,M,N) → ¬L = 0 → ¬M = 0 → PolynomialProductLength(t + L,M,K) → K = t + N
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 44 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–9
02Separate the logical casesL10–13
03Use earlier factsL14–15
04Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
exfalso
05Use earlier factsL17–18
06Separate the logical casesL19–24
07Use earlier factsL25–29
08Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
exfalso
09Use earlier factsL31–32
10Separate the logical casesL33–34
11Use earlier factsL35–37
12Calculate and transport equalitiesL38–39
13Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hnew_right_right_right
14Calculate and transport equalitiesL41–41
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L41
trans t+(L+M)
15Use earlier factsL42–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
apply add_assoc
Original defined command ledger · 44 lines
- 0001
intro L - 0002
intro M - 0003
intro N - 0004
intro t - 0005
intro K - 0006
intro hold - 0007
intro hL - 0008
intro hM - 0009
intro hnew - 0010
cases hold - 0011
cases hold_left - 0012
cases hold_left_left - 0013
exfalso - 0014
apply hL - 0015
exact hold_left_left_left - 0016
exfalso - 0017
apply hM - 0018
exact hold_left_left_right - 0019
cases hold_right - 0020
cases hold_right_right - 0021
cases hnew - 0022
cases hnew_left - 0023
cases hnew_left_left - 0024
exfalso - 0025
apply hL - 0026
specialize add_eq_zero_right (t) - 0027
specialize add_eq_zero_right (L) - 0028
apply add_eq_zero_right - 0029
exact hnew_left_left_left - 0030
exfalso - 0031
apply hM - 0032
exact hnew_left_left_right - 0033
cases hnew_right - 0034
cases hnew_right_right - 0035
specialize succ_injective (K) - 0036
specialize succ_injective (t+N) - 0037
apply succ_injective - 0038
trans (t+L)+(M) - 0039
symm - 0040
exact hnew_right_right_right - 0041
trans t+(L+M) - 0042
apply add_assoc - 0043
rewrite hold_right_right_right - 0044
simp