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. ∀ b. ∀ c. ∀ B. ∀ C. ∀ t. ∀ l. ∀ r. BetaPrefixEqual(b,c,B,C,l) → FpHorner(p,b,c,t,l,r) → FpHorner(p,B,C,t,l,r)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 54 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–10
02Separate the logical casesL11–15
03Construct an explicit witnessL16–17
04Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
split
05Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
exact h_witness_witness_left
06Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
split
07Use earlier factsL21–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
exact h_witness_witness_right_left
08Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
split
09Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact h_witness_witness_right_right_left
10Fix variables and assumptionsL24–25
11Establish hsL26–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply h witness witness right right right.
- L26
have hs : FpHornerStep(p,b,c,t,x,x1,i)Definitions: FpHornerStep(p,b,c,t,x,x1,i)Original native command in the exact edition - L27
specialize h_witness_witness_right_right_right (i) - L28
apply h_witness_witness_right_right_right - L29
exact hi
12Separate the logical casesL30–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hs - L31
cases hs_witness - L32
cases hs_witness_witness - L33
cases hs_witness_witness_witness - L34
cases hs_witness_witness_witness_witness - L35
cases hs_witness_witness_witness_witness_right - L36
cases hs_witness_witness_witness_witness_right_right - L37
cases hs_witness_witness_witness_witness_right_right_right
13Construct an explicit witnessL38–41
14Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
split
15Use earlier factsL43–47
16Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
17Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hs_witness_witness_witness_witness_right_left
18Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
split
19Use earlier factsL51–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
exact hs_witness_witness_witness_witness_right_right_left
20Separate the logical casesL52–52
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L52
split
Original defined command ledger · 54 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro B - 0005
intro C - 0006
intro t - 0007
intro l - 0008
intro r - 0009
intro heq - 0010
intro h - 0011
cases h - 0012
cases h_witness - 0013
cases h_witness_witness - 0014
cases h_witness_witness_right - 0015
cases h_witness_witness_right_right - 0016
exists x - 0017
exists x1 - 0018
split - 0019
exact h_witness_witness_left - 0020
split - 0021
exact h_witness_witness_right_left - 0022
split - 0023
exact h_witness_witness_right_right_left - 0024
intro i - 0025
intro hi - 0026
have hs : FpHornerStep(p,b,c,t,x,x1,i) - 0027
specialize h_witness_witness_right_right_right (i) - 0028
apply h_witness_witness_right_right_right - 0029
exact hi - 0030
cases hs - 0031
cases hs_witness - 0032
cases hs_witness_witness - 0033
cases hs_witness_witness_witness - 0034
cases hs_witness_witness_witness_witness - 0035
cases hs_witness_witness_witness_witness_right - 0036
cases hs_witness_witness_witness_witness_right_right - 0037
cases hs_witness_witness_witness_witness_right_right_right - 0038
exists x2 - 0039
exists x3 - 0040
exists x4 - 0041
exists x5 - 0042
split - 0043
specialize heq (i) - 0044
specialize heq (x2) - 0045
apply heq - 0046
exact hi - 0047
exact hs_witness_witness_witness_witness_left - 0048
split - 0049
exact hs_witness_witness_witness_witness_right_left - 0050
split - 0051
exact hs_witness_witness_witness_witness_right_right_left - 0052
split - 0053
exact hs_witness_witness_witness_witness_right_right_right_left - 0054
exact hs_witness_witness_witness_witness_right_right_right_right