Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
All coefficients retain the established highest-degree-first order. Trimming handles empty and all-zero prefixes; monic normalization requires a nonzero leading coefficient. Synthetic division has a nonempty input of length S n and a quotient of length n, unique in decoded values. Its coefficient recurrence, actual evaluation remainder and positive-degree drop are checked. General polynomial Euclidean division, gcd/Bezout, an arbitrary-convolution factor theorem, irreducible-polynomial existence and the full G091 prime-power-field endpoint remain open. These exact theorems are first admitted to Alpha v32; Stable remains unchanged.
Exact theorem in conservative defined notation
∀ p. ∀ a. ∀ b. Prime(p) → Lt(a,p) → Lt(b,p) → ∃ x. FpAdd(p,b,x,a)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 62 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–6
02Establish hnL7–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field negate exists.
- L7
have hn : ∃ n. FpAdd(p,b,n,0)Definitions: FpAdd(p,b,n,0)Original native command in the exact edition - L8
specialize prime_field_negate_exists (p) - L9
specialize prime_field_negate_exists (b) - L10
apply prime_field_negate_exists - L11
exact hp - L12
exact hb
03Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
cases hn
04Establish hnbL14–14
Establish this local claim before using it. It is not an additional assumption.
05Separate the logical casesL15–16
06Use earlier factsL17–17
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L17
exact hn_witness_right_left
07Establish hrL18–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field add exists.
- L18
have hr : ∃ r. FpAdd(p,x,a,r)Definitions: FpAdd(p,x,a,r)Original native command in the exact edition - L19
specialize prime_field_add_exists (p) - L20
specialize prime_field_add_exists (x) - L21
specialize prime_field_add_exists (a) - L22
apply prime_field_add_exists - L23
exact hp - L24
exact hnb - L25
exact ha
08Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
cases hr
09Establish hrbL27–27
Establish this local claim before using it. It is not an additional assumption.
10Separate the logical casesL28–30
11Use earlier factsL31–31
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
exact hr_witness_right_right_left
12Establish htL32–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field add exists.
- L32
have ht : ∃ t. FpAdd(p,b,x1,t)Definitions: FpAdd(p,b,x1,t)Original native command in the exact edition - L33
specialize prime_field_add_exists (p) - L34
specialize prime_field_add_exists (b) - L35
specialize prime_field_add_exists (x1) - L36
apply prime_field_add_exists - L37
exact hp - L38
exact hb - L39
exact hrb
13Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
cases ht
14Establish heqL41–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field add associative.
- L41
have heq : a=x2 - L42
specialize prime_field_add_associative (p) - L43
specialize prime_field_add_associative (b) - L44
specialize prime_field_add_associative (x) - L45
specialize prime_field_add_associative (a) - L46
specialize prime_field_add_associative (0) - L47
specialize prime_field_add_associative (x1) - L48
specialize prime_field_add_associative (a) - L49
specialize prime_field_add_associative (x2) - L50
apply prime_field_add_associative
15Use earlier factsL51–58
16Construct an explicit witnessL59–59
Supply the displayed value, then prove that it has the required property.
- L59
exists x1
17Calculate and transport equalitiesL60–61
18Use earlier factsL62–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L62
exact ht_witness
Original defined command ledger · 62 lines
- 0001
intro p - 0002
intro a - 0003
intro b - 0004
intro hp - 0005
intro ha - 0006
intro hb - 0007
have hn : ∃ n. FpAdd(p,b,n,0) - 0008
specialize prime_field_negate_exists (p) - 0009
specialize prime_field_negate_exists (b) - 0010
apply prime_field_negate_exists - 0011
exact hp - 0012
exact hb - 0013
cases hn - 0014
have hnb : Lt(x,p) - 0015
cases hn_witness - 0016
cases hn_witness_right - 0017
exact hn_witness_right_left - 0018
have hr : ∃ r. FpAdd(p,x,a,r) - 0019
specialize prime_field_add_exists (p) - 0020
specialize prime_field_add_exists (x) - 0021
specialize prime_field_add_exists (a) - 0022
apply prime_field_add_exists - 0023
exact hp - 0024
exact hnb - 0025
exact ha - 0026
cases hr - 0027
have hrb : Lt(x1,p) - 0028
cases hr_witness - 0029
cases hr_witness_right - 0030
cases hr_witness_right_right - 0031
exact hr_witness_right_right_left - 0032
have ht : ∃ t. FpAdd(p,b,x1,t) - 0033
specialize prime_field_add_exists (p) - 0034
specialize prime_field_add_exists (b) - 0035
specialize prime_field_add_exists (x1) - 0036
apply prime_field_add_exists - 0037
exact hp - 0038
exact hb - 0039
exact hrb - 0040
cases ht - 0041
have heq : a=x2 - 0042
specialize prime_field_add_associative (p) - 0043
specialize prime_field_add_associative (b) - 0044
specialize prime_field_add_associative (x) - 0045
specialize prime_field_add_associative (a) - 0046
specialize prime_field_add_associative (0) - 0047
specialize prime_field_add_associative (x1) - 0048
specialize prime_field_add_associative (a) - 0049
specialize prime_field_add_associative (x2) - 0050
apply prime_field_add_associative - 0051
exact hn_witness - 0052
specialize prime_field_add_zero_left (p) - 0053
specialize prime_field_add_zero_left (a) - 0054
apply prime_field_add_zero_left - 0055
exact hp - 0056
exact ha - 0057
exact hr_witness - 0058
exact ht_witness - 0059
exists x1 - 0060
rewrite heq - 0061
rewrite heq - 0062
exact ht_witness