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. ∀ ab. ∀ ac. ∀ bb. ∀ bc. ∀ l. Prime(p) → BetaPrefixInto(ab,ac,l,p) → BetaPrefixInto(bb,bc,l,p) → ∃ x. ∃ y. FpCoefficientSubtraction(p,ab,ac,bb,bc,x,y,l)
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–7
02Induction on lL8–10
03Construct an explicit witnessL11–12
04Use earlier factsL13–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L13
specialize prime_field_polynomial_subtract_empty (p) - L14
specialize prime_field_polynomial_subtract_empty (ab) - L15
specialize prime_field_polynomial_subtract_empty (ac) - L16
specialize prime_field_polynomial_subtract_empty (bb) - L17
specialize prime_field_polynomial_subtract_empty (bc) - L18
specialize prime_field_polynomial_subtract_empty (0) - L19
specialize prime_field_polynomial_subtract_empty (0) - L20
apply prime_field_polynomial_subtract_empty
05Fix variables and assumptionsL21–22
06Establish holdL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L23
have hold : ∃ rb. ∃ rc. FpCoefficientSubtraction(p,ab,ac,bb,bc,rb,rc,l)Definitions: FpCoefficientSubtraction(p,ab,ac,bb,bc,rb,rc,l)Original native command in the exact edition - L24
apply IH - L25
intro j - L26
intro hj - L27
specialize ha (j) - L28
apply ha - L29
specialize le_succ (S j) - L30
specialize le_succ (l) - L31
apply le_succ - L32
exact hj
07Fix variables and assumptionsL33–34
08Use earlier factsL35–40
09Separate the logical casesL41–42
10Establish hsource0L43–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply ha.
- L43
have hsource0 : ∃ a. BetaAt(ab,ac,l,a) ∧ Lt(a,p)Definitions: BetaAt(ab,ac,l,a)Lt(a,p)Original native command in the exact edition - L44
specialize ha (l) - L45
apply ha
11Construct an explicit witnessL46–46
Supply the displayed value, then prove that it has the required property.
- L46
exists 0
12Use earlier factsL47–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
apply zero_add
13Separate the logical casesL48–49
14Establish hsource1L50–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hb.
- L50
have hsource1 : ∃ a. BetaAt(bb,bc,l,a) ∧ Lt(a,p)Definitions: BetaAt(bb,bc,l,a)Lt(a,p)Original native command in the exact edition - L51
specialize hb (l) - L52
apply hb
15Construct an explicit witnessL53–53
Supply the displayed value, then prove that it has the required property.
- L53
exists 0
16Use earlier factsL54–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L54
apply zero_add
17Separate the logical casesL55–56
18Establish hvalueL57–64
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field subtract exists.
- L57
have hvalue : ∃ r. FpAdd(p,x3,r,x2)Definitions: FpAdd(p,x3,r,x2)Original native command in the exact edition - L58
specialize prime_field_subtract_exists (p) - L59
specialize prime_field_subtract_exists (x2) - L60
specialize prime_field_subtract_exists (x3) - L61
apply prime_field_subtract_exists - L62
exact hp - L63
exact hsource0_witness_right - L64
exact hsource1_witness_right
19Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
cases hvalue
20Establish hnewL66–71
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
- L66
have hnew : ∃ db. ∃ dc. BetaAt(db,dc,l,x4) ∧ (∀ y. ∀ z. Lt(y,l) → BetaAt(x,x1,y,z) → BetaAt(db,dc,y,z))Definitions: BetaAt(db,dc,l,x4)Lt(y,l)BetaAt(x,x1,y,z)BetaAt(db,dc,y,z)Original native command in the exact edition - L67
specialize beta_prefix_extend (l) - L68
specialize beta_prefix_extend (x) - L69
specialize beta_prefix_extend (x1) - L70
specialize beta_prefix_extend (x4) - L71
apply beta_prefix_extend
21Separate the logical casesL72–74
22Construct an explicit witnessL75–76
23Fix variables and assumptionsL77–78
24Establish hcaseL79–83
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
25Separate the logical casesL84–84
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L84
cases hcase
26Construct an explicit witnessL85–87
27Separate the logical casesL88–88
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L88
split
28Calculate and transport equalitiesL89–90
29Use earlier factsL91–91
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L91
exact hsource0_witness_left
30Separate the logical casesL92–92
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L92
split
31Calculate and transport equalitiesL93–94
32Use earlier factsL95–95
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L95
exact hsource1_witness_left
33Separate the logical casesL96–96
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L96
split
34Calculate and transport equalitiesL97–98
35Use earlier factsL99–100
36Establish hpreviousL101–104
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hold witness witness.
- L101
have hprevious : ∃ v0. ∃ v1. ∃ v2. BetaAt(ab,ac,j,v0) ∧ (BetaAt(bb,bc,j,v1) ∧ (BetaAt(x,x1,j,v2) ∧ FpAdd(p,v1,v2,v0)))Definitions: BetaAt(ab,ac,j,v0)BetaAt(bb,bc,j,v1)BetaAt(x,x1,j,v2)FpAdd(p,v1,v2,v0)Original native command in the exact edition - L102
specialize hold_witness_witness (j) - L103
apply hold_witness_witness - L104
exact hcase_right
37Separate the logical casesL105–110
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
38Construct an explicit witnessL111–113
39Separate the logical casesL114–114
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L114
split
40Use earlier factsL115–115
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L115
exact hprevious_witness_witness_witness_left
41Separate the logical casesL116–116
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L116
split
42Use earlier factsL117–117
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L117
exact hprevious_witness_witness_witness_right_left
43Separate the logical casesL118–118
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L118
split
44Use earlier factsL119–124
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 124 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro bb - 0005
intro bc - 0006
intro l - 0007
intro hp - 0008
induction l - 0009
intro ha - 0010
intro hb - 0011
exists 0 - 0012
exists 0 - 0013
specialize prime_field_polynomial_subtract_empty (p) - 0014
specialize prime_field_polynomial_subtract_empty (ab) - 0015
specialize prime_field_polynomial_subtract_empty (ac) - 0016
specialize prime_field_polynomial_subtract_empty (bb) - 0017
specialize prime_field_polynomial_subtract_empty (bc) - 0018
specialize prime_field_polynomial_subtract_empty (0) - 0019
specialize prime_field_polynomial_subtract_empty (0) - 0020
apply prime_field_polynomial_subtract_empty - 0021
intro ha - 0022
intro hb - 0023
have hold : ∃ rb. ∃ rc. FpCoefficientSubtraction(p,ab,ac,bb,bc,rb,rc,l) - 0024
apply IH - 0025
intro j - 0026
intro hj - 0027
specialize ha (j) - 0028
apply ha - 0029
specialize le_succ (S j) - 0030
specialize le_succ (l) - 0031
apply le_succ - 0032
exact hj - 0033
intro j - 0034
intro hj - 0035
specialize hb (j) - 0036
apply hb - 0037
specialize le_succ (S j) - 0038
specialize le_succ (l) - 0039
apply le_succ - 0040
exact hj - 0041
cases hold - 0042
cases hold_witness - 0043
have hsource0 : ∃ a. BetaAt(ab,ac,l,a) ∧ Lt(a,p) - 0044
specialize ha (l) - 0045
apply ha - 0046
exists 0 - 0047
apply zero_add - 0048
cases hsource0 - 0049
cases hsource0_witness - 0050
have hsource1 : ∃ a. BetaAt(bb,bc,l,a) ∧ Lt(a,p) - 0051
specialize hb (l) - 0052
apply hb - 0053
exists 0 - 0054
apply zero_add - 0055
cases hsource1 - 0056
cases hsource1_witness - 0057
have hvalue : ∃ r. FpAdd(p,x3,r,x2) - 0058
specialize prime_field_subtract_exists (p) - 0059
specialize prime_field_subtract_exists (x2) - 0060
specialize prime_field_subtract_exists (x3) - 0061
apply prime_field_subtract_exists - 0062
exact hp - 0063
exact hsource0_witness_right - 0064
exact hsource1_witness_right - 0065
cases hvalue - 0066
have hnew : ∃ db. ∃ dc. BetaAt(db,dc,l,x4) ∧ (∀ y. ∀ z. Lt(y,l) → BetaAt(x,x1,y,z) → BetaAt(db,dc,y,z)) - 0067
specialize beta_prefix_extend (l) - 0068
specialize beta_prefix_extend (x) - 0069
specialize beta_prefix_extend (x1) - 0070
specialize beta_prefix_extend (x4) - 0071
apply beta_prefix_extend - 0072
cases hnew - 0073
cases hnew_witness - 0074
cases hnew_witness_witness - 0075
exists x5 - 0076
exists x6 - 0077
intro j - 0078
intro hj - 0079
have hcase : j = l ∨ Lt(j,l) - 0080
specialize finite_lt_succ_eq_or_lt (l) - 0081
specialize finite_lt_succ_eq_or_lt (j) - 0082
apply finite_lt_succ_eq_or_lt - 0083
exact hj - 0084
cases hcase - 0085
exists x2 - 0086
exists x3 - 0087
exists x4 - 0088
split - 0089
rewrite hcase_left - 0090
rewrite hcase_left - 0091
exact hsource0_witness_left - 0092
split - 0093
rewrite hcase_left - 0094
rewrite hcase_left - 0095
exact hsource1_witness_left - 0096
split - 0097
rewrite hcase_left - 0098
rewrite hcase_left - 0099
exact hnew_witness_witness_left - 0100
exact hvalue_witness - 0101
have hprevious : ∃ v0. ∃ v1. ∃ v2. BetaAt(ab,ac,j,v0) ∧ (BetaAt(bb,bc,j,v1) ∧ (BetaAt(x,x1,j,v2) ∧ FpAdd(p,v1,v2,v0))) - 0102
specialize hold_witness_witness (j) - 0103
apply hold_witness_witness - 0104
exact hcase_right - 0105
cases hprevious - 0106
cases hprevious_witness - 0107
cases hprevious_witness_witness - 0108
cases hprevious_witness_witness_witness - 0109
cases hprevious_witness_witness_witness_right - 0110
cases hprevious_witness_witness_witness_right_right - 0111
exists x7 - 0112
exists x8 - 0113
exists x9 - 0114
split - 0115
exact hprevious_witness_witness_witness_left - 0116
split - 0117
exact hprevious_witness_witness_witness_right_left - 0118
split - 0119
specialize hnew_witness_witness_right (j) - 0120
specialize hnew_witness_witness_right (x9) - 0121
apply hnew_witness_witness_right - 0122
exact hcase_right - 0123
exact hprevious_witness_witness_witness_right_right_left - 0124
exact hprevious_witness_witness_witness_right_right_right