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
∀ ab. ∀ ac. ∀ L. ∀ bb. ∀ bc. ∀ M. ∀ AB. ∀ AC. ∀ t. ∀ i. ∀ db. ∀ dc. ∀ eb. ∀ ec. PolynomialLeftPad(ab,ac,L,t,AB,AC) → PolynomialDiagonalPrefix(ab,ac,L,bb,bc,M,i,db,dc,S i) → PolynomialDiagonalPrefix(AB,AC,t + L,bb,bc,M,t + i,eb,ec,S (t + i)) → PolynomialLeftPad(db,dc,S i,t,eb,ec)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 124 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.
Named ingredients (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–17
03Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
split
04Fix variables and assumptionsL19–20
05Establish hvL21–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hnew.
- L21
have hv : ∃ z. BetaAt(eb,ec,j,z) ∧ PolynomialDiagonalTerm(AB,AC,t + L,bb,bc,M,t + i,j,z)Definitions: BetaAt(eb,ec,j,z)PolynomialDiagonalTerm(AB,AC,t + L,bb,bc,M,t + i,j,z)Original native command in the exact edition - L22
specialize hnew (j) - L23
apply hnew - L24
specialize le_trans (S j) - L25
specialize le_trans (t) - L26
specialize le_trans (S (t+i)) - L27
apply le_trans - L28
exact hj - L29
specialize le_succ (t) - L30
specialize le_succ (t+i)
06Use earlier factsL31–34
07Separate the logical casesL35–36
08Establish hzL37–46
Establish this local claim before using it. It is not an additional assumption.
- L37
have hz : x=0 - L38
specialize polynomial_diagonal_term_left_padding_zero_left (ab) - L39
specialize polynomial_diagonal_term_left_padding_zero_left (ac) - L40
specialize polynomial_diagonal_term_left_padding_zero_left (L) - L41
specialize polynomial_diagonal_term_left_padding_zero_left (bb) - L42
specialize polynomial_diagonal_term_left_padding_zero_left (bc) - L43
specialize polynomial_diagonal_term_left_padding_zero_left (M) - L44
specialize polynomial_diagonal_term_left_padding_zero_left (AB) - L45
specialize polynomial_diagonal_term_left_padding_zero_left (AC) - L46
specialize polynomial_diagonal_term_left_padding_zero_left (t)
09Use earlier factsL47–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
specialize polynomial_diagonal_term_left_padding_zero_left (t+i) - L48
specialize polynomial_diagonal_term_left_padding_zero_left (j) - L49
specialize polynomial_diagonal_term_left_padding_zero_left (x) - L50
apply polynomial_diagonal_term_left_padding_zero_left - L51
exact hpad - L52
exact hj - L53
exact hv_witness_right
10Calculate and transport equalitiesL54–55
11Use earlier factsL56–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
exact hv_witness_left
12Fix variables and assumptionsL57–60
13Establish htermL61–70
Establish this local claim before using it. It is not an additional assumption.
- L61
have hterm : PolynomialDiagonalTerm(ab,ac,L,bb,bc,M,i,j,a)Definitions: PolynomialDiagonalTerm(ab,ac,L,bb,bc,M,i,j,a)Original native command in the exact edition - L62
specialize polynomial_diagonal_prefix_entry (ab) - L63
specialize polynomial_diagonal_prefix_entry (ac) - L64
specialize polynomial_diagonal_prefix_entry (L) - L65
specialize polynomial_diagonal_prefix_entry (bb) - L66
specialize polynomial_diagonal_prefix_entry (bc) - L67
specialize polynomial_diagonal_prefix_entry (M) - L68
specialize polynomial_diagonal_prefix_entry (i) - L69
specialize polynomial_diagonal_prefix_entry (db) - L70
specialize polynomial_diagonal_prefix_entry (dc)
14Use earlier factsL71–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
15Establish hvL78–87
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hnew.
- L78
have hv : ∃ z. BetaAt(eb,ec,t + j,z) ∧ PolynomialDiagonalTerm(AB,AC,t + L,bb,bc,M,t + i,t + j,z)Definitions: BetaAt(eb,ec,t + j,z)PolynomialDiagonalTerm(AB,AC,t + L,bb,bc,M,t + i,t + j,z)Original native command in the exact edition - L79
specialize hnew (t+j) - L80
apply hnew - L81
specialize succ_le_succ (t+j) - L82
specialize succ_le_succ (t+i) - L83
apply succ_le_succ - L84
specialize add_le_add_left (j) - L85
specialize add_le_add_left (i) - L86
specialize add_le_add_left (t) - L87
apply add_le_add_left
16Use earlier factsL88–91
17Separate the logical casesL92–93
18Establish heqL94–103
Establish this local claim before using it. It is not an additional assumption.
- L94
have heq : x=a - L95
specialize polynomial_diagonal_term_functional (AB) - L96
specialize polynomial_diagonal_term_functional (AC) - L97
specialize polynomial_diagonal_term_functional (t+L) - L98
specialize polynomial_diagonal_term_functional (bb) - L99
specialize polynomial_diagonal_term_functional (bc) - L100
specialize polynomial_diagonal_term_functional (M) - L101
specialize polynomial_diagonal_term_functional (t+i) - L102
specialize polynomial_diagonal_term_functional (t+j) - L103
specialize polynomial_diagonal_term_functional (x)
19Use earlier factsL104–113
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L104
specialize polynomial_diagonal_term_functional (a) - L105
apply polynomial_diagonal_term_functional - L106
exact hv_witness_right - L107
specialize polynomial_diagonal_term_left_padding_left (ab) - L108
specialize polynomial_diagonal_term_left_padding_left (ac) - L109
specialize polynomial_diagonal_term_left_padding_left (L) - L110
specialize polynomial_diagonal_term_left_padding_left (bb) - L111
specialize polynomial_diagonal_term_left_padding_left (bc) - L112
specialize polynomial_diagonal_term_left_padding_left (M) - L113
specialize polynomial_diagonal_term_left_padding_left (AB)
20Use earlier factsL114–121
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L114
specialize polynomial_diagonal_term_left_padding_left (AC) - L115
specialize polynomial_diagonal_term_left_padding_left (t) - L116
specialize polynomial_diagonal_term_left_padding_left (i) - L117
specialize polynomial_diagonal_term_left_padding_left (j) - L118
specialize polynomial_diagonal_term_left_padding_left (a) - L119
apply polynomial_diagonal_term_left_padding_left - L120
exact hpad - L121
exact hterm
21Calculate and transport equalitiesL122–123
22Use earlier factsL124–124
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L124
exact hv_witness_left
Original defined command ledger · 124 lines
- 0001
intro ab - 0002
intro ac - 0003
intro L - 0004
intro bb - 0005
intro bc - 0006
intro M - 0007
intro AB - 0008
intro AC - 0009
intro t - 0010
intro i - 0011
intro db - 0012
intro dc - 0013
intro eb - 0014
intro ec - 0015
intro hpad - 0016
intro hold - 0017
intro hnew - 0018
split - 0019
intro j - 0020
intro hj - 0021
have hv : ∃ z. BetaAt(eb,ec,j,z) ∧ PolynomialDiagonalTerm(AB,AC,t + L,bb,bc,M,t + i,j,z) - 0022
specialize hnew (j) - 0023
apply hnew - 0024
specialize le_trans (S j) - 0025
specialize le_trans (t) - 0026
specialize le_trans (S (t+i)) - 0027
apply le_trans - 0028
exact hj - 0029
specialize le_succ (t) - 0030
specialize le_succ (t+i) - 0031
apply le_succ - 0032
specialize le_add_right (t) - 0033
specialize le_add_right (i) - 0034
apply le_add_right - 0035
cases hv - 0036
cases hv_witness - 0037
have hz : x=0 - 0038
specialize polynomial_diagonal_term_left_padding_zero_left (ab) - 0039
specialize polynomial_diagonal_term_left_padding_zero_left (ac) - 0040
specialize polynomial_diagonal_term_left_padding_zero_left (L) - 0041
specialize polynomial_diagonal_term_left_padding_zero_left (bb) - 0042
specialize polynomial_diagonal_term_left_padding_zero_left (bc) - 0043
specialize polynomial_diagonal_term_left_padding_zero_left (M) - 0044
specialize polynomial_diagonal_term_left_padding_zero_left (AB) - 0045
specialize polynomial_diagonal_term_left_padding_zero_left (AC) - 0046
specialize polynomial_diagonal_term_left_padding_zero_left (t) - 0047
specialize polynomial_diagonal_term_left_padding_zero_left (t+i) - 0048
specialize polynomial_diagonal_term_left_padding_zero_left (j) - 0049
specialize polynomial_diagonal_term_left_padding_zero_left (x) - 0050
apply polynomial_diagonal_term_left_padding_zero_left - 0051
exact hpad - 0052
exact hj - 0053
exact hv_witness_right - 0054
rewrite hz at hv_witness_left - 0055
rewrite hz at hv_witness_left - 0056
exact hv_witness_left - 0057
intro j - 0058
intro a - 0059
intro hj - 0060
intro ha - 0061
have hterm : PolynomialDiagonalTerm(ab,ac,L,bb,bc,M,i,j,a) - 0062
specialize polynomial_diagonal_prefix_entry (ab) - 0063
specialize polynomial_diagonal_prefix_entry (ac) - 0064
specialize polynomial_diagonal_prefix_entry (L) - 0065
specialize polynomial_diagonal_prefix_entry (bb) - 0066
specialize polynomial_diagonal_prefix_entry (bc) - 0067
specialize polynomial_diagonal_prefix_entry (M) - 0068
specialize polynomial_diagonal_prefix_entry (i) - 0069
specialize polynomial_diagonal_prefix_entry (db) - 0070
specialize polynomial_diagonal_prefix_entry (dc) - 0071
specialize polynomial_diagonal_prefix_entry (S i) - 0072
specialize polynomial_diagonal_prefix_entry (j) - 0073
specialize polynomial_diagonal_prefix_entry (a) - 0074
apply polynomial_diagonal_prefix_entry - 0075
exact hold - 0076
exact hj - 0077
exact ha - 0078
have hv : ∃ z. BetaAt(eb,ec,t + j,z) ∧ PolynomialDiagonalTerm(AB,AC,t + L,bb,bc,M,t + i,t + j,z) - 0079
specialize hnew (t+j) - 0080
apply hnew - 0081
specialize succ_le_succ (t+j) - 0082
specialize succ_le_succ (t+i) - 0083
apply succ_le_succ - 0084
specialize add_le_add_left (j) - 0085
specialize add_le_add_left (i) - 0086
specialize add_le_add_left (t) - 0087
apply add_le_add_left - 0088
specialize le_of_succ_le_succ (j) - 0089
specialize le_of_succ_le_succ (i) - 0090
apply le_of_succ_le_succ - 0091
exact hj - 0092
cases hv - 0093
cases hv_witness - 0094
have heq : x=a - 0095
specialize polynomial_diagonal_term_functional (AB) - 0096
specialize polynomial_diagonal_term_functional (AC) - 0097
specialize polynomial_diagonal_term_functional (t+L) - 0098
specialize polynomial_diagonal_term_functional (bb) - 0099
specialize polynomial_diagonal_term_functional (bc) - 0100
specialize polynomial_diagonal_term_functional (M) - 0101
specialize polynomial_diagonal_term_functional (t+i) - 0102
specialize polynomial_diagonal_term_functional (t+j) - 0103
specialize polynomial_diagonal_term_functional (x) - 0104
specialize polynomial_diagonal_term_functional (a) - 0105
apply polynomial_diagonal_term_functional - 0106
exact hv_witness_right - 0107
specialize polynomial_diagonal_term_left_padding_left (ab) - 0108
specialize polynomial_diagonal_term_left_padding_left (ac) - 0109
specialize polynomial_diagonal_term_left_padding_left (L) - 0110
specialize polynomial_diagonal_term_left_padding_left (bb) - 0111
specialize polynomial_diagonal_term_left_padding_left (bc) - 0112
specialize polynomial_diagonal_term_left_padding_left (M) - 0113
specialize polynomial_diagonal_term_left_padding_left (AB) - 0114
specialize polynomial_diagonal_term_left_padding_left (AC) - 0115
specialize polynomial_diagonal_term_left_padding_left (t) - 0116
specialize polynomial_diagonal_term_left_padding_left (i) - 0117
specialize polynomial_diagonal_term_left_padding_left (j) - 0118
specialize polynomial_diagonal_term_left_padding_left (a) - 0119
apply polynomial_diagonal_term_left_padding_left - 0120
exact hpad - 0121
exact hterm - 0122
rewrite heq at hv_witness_left - 0123
rewrite heq at hv_witness_left - 0124
exact hv_witness_left