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. ∀ AB. ∀ AC. ∀ bb. ∀ bc. ∀ d. ∀ N. ∀ a. ∀ b. ∀ db. ∀ dc. ∀ eb. ∀ ec. ∀ u. ∀ v. BetaPrefixEqual(ab,ac,AB,AC,N) → BetaAt(AB,AC,N,a) → BetaAt(bb,bc,0,b) → PolynomialDiagonalPrefix(ab,ac,N,bb,bc,S d,N,db,dc,S N) → Sum(db,dc,S N,u) → PolynomialDiagonalPrefix(AB,AC,S N,bb,bc,S d,N,eb,ec,S N) → Sum(eb,ec,S N,v) → v = u + a · b
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 186 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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–23
04Establish holdL24–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
- L24
have hold : ∃ t. ∃ s. BetaAt(db,dc,N,t) ∧ (Sum(db,dc,N,s) ∧ u = s + t)Definitions: BetaAt(db,dc,N,t)Sum(db,dc,N,s)Original native command in the exact edition - L25
specialize beta_sum_succ_decompose (db) - L26
specialize beta_sum_succ_decompose (dc) - L27
specialize beta_sum_succ_decompose (N) - L28
specialize beta_sum_succ_decompose (u) - L29
apply beta_sum_succ_decompose - L30
exact hu
05Separate the logical casesL31–34
06Establish hnewL35–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
- L35
have hnew : ∃ t. ∃ s. BetaAt(eb,ec,N,t) ∧ (Sum(eb,ec,N,s) ∧ v = s + t)Definitions: BetaAt(eb,ec,N,t)Sum(eb,ec,N,s)Original native command in the exact edition - L36
specialize beta_sum_succ_decompose (eb) - L37
specialize beta_sum_succ_decompose (ec) - L38
specialize beta_sum_succ_decompose (N) - L39
specialize beta_sum_succ_decompose (v) - L40
apply beta_sum_succ_decompose - L41
exact hv
07Separate the logical casesL42–45
08Establish hzL46–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial diagonal last term left empty.
- L46
have hz : x=0 - L47
specialize polynomial_diagonal_last_term_left_empty (ab) - L48
specialize polynomial_diagonal_last_term_left_empty (ac) - L49
specialize polynomial_diagonal_last_term_left_empty (bb) - L50
specialize polynomial_diagonal_last_term_left_empty (bc) - L51
specialize polynomial_diagonal_last_term_left_empty (S d) - L52
specialize polynomial_diagonal_last_term_left_empty (N) - L53
specialize polynomial_diagonal_last_term_left_empty (x) - L54
apply polynomial_diagonal_last_term_left_empty - L55
specialize polynomial_diagonal_prefix_entry (ab)
09Use earlier factsL56–65
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
specialize polynomial_diagonal_prefix_entry (ac) - L57
specialize polynomial_diagonal_prefix_entry (N) - L58
specialize polynomial_diagonal_prefix_entry (bb) - L59
specialize polynomial_diagonal_prefix_entry (bc) - L60
specialize polynomial_diagonal_prefix_entry (S d) - L61
specialize polynomial_diagonal_prefix_entry (N) - L62
specialize polynomial_diagonal_prefix_entry (db) - L63
specialize polynomial_diagonal_prefix_entry (dc) - L64
specialize polynomial_diagonal_prefix_entry (S N) - L65
specialize polynomial_diagonal_prefix_entry (N)
10Use earlier factsL66–71
11Establish htL72–81
Establish this local claim before using it. It is not an additional assumption.
- L72
have ht : x2=a*b - L73
specialize polynomial_diagonal_last_term_left_append (AB) - L74
specialize polynomial_diagonal_last_term_left_append (AC) - L75
specialize polynomial_diagonal_last_term_left_append (bb) - L76
specialize polynomial_diagonal_last_term_left_append (bc) - L77
specialize polynomial_diagonal_last_term_left_append (d) - L78
specialize polynomial_diagonal_last_term_left_append (N) - L79
specialize polynomial_diagonal_last_term_left_append (a) - L80
specialize polynomial_diagonal_last_term_left_append (b) - L81
specialize polynomial_diagonal_last_term_left_append (x2)
12Use earlier factsL82–91
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
apply polynomial_diagonal_last_term_left_append - L83
exact ha - L84
exact hb - L85
specialize polynomial_diagonal_prefix_entry (AB) - L86
specialize polynomial_diagonal_prefix_entry (AC) - L87
specialize polynomial_diagonal_prefix_entry (S N) - L88
specialize polynomial_diagonal_prefix_entry (bb) - L89
specialize polynomial_diagonal_prefix_entry (bc) - L90
specialize polynomial_diagonal_prefix_entry (S d) - L91
specialize polynomial_diagonal_prefix_entry (N)
13Use earlier factsL92–101
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
specialize polynomial_diagonal_prefix_entry (eb) - L93
specialize polynomial_diagonal_prefix_entry (ec) - L94
specialize polynomial_diagonal_prefix_entry (S N) - L95
specialize polynomial_diagonal_prefix_entry (N) - L96
specialize polynomial_diagonal_prefix_entry (x2) - L97
apply polynomial_diagonal_prefix_entry - L98
exact hetable - L99
specialize le_refl (S N) - L100
apply le_refl - L101
exact hnew_witness_witness_left
14Establish hprefixL102–111
Establish this local claim before using it. It is not an additional assumption.
- L102
have hprefix : PolynomialDiagonalPrefix(AB,AC,S N,bb,bc,S d,N,db,dc,N)Definitions: PolynomialDiagonalPrefix(AB,AC,S N,bb,bc,S d,N,db,dc,N)Original native command in the exact edition - L103
specialize polynomial_diagonal_prefix_left_transport (ab) - L104
specialize polynomial_diagonal_prefix_left_transport (ac) - L105
specialize polynomial_diagonal_prefix_left_transport (N) - L106
specialize polynomial_diagonal_prefix_left_transport (AB) - L107
specialize polynomial_diagonal_prefix_left_transport (AC) - L108
specialize polynomial_diagonal_prefix_left_transport (S N) - L109
specialize polynomial_diagonal_prefix_left_transport (bb) - L110
specialize polynomial_diagonal_prefix_left_transport (bc) - L111
specialize polynomial_diagonal_prefix_left_transport (S d)
15Use earlier factsL112–121
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L112
specialize polynomial_diagonal_prefix_left_transport (N) - L113
specialize polynomial_diagonal_prefix_left_transport (N) - L114
specialize polynomial_diagonal_prefix_left_transport (db) - L115
specialize polynomial_diagonal_prefix_left_transport (dc) - L116
apply polynomial_diagonal_prefix_left_transport - L117
specialize le_refl (N) - L118
apply le_refl - L119
specialize le_succ (N) - L120
specialize le_succ (N) - L121
apply le_succ
16Use earlier factsL122–124
17Fix variables and assumptionsL125–126
18Use earlier factsL127–132
19Establish hsL133–142
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum transport prefix.
- L133
- L134
specialize beta_sum_transport_prefix (db) - L135
specialize beta_sum_transport_prefix (dc) - L136
specialize beta_sum_transport_prefix (eb) - L137
specialize beta_sum_transport_prefix (ec) - L138
specialize beta_sum_transport_prefix (N) - L139
specialize beta_sum_transport_prefix (x1) - L140
apply beta_sum_transport_prefix - L141
exact hold_witness_witness_right_left - L142
specialize polynomial_diagonal_prefix_functional (AB)
20Use earlier factsL143–152
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L143
specialize polynomial_diagonal_prefix_functional (AC) - L144
specialize polynomial_diagonal_prefix_functional (S N) - L145
specialize polynomial_diagonal_prefix_functional (bb) - L146
specialize polynomial_diagonal_prefix_functional (bc) - L147
specialize polynomial_diagonal_prefix_functional (S d) - L148
specialize polynomial_diagonal_prefix_functional (N) - L149
specialize polynomial_diagonal_prefix_functional (db) - L150
specialize polynomial_diagonal_prefix_functional (dc) - L151
specialize polynomial_diagonal_prefix_functional (eb) - L152
specialize polynomial_diagonal_prefix_functional (ec)
21Use earlier factsL153–155
22Fix variables and assumptionsL156–157
23Use earlier factsL158–163
24Establish hbaseL164–172
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum functional.
25Establish huvalueL173–182
26Use earlier factsL183–183
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L183
exact hbase
27Calculate and transport equalitiesL184–184
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L184
symm
Original defined command ledger · 186 lines
- 0001
intro ab - 0002
intro ac - 0003
intro AB - 0004
intro AC - 0005
intro bb - 0006
intro bc - 0007
intro d - 0008
intro N - 0009
intro a - 0010
intro b - 0011
intro db - 0012
intro dc - 0013
intro eb - 0014
intro ec - 0015
intro u - 0016
intro v - 0017
intro he - 0018
intro ha - 0019
intro hb - 0020
intro hd - 0021
intro hu - 0022
intro hetable - 0023
intro hv - 0024
have hold : ∃ t. ∃ s. BetaAt(db,dc,N,t) ∧ (Sum(db,dc,N,s) ∧ u = s + t) - 0025
specialize beta_sum_succ_decompose (db) - 0026
specialize beta_sum_succ_decompose (dc) - 0027
specialize beta_sum_succ_decompose (N) - 0028
specialize beta_sum_succ_decompose (u) - 0029
apply beta_sum_succ_decompose - 0030
exact hu - 0031
cases hold - 0032
cases hold_witness - 0033
cases hold_witness_witness - 0034
cases hold_witness_witness_right - 0035
have hnew : ∃ t. ∃ s. BetaAt(eb,ec,N,t) ∧ (Sum(eb,ec,N,s) ∧ v = s + t) - 0036
specialize beta_sum_succ_decompose (eb) - 0037
specialize beta_sum_succ_decompose (ec) - 0038
specialize beta_sum_succ_decompose (N) - 0039
specialize beta_sum_succ_decompose (v) - 0040
apply beta_sum_succ_decompose - 0041
exact hv - 0042
cases hnew - 0043
cases hnew_witness - 0044
cases hnew_witness_witness - 0045
cases hnew_witness_witness_right - 0046
have hz : x=0 - 0047
specialize polynomial_diagonal_last_term_left_empty (ab) - 0048
specialize polynomial_diagonal_last_term_left_empty (ac) - 0049
specialize polynomial_diagonal_last_term_left_empty (bb) - 0050
specialize polynomial_diagonal_last_term_left_empty (bc) - 0051
specialize polynomial_diagonal_last_term_left_empty (S d) - 0052
specialize polynomial_diagonal_last_term_left_empty (N) - 0053
specialize polynomial_diagonal_last_term_left_empty (x) - 0054
apply polynomial_diagonal_last_term_left_empty - 0055
specialize polynomial_diagonal_prefix_entry (ab) - 0056
specialize polynomial_diagonal_prefix_entry (ac) - 0057
specialize polynomial_diagonal_prefix_entry (N) - 0058
specialize polynomial_diagonal_prefix_entry (bb) - 0059
specialize polynomial_diagonal_prefix_entry (bc) - 0060
specialize polynomial_diagonal_prefix_entry (S d) - 0061
specialize polynomial_diagonal_prefix_entry (N) - 0062
specialize polynomial_diagonal_prefix_entry (db) - 0063
specialize polynomial_diagonal_prefix_entry (dc) - 0064
specialize polynomial_diagonal_prefix_entry (S N) - 0065
specialize polynomial_diagonal_prefix_entry (N) - 0066
specialize polynomial_diagonal_prefix_entry (x) - 0067
apply polynomial_diagonal_prefix_entry - 0068
exact hd - 0069
specialize le_refl (S N) - 0070
apply le_refl - 0071
exact hold_witness_witness_left - 0072
have ht : x2=a*b - 0073
specialize polynomial_diagonal_last_term_left_append (AB) - 0074
specialize polynomial_diagonal_last_term_left_append (AC) - 0075
specialize polynomial_diagonal_last_term_left_append (bb) - 0076
specialize polynomial_diagonal_last_term_left_append (bc) - 0077
specialize polynomial_diagonal_last_term_left_append (d) - 0078
specialize polynomial_diagonal_last_term_left_append (N) - 0079
specialize polynomial_diagonal_last_term_left_append (a) - 0080
specialize polynomial_diagonal_last_term_left_append (b) - 0081
specialize polynomial_diagonal_last_term_left_append (x2) - 0082
apply polynomial_diagonal_last_term_left_append - 0083
exact ha - 0084
exact hb - 0085
specialize polynomial_diagonal_prefix_entry (AB) - 0086
specialize polynomial_diagonal_prefix_entry (AC) - 0087
specialize polynomial_diagonal_prefix_entry (S N) - 0088
specialize polynomial_diagonal_prefix_entry (bb) - 0089
specialize polynomial_diagonal_prefix_entry (bc) - 0090
specialize polynomial_diagonal_prefix_entry (S d) - 0091
specialize polynomial_diagonal_prefix_entry (N) - 0092
specialize polynomial_diagonal_prefix_entry (eb) - 0093
specialize polynomial_diagonal_prefix_entry (ec) - 0094
specialize polynomial_diagonal_prefix_entry (S N) - 0095
specialize polynomial_diagonal_prefix_entry (N) - 0096
specialize polynomial_diagonal_prefix_entry (x2) - 0097
apply polynomial_diagonal_prefix_entry - 0098
exact hetable - 0099
specialize le_refl (S N) - 0100
apply le_refl - 0101
exact hnew_witness_witness_left - 0102
have hprefix : PolynomialDiagonalPrefix(AB,AC,S N,bb,bc,S d,N,db,dc,N) - 0103
specialize polynomial_diagonal_prefix_left_transport (ab) - 0104
specialize polynomial_diagonal_prefix_left_transport (ac) - 0105
specialize polynomial_diagonal_prefix_left_transport (N) - 0106
specialize polynomial_diagonal_prefix_left_transport (AB) - 0107
specialize polynomial_diagonal_prefix_left_transport (AC) - 0108
specialize polynomial_diagonal_prefix_left_transport (S N) - 0109
specialize polynomial_diagonal_prefix_left_transport (bb) - 0110
specialize polynomial_diagonal_prefix_left_transport (bc) - 0111
specialize polynomial_diagonal_prefix_left_transport (S d) - 0112
specialize polynomial_diagonal_prefix_left_transport (N) - 0113
specialize polynomial_diagonal_prefix_left_transport (N) - 0114
specialize polynomial_diagonal_prefix_left_transport (db) - 0115
specialize polynomial_diagonal_prefix_left_transport (dc) - 0116
apply polynomial_diagonal_prefix_left_transport - 0117
specialize le_refl (N) - 0118
apply le_refl - 0119
specialize le_succ (N) - 0120
specialize le_succ (N) - 0121
apply le_succ - 0122
specialize le_refl (N) - 0123
apply le_refl - 0124
exact he - 0125
intro j - 0126
intro hj - 0127
specialize hd (j) - 0128
apply hd - 0129
specialize le_succ (S j) - 0130
specialize le_succ (N) - 0131
apply le_succ - 0132
exact hj - 0133
have hs : Sum(eb,ec,N,x1) - 0134
specialize beta_sum_transport_prefix (db) - 0135
specialize beta_sum_transport_prefix (dc) - 0136
specialize beta_sum_transport_prefix (eb) - 0137
specialize beta_sum_transport_prefix (ec) - 0138
specialize beta_sum_transport_prefix (N) - 0139
specialize beta_sum_transport_prefix (x1) - 0140
apply beta_sum_transport_prefix - 0141
exact hold_witness_witness_right_left - 0142
specialize polynomial_diagonal_prefix_functional (AB) - 0143
specialize polynomial_diagonal_prefix_functional (AC) - 0144
specialize polynomial_diagonal_prefix_functional (S N) - 0145
specialize polynomial_diagonal_prefix_functional (bb) - 0146
specialize polynomial_diagonal_prefix_functional (bc) - 0147
specialize polynomial_diagonal_prefix_functional (S d) - 0148
specialize polynomial_diagonal_prefix_functional (N) - 0149
specialize polynomial_diagonal_prefix_functional (db) - 0150
specialize polynomial_diagonal_prefix_functional (dc) - 0151
specialize polynomial_diagonal_prefix_functional (eb) - 0152
specialize polynomial_diagonal_prefix_functional (ec) - 0153
specialize polynomial_diagonal_prefix_functional (N) - 0154
apply polynomial_diagonal_prefix_functional - 0155
exact hprefix - 0156
intro j - 0157
intro hj - 0158
specialize hetable (j) - 0159
apply hetable - 0160
specialize le_succ (S j) - 0161
specialize le_succ (N) - 0162
apply le_succ - 0163
exact hj - 0164
have hbase : x1=x3 - 0165
specialize beta_sum_functional (eb) - 0166
specialize beta_sum_functional (ec) - 0167
specialize beta_sum_functional (N) - 0168
specialize beta_sum_functional (x1) - 0169
specialize beta_sum_functional (x3) - 0170
apply beta_sum_functional - 0171
exact hs - 0172
exact hnew_witness_witness_right_left - 0173
have huvalue : u=x1 - 0174
trans x1+x - 0175
exact hold_witness_witness_right_right - 0176
rewrite hz - 0177
simp - 0178
trans x3+x2 - 0179
exact hnew_witness_witness_right_right - 0180
congr - 0181
trans x1 - 0182
symm - 0183
exact hbase - 0184
symm - 0185
exact huvalue - 0186
exact ht