Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Length is representation length, not polynomial degree. Leading zeros and the empty zero polynomial are allowed; the canonical argument guard x<p also applies to the empty case. Evaluation is defined by actual field-operation steps, not an assumed residue invariant. Polynomial division, gcd, irreducibles and general prime-power extension fields remain open; this does not close G091.
Exact theorem in conservative defined notation
∀ p. ∀ k. ∀ ab. ∀ ac. ∀ bb. ∀ bc. ∀ sb. ∀ sc. ∀ xb. ∀ xc. ∀ yb. ∀ yc. ∀ ub. ∀ uc. ∀ vb. ∀ vc. ∀ l. FpPolyAdd(p,ab,ac,bb,bc,sb,sc,l) → FpPolyScale(p,k,sb,sc,ub,uc,l) → FpPolyScale(p,k,ab,ac,xb,xc,l) → FpPolyScale(p,k,bb,bc,yb,yc,l) → FpPolyAdd(p,xb,xc,yb,yc,vb,vc,l) → BetaPrefixEqual(ub,uc,vb,vc,l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 157 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–20
03Fix variables and assumptionsL21–26
04Establish entry_aL27–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L27
have entry_a : ∃ z. BetaAt(ab,ac,i,z)Definitions: BetaAt(ab,ac,i,z)Original native command in the exact edition - L28
specialize beta_at_exists (ab) - L29
specialize beta_at_exists (ac) - L30
specialize beta_at_exists (i) - L31
apply beta_at_exists
05Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
cases entry_a
06Establish entry_bL33–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L33
have entry_b : ∃ z. BetaAt(bb,bc,i,z)Definitions: BetaAt(bb,bc,i,z)Original native command in the exact edition - L34
specialize beta_at_exists (bb) - L35
specialize beta_at_exists (bc) - L36
specialize beta_at_exists (i) - L37
apply beta_at_exists
07Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases entry_b
08Establish entry_sL39–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L39
have entry_s : ∃ z. BetaAt(sb,sc,i,z)Definitions: BetaAt(sb,sc,i,z)Original native command in the exact edition - L40
specialize beta_at_exists (sb) - L41
specialize beta_at_exists (sc) - L42
specialize beta_at_exists (i) - L43
apply beta_at_exists
09Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
cases entry_s
10Establish entry_xL45–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L45
have entry_x : ∃ z. BetaAt(xb,xc,i,z)Definitions: BetaAt(xb,xc,i,z)Original native command in the exact edition - L46
specialize beta_at_exists (xb) - L47
specialize beta_at_exists (xc) - L48
specialize beta_at_exists (i) - L49
apply beta_at_exists
11Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
cases entry_x
12Establish entry_yL51–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L51
have entry_y : ∃ z. BetaAt(yb,yc,i,z)Definitions: BetaAt(yb,yc,i,z)Original native command in the exact edition - L52
specialize beta_at_exists (yb) - L53
specialize beta_at_exists (yc) - L54
specialize beta_at_exists (i) - L55
apply beta_at_exists
13Separate the logical casesL56–56
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L56
cases entry_y
14Establish entry_vL57–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L57
have entry_v : ∃ z. BetaAt(vb,vc,i,z)Definitions: BetaAt(vb,vc,i,z)Original native command in the exact edition - L58
specialize beta_at_exists (vb) - L59
specialize beta_at_exists (vc) - L60
specialize beta_at_exists (i) - L61
apply beta_at_exists
15Separate the logical casesL62–62
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L62
cases entry_v
16Establish heqL63–72
Establish this local claim before using it. It is not an additional assumption.
- L63
have heq : r=x5 - L64
specialize prime_field_left_distributive (p) - L65
specialize prime_field_left_distributive (k) - L66
specialize prime_field_left_distributive (x) - L67
specialize prime_field_left_distributive (x1) - L68
specialize prime_field_left_distributive (x2) - L69
specialize prime_field_left_distributive (x3) - L70
specialize prime_field_left_distributive (x4) - L71
specialize prime_field_left_distributive (r) - L72
specialize prime_field_left_distributive (x5)
17Use earlier factsL73–82
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L73
apply prime_field_left_distributive - L74
specialize prime_field_polynomial_add_entry (p) - L75
specialize prime_field_polynomial_add_entry (ab) - L76
specialize prime_field_polynomial_add_entry (ac) - L77
specialize prime_field_polynomial_add_entry (bb) - L78
specialize prime_field_polynomial_add_entry (bc) - L79
specialize prime_field_polynomial_add_entry (sb) - L80
specialize prime_field_polynomial_add_entry (sc) - L81
specialize prime_field_polynomial_add_entry (l) - L82
specialize prime_field_polynomial_add_entry (i)
18Use earlier factsL83–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L83
specialize prime_field_polynomial_add_entry (x) - L84
specialize prime_field_polynomial_add_entry (x1) - L85
specialize prime_field_polynomial_add_entry (x2) - L86
apply prime_field_polynomial_add_entry - L87
exact hsum - L88
exact hi - L89
exact entry_a_witness - L90
exact entry_b_witness - L91
exact entry_s_witness - L92
specialize prime_field_polynomial_scale_entry (p)
19Use earlier factsL93–102
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L93
specialize prime_field_polynomial_scale_entry (k) - L94
specialize prime_field_polynomial_scale_entry (sb) - L95
specialize prime_field_polynomial_scale_entry (sc) - L96
specialize prime_field_polynomial_scale_entry (ub) - L97
specialize prime_field_polynomial_scale_entry (uc) - L98
specialize prime_field_polynomial_scale_entry (l) - L99
specialize prime_field_polynomial_scale_entry (i) - L100
specialize prime_field_polynomial_scale_entry (x2) - L101
specialize prime_field_polynomial_scale_entry (r) - L102
apply prime_field_polynomial_scale_entry
20Use earlier factsL103–112
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L103
exact hleft - L104
exact hi - L105
exact entry_s_witness - L106
exact hr - L107
specialize prime_field_polynomial_scale_entry (p) - L108
specialize prime_field_polynomial_scale_entry (k) - L109
specialize prime_field_polynomial_scale_entry (ab) - L110
specialize prime_field_polynomial_scale_entry (ac) - L111
specialize prime_field_polynomial_scale_entry (xb) - L112
specialize prime_field_polynomial_scale_entry (xc)
21Use earlier factsL113–122
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L113
specialize prime_field_polynomial_scale_entry (l) - L114
specialize prime_field_polynomial_scale_entry (i) - L115
specialize prime_field_polynomial_scale_entry (x) - L116
specialize prime_field_polynomial_scale_entry (x3) - L117
apply prime_field_polynomial_scale_entry - L118
exact hfirst - L119
exact hi - L120
exact entry_a_witness - L121
exact entry_x_witness - L122
specialize prime_field_polynomial_scale_entry (p)
22Use earlier factsL123–132
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L123
specialize prime_field_polynomial_scale_entry (k) - L124
specialize prime_field_polynomial_scale_entry (bb) - L125
specialize prime_field_polynomial_scale_entry (bc) - L126
specialize prime_field_polynomial_scale_entry (yb) - L127
specialize prime_field_polynomial_scale_entry (yc) - L128
specialize prime_field_polynomial_scale_entry (l) - L129
specialize prime_field_polynomial_scale_entry (i) - L130
specialize prime_field_polynomial_scale_entry (x1) - L131
specialize prime_field_polynomial_scale_entry (x4) - L132
apply prime_field_polynomial_scale_entry
23Use earlier factsL133–142
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L133
exact hsecond - L134
exact hi - L135
exact entry_b_witness - L136
exact entry_y_witness - L137
specialize prime_field_polynomial_add_entry (p) - L138
specialize prime_field_polynomial_add_entry (xb) - L139
specialize prime_field_polynomial_add_entry (xc) - L140
specialize prime_field_polynomial_add_entry (yb) - L141
specialize prime_field_polynomial_add_entry (yc) - L142
specialize prime_field_polynomial_add_entry (vb)
24Use earlier factsL143–152
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L143
specialize prime_field_polynomial_add_entry (vc) - L144
specialize prime_field_polynomial_add_entry (l) - L145
specialize prime_field_polynomial_add_entry (i) - L146
specialize prime_field_polynomial_add_entry (x3) - L147
specialize prime_field_polynomial_add_entry (x4) - L148
specialize prime_field_polynomial_add_entry (x5) - L149
apply prime_field_polynomial_add_entry - L150
exact hright - L151
exact hi - L152
exact entry_x_witness
25Use earlier factsL153–154
26Calculate and transport equalitiesL155–156
27Use earlier factsL157–157
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L157
exact entry_v_witness
Original defined command ledger · 157 lines
- 0001
intro p - 0002
intro k - 0003
intro ab - 0004
intro ac - 0005
intro bb - 0006
intro bc - 0007
intro sb - 0008
intro sc - 0009
intro xb - 0010
intro xc - 0011
intro yb - 0012
intro yc - 0013
intro ub - 0014
intro uc - 0015
intro vb - 0016
intro vc - 0017
intro l - 0018
intro hsum - 0019
intro hleft - 0020
intro hfirst - 0021
intro hsecond - 0022
intro hright - 0023
intro i - 0024
intro r - 0025
intro hi - 0026
intro hr - 0027
have entry_a : ∃ z. BetaAt(ab,ac,i,z) - 0028
specialize beta_at_exists (ab) - 0029
specialize beta_at_exists (ac) - 0030
specialize beta_at_exists (i) - 0031
apply beta_at_exists - 0032
cases entry_a - 0033
have entry_b : ∃ z. BetaAt(bb,bc,i,z) - 0034
specialize beta_at_exists (bb) - 0035
specialize beta_at_exists (bc) - 0036
specialize beta_at_exists (i) - 0037
apply beta_at_exists - 0038
cases entry_b - 0039
have entry_s : ∃ z. BetaAt(sb,sc,i,z) - 0040
specialize beta_at_exists (sb) - 0041
specialize beta_at_exists (sc) - 0042
specialize beta_at_exists (i) - 0043
apply beta_at_exists - 0044
cases entry_s - 0045
have entry_x : ∃ z. BetaAt(xb,xc,i,z) - 0046
specialize beta_at_exists (xb) - 0047
specialize beta_at_exists (xc) - 0048
specialize beta_at_exists (i) - 0049
apply beta_at_exists - 0050
cases entry_x - 0051
have entry_y : ∃ z. BetaAt(yb,yc,i,z) - 0052
specialize beta_at_exists (yb) - 0053
specialize beta_at_exists (yc) - 0054
specialize beta_at_exists (i) - 0055
apply beta_at_exists - 0056
cases entry_y - 0057
have entry_v : ∃ z. BetaAt(vb,vc,i,z) - 0058
specialize beta_at_exists (vb) - 0059
specialize beta_at_exists (vc) - 0060
specialize beta_at_exists (i) - 0061
apply beta_at_exists - 0062
cases entry_v - 0063
have heq : r=x5 - 0064
specialize prime_field_left_distributive (p) - 0065
specialize prime_field_left_distributive (k) - 0066
specialize prime_field_left_distributive (x) - 0067
specialize prime_field_left_distributive (x1) - 0068
specialize prime_field_left_distributive (x2) - 0069
specialize prime_field_left_distributive (x3) - 0070
specialize prime_field_left_distributive (x4) - 0071
specialize prime_field_left_distributive (r) - 0072
specialize prime_field_left_distributive (x5) - 0073
apply prime_field_left_distributive - 0074
specialize prime_field_polynomial_add_entry (p) - 0075
specialize prime_field_polynomial_add_entry (ab) - 0076
specialize prime_field_polynomial_add_entry (ac) - 0077
specialize prime_field_polynomial_add_entry (bb) - 0078
specialize prime_field_polynomial_add_entry (bc) - 0079
specialize prime_field_polynomial_add_entry (sb) - 0080
specialize prime_field_polynomial_add_entry (sc) - 0081
specialize prime_field_polynomial_add_entry (l) - 0082
specialize prime_field_polynomial_add_entry (i) - 0083
specialize prime_field_polynomial_add_entry (x) - 0084
specialize prime_field_polynomial_add_entry (x1) - 0085
specialize prime_field_polynomial_add_entry (x2) - 0086
apply prime_field_polynomial_add_entry - 0087
exact hsum - 0088
exact hi - 0089
exact entry_a_witness - 0090
exact entry_b_witness - 0091
exact entry_s_witness - 0092
specialize prime_field_polynomial_scale_entry (p) - 0093
specialize prime_field_polynomial_scale_entry (k) - 0094
specialize prime_field_polynomial_scale_entry (sb) - 0095
specialize prime_field_polynomial_scale_entry (sc) - 0096
specialize prime_field_polynomial_scale_entry (ub) - 0097
specialize prime_field_polynomial_scale_entry (uc) - 0098
specialize prime_field_polynomial_scale_entry (l) - 0099
specialize prime_field_polynomial_scale_entry (i) - 0100
specialize prime_field_polynomial_scale_entry (x2) - 0101
specialize prime_field_polynomial_scale_entry (r) - 0102
apply prime_field_polynomial_scale_entry - 0103
exact hleft - 0104
exact hi - 0105
exact entry_s_witness - 0106
exact hr - 0107
specialize prime_field_polynomial_scale_entry (p) - 0108
specialize prime_field_polynomial_scale_entry (k) - 0109
specialize prime_field_polynomial_scale_entry (ab) - 0110
specialize prime_field_polynomial_scale_entry (ac) - 0111
specialize prime_field_polynomial_scale_entry (xb) - 0112
specialize prime_field_polynomial_scale_entry (xc) - 0113
specialize prime_field_polynomial_scale_entry (l) - 0114
specialize prime_field_polynomial_scale_entry (i) - 0115
specialize prime_field_polynomial_scale_entry (x) - 0116
specialize prime_field_polynomial_scale_entry (x3) - 0117
apply prime_field_polynomial_scale_entry - 0118
exact hfirst - 0119
exact hi - 0120
exact entry_a_witness - 0121
exact entry_x_witness - 0122
specialize prime_field_polynomial_scale_entry (p) - 0123
specialize prime_field_polynomial_scale_entry (k) - 0124
specialize prime_field_polynomial_scale_entry (bb) - 0125
specialize prime_field_polynomial_scale_entry (bc) - 0126
specialize prime_field_polynomial_scale_entry (yb) - 0127
specialize prime_field_polynomial_scale_entry (yc) - 0128
specialize prime_field_polynomial_scale_entry (l) - 0129
specialize prime_field_polynomial_scale_entry (i) - 0130
specialize prime_field_polynomial_scale_entry (x1) - 0131
specialize prime_field_polynomial_scale_entry (x4) - 0132
apply prime_field_polynomial_scale_entry - 0133
exact hsecond - 0134
exact hi - 0135
exact entry_b_witness - 0136
exact entry_y_witness - 0137
specialize prime_field_polynomial_add_entry (p) - 0138
specialize prime_field_polynomial_add_entry (xb) - 0139
specialize prime_field_polynomial_add_entry (xc) - 0140
specialize prime_field_polynomial_add_entry (yb) - 0141
specialize prime_field_polynomial_add_entry (yc) - 0142
specialize prime_field_polynomial_add_entry (vb) - 0143
specialize prime_field_polynomial_add_entry (vc) - 0144
specialize prime_field_polynomial_add_entry (l) - 0145
specialize prime_field_polynomial_add_entry (i) - 0146
specialize prime_field_polynomial_add_entry (x3) - 0147
specialize prime_field_polynomial_add_entry (x4) - 0148
specialize prime_field_polynomial_add_entry (x5) - 0149
apply prime_field_polynomial_add_entry - 0150
exact hright - 0151
exact hi - 0152
exact entry_x_witness - 0153
exact entry_y_witness - 0154
exact entry_v_witness - 0155
rewrite heq - 0156
rewrite heq - 0157
exact entry_v_witness