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. ∀ BB. ∀ BC. ∀ t. ∀ i. ∀ db. ∀ dc. ∀ eb. ∀ ec. PolynomialLeftPad(bb,bc,M,t,BB,BC) → PolynomialDiagonalPrefix(ab,ac,L,bb,bc,M,i,db,dc,S i) → PolynomialDiagonalPrefix(ab,ac,L,BB,BC,t + M,t + i,eb,ec,S (t + i)) → BetaPrefixEqual(db,dc,eb,ec,S i) ∧ (∀ x. Lt(x,t) → BetaAt(eb,ec,S i + x,0))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 130 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–22
05Establish htermL23–32
Establish this local claim before using it. It is not an additional assumption.
- L23
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 - L24
specialize polynomial_diagonal_prefix_entry (ab) - L25
specialize polynomial_diagonal_prefix_entry (ac) - L26
specialize polynomial_diagonal_prefix_entry (L) - L27
specialize polynomial_diagonal_prefix_entry (bb) - L28
specialize polynomial_diagonal_prefix_entry (bc) - L29
specialize polynomial_diagonal_prefix_entry (M) - L30
specialize polynomial_diagonal_prefix_entry (i) - L31
specialize polynomial_diagonal_prefix_entry (db) - L32
specialize polynomial_diagonal_prefix_entry (dc)
06Use earlier factsL33–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
07Establish hvL40–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hnew.
- L40
have hv : ∃ z. BetaAt(eb,ec,j,z) ∧ PolynomialDiagonalTerm(ab,ac,L,BB,BC,t + M,t + i,j,z)Definitions: BetaAt(eb,ec,j,z)PolynomialDiagonalTerm(ab,ac,L,BB,BC,t + M,t + i,j,z)Original native command in the exact edition - L41
specialize hnew (j) - L42
apply hnew - L43
specialize le_trans (S j) - L44
specialize le_trans (S i) - L45
specialize le_trans (S (t+i)) - L46
apply le_trans - L47
exact hj - L48
specialize succ_le_succ (i) - L49
specialize succ_le_succ (t+i)
08Use earlier factsL50–53
09Separate the logical casesL54–55
10Establish heqL56–65
Establish this local claim before using it. It is not an additional assumption.
- L56
have heq : x=a - L57
specialize polynomial_diagonal_term_functional (ab) - L58
specialize polynomial_diagonal_term_functional (ac) - L59
specialize polynomial_diagonal_term_functional (L) - L60
specialize polynomial_diagonal_term_functional (BB) - L61
specialize polynomial_diagonal_term_functional (BC) - L62
specialize polynomial_diagonal_term_functional (t+M) - L63
specialize polynomial_diagonal_term_functional (t+i) - L64
specialize polynomial_diagonal_term_functional (j) - L65
specialize polynomial_diagonal_term_functional (x)
11Use earlier factsL66–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L66
specialize polynomial_diagonal_term_functional (a) - L67
apply polynomial_diagonal_term_functional - L68
exact hv_witness_right - L69
specialize polynomial_diagonal_term_left_padding_right (ab) - L70
specialize polynomial_diagonal_term_left_padding_right (ac) - L71
specialize polynomial_diagonal_term_left_padding_right (L) - L72
specialize polynomial_diagonal_term_left_padding_right (bb) - L73
specialize polynomial_diagonal_term_left_padding_right (bc) - L74
specialize polynomial_diagonal_term_left_padding_right (M) - L75
specialize polynomial_diagonal_term_left_padding_right (BB)
12Use earlier factsL76–83
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
specialize polynomial_diagonal_term_left_padding_right (BC) - L77
specialize polynomial_diagonal_term_left_padding_right (t) - L78
specialize polynomial_diagonal_term_left_padding_right (i) - L79
specialize polynomial_diagonal_term_left_padding_right (j) - L80
specialize polynomial_diagonal_term_left_padding_right (a) - L81
apply polynomial_diagonal_term_left_padding_right - L82
exact hpad - L83
exact hterm
13Calculate and transport equalitiesL84–85
14Use earlier factsL86–86
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L86
exact hv_witness_left
15Fix variables and assumptionsL87–88
16Establish hvL89–91
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hnew.
- L89
have hv : ∃ z. BetaAt(eb,ec,S i + j,z) ∧ PolynomialDiagonalTerm(ab,ac,L,BB,BC,t + M,t + i,S i + j,z)Definitions: BetaAt(eb,ec,S i + j,z)PolynomialDiagonalTerm(ab,ac,L,BB,BC,t + M,t + i,S i + j,z)Original native command in the exact edition - L90
specialize hnew (S i+j) - L91
apply hnew
17Establish hlengthL92–93
18Establish hboundL94–101
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix recursive lt add left.
- L94
have hbound : Lt(S i + j,S i + t)Definitions: Lt(S i + j,S i + t)Original native command in the exact edition - L95
specialize matrix_recursive_lt_add_left (j) - L96
specialize matrix_recursive_lt_add_left (t) - L97
specialize matrix_recursive_lt_add_left (S i) - L98
apply matrix_recursive_lt_add_left - L99
exact hj - L100
rewrite hlength at hbound - L101
exact hbound
19Separate the logical casesL102–103
20Establish hzL104–113
Establish this local claim before using it. It is not an additional assumption.
- L104
have hz : x=0 - L105
specialize polynomial_diagonal_term_left_padding_zero_right (ab) - L106
specialize polynomial_diagonal_term_left_padding_zero_right (ac) - L107
specialize polynomial_diagonal_term_left_padding_zero_right (L) - L108
specialize polynomial_diagonal_term_left_padding_zero_right (bb) - L109
specialize polynomial_diagonal_term_left_padding_zero_right (bc) - L110
specialize polynomial_diagonal_term_left_padding_zero_right (M) - L111
specialize polynomial_diagonal_term_left_padding_zero_right (BB) - L112
specialize polynomial_diagonal_term_left_padding_zero_right (BC) - L113
specialize polynomial_diagonal_term_left_padding_zero_right (t)
21Use earlier factsL114–122
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L114
specialize polynomial_diagonal_term_left_padding_zero_right (t+i) - L115
specialize polynomial_diagonal_term_left_padding_zero_right (S i+j) - L116
specialize polynomial_diagonal_term_left_padding_zero_right (x) - L117
apply polynomial_diagonal_term_left_padding_zero_right - L118
exact hpad - L119
specialize matrix_recursive_lt_add_left (i) - L120
specialize matrix_recursive_lt_add_left (S i+j) - L121
specialize matrix_recursive_lt_add_left (t) - L122
apply matrix_recursive_lt_add_left
22Construct an explicit witnessL123–123
Supply the displayed value, then prove that it has the required property.
- L123
exists j
23Use earlier factsL124–127
24Calculate and transport equalitiesL128–129
25Use earlier factsL130–130
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L130
exact hv_witness_left
Original defined command ledger · 130 lines
- 0001
intro ab - 0002
intro ac - 0003
intro L - 0004
intro bb - 0005
intro bc - 0006
intro M - 0007
intro BB - 0008
intro BC - 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 a - 0021
intro hj - 0022
intro ha - 0023
have hterm : PolynomialDiagonalTerm(ab,ac,L,bb,bc,M,i,j,a) - 0024
specialize polynomial_diagonal_prefix_entry (ab) - 0025
specialize polynomial_diagonal_prefix_entry (ac) - 0026
specialize polynomial_diagonal_prefix_entry (L) - 0027
specialize polynomial_diagonal_prefix_entry (bb) - 0028
specialize polynomial_diagonal_prefix_entry (bc) - 0029
specialize polynomial_diagonal_prefix_entry (M) - 0030
specialize polynomial_diagonal_prefix_entry (i) - 0031
specialize polynomial_diagonal_prefix_entry (db) - 0032
specialize polynomial_diagonal_prefix_entry (dc) - 0033
specialize polynomial_diagonal_prefix_entry (S i) - 0034
specialize polynomial_diagonal_prefix_entry (j) - 0035
specialize polynomial_diagonal_prefix_entry (a) - 0036
apply polynomial_diagonal_prefix_entry - 0037
exact hold - 0038
exact hj - 0039
exact ha - 0040
have hv : ∃ z. BetaAt(eb,ec,j,z) ∧ PolynomialDiagonalTerm(ab,ac,L,BB,BC,t + M,t + i,j,z) - 0041
specialize hnew (j) - 0042
apply hnew - 0043
specialize le_trans (S j) - 0044
specialize le_trans (S i) - 0045
specialize le_trans (S (t+i)) - 0046
apply le_trans - 0047
exact hj - 0048
specialize succ_le_succ (i) - 0049
specialize succ_le_succ (t+i) - 0050
apply succ_le_succ - 0051
specialize le_add_left (i) - 0052
specialize le_add_left (t) - 0053
apply le_add_left - 0054
cases hv - 0055
cases hv_witness - 0056
have heq : x=a - 0057
specialize polynomial_diagonal_term_functional (ab) - 0058
specialize polynomial_diagonal_term_functional (ac) - 0059
specialize polynomial_diagonal_term_functional (L) - 0060
specialize polynomial_diagonal_term_functional (BB) - 0061
specialize polynomial_diagonal_term_functional (BC) - 0062
specialize polynomial_diagonal_term_functional (t+M) - 0063
specialize polynomial_diagonal_term_functional (t+i) - 0064
specialize polynomial_diagonal_term_functional (j) - 0065
specialize polynomial_diagonal_term_functional (x) - 0066
specialize polynomial_diagonal_term_functional (a) - 0067
apply polynomial_diagonal_term_functional - 0068
exact hv_witness_right - 0069
specialize polynomial_diagonal_term_left_padding_right (ab) - 0070
specialize polynomial_diagonal_term_left_padding_right (ac) - 0071
specialize polynomial_diagonal_term_left_padding_right (L) - 0072
specialize polynomial_diagonal_term_left_padding_right (bb) - 0073
specialize polynomial_diagonal_term_left_padding_right (bc) - 0074
specialize polynomial_diagonal_term_left_padding_right (M) - 0075
specialize polynomial_diagonal_term_left_padding_right (BB) - 0076
specialize polynomial_diagonal_term_left_padding_right (BC) - 0077
specialize polynomial_diagonal_term_left_padding_right (t) - 0078
specialize polynomial_diagonal_term_left_padding_right (i) - 0079
specialize polynomial_diagonal_term_left_padding_right (j) - 0080
specialize polynomial_diagonal_term_left_padding_right (a) - 0081
apply polynomial_diagonal_term_left_padding_right - 0082
exact hpad - 0083
exact hterm - 0084
rewrite heq at hv_witness_left - 0085
rewrite heq at hv_witness_left - 0086
exact hv_witness_left - 0087
intro j - 0088
intro hj - 0089
have hv : ∃ z. BetaAt(eb,ec,S i + j,z) ∧ PolynomialDiagonalTerm(ab,ac,L,BB,BC,t + M,t + i,S i + j,z) - 0090
specialize hnew (S i+j) - 0091
apply hnew - 0092
have hlength : S i+t=S (t+i) - 0093
simp [add_succ_left,add_comm] - 0094
have hbound : Lt(S i + j,S i + t) - 0095
specialize matrix_recursive_lt_add_left (j) - 0096
specialize matrix_recursive_lt_add_left (t) - 0097
specialize matrix_recursive_lt_add_left (S i) - 0098
apply matrix_recursive_lt_add_left - 0099
exact hj - 0100
rewrite hlength at hbound - 0101
exact hbound - 0102
cases hv - 0103
cases hv_witness - 0104
have hz : x=0 - 0105
specialize polynomial_diagonal_term_left_padding_zero_right (ab) - 0106
specialize polynomial_diagonal_term_left_padding_zero_right (ac) - 0107
specialize polynomial_diagonal_term_left_padding_zero_right (L) - 0108
specialize polynomial_diagonal_term_left_padding_zero_right (bb) - 0109
specialize polynomial_diagonal_term_left_padding_zero_right (bc) - 0110
specialize polynomial_diagonal_term_left_padding_zero_right (M) - 0111
specialize polynomial_diagonal_term_left_padding_zero_right (BB) - 0112
specialize polynomial_diagonal_term_left_padding_zero_right (BC) - 0113
specialize polynomial_diagonal_term_left_padding_zero_right (t) - 0114
specialize polynomial_diagonal_term_left_padding_zero_right (t+i) - 0115
specialize polynomial_diagonal_term_left_padding_zero_right (S i+j) - 0116
specialize polynomial_diagonal_term_left_padding_zero_right (x) - 0117
apply polynomial_diagonal_term_left_padding_zero_right - 0118
exact hpad - 0119
specialize matrix_recursive_lt_add_left (i) - 0120
specialize matrix_recursive_lt_add_left (S i+j) - 0121
specialize matrix_recursive_lt_add_left (t) - 0122
apply matrix_recursive_lt_add_left - 0123
exists j - 0124
specialize add_comm (j) - 0125
specialize add_comm (S i) - 0126
apply add_comm - 0127
exact hv_witness_right - 0128
rewrite hz at hv_witness_left - 0129
rewrite hz at hv_witness_left - 0130
exact hv_witness_left