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. ∀ t. ∀ l. Prime(p) → Lt(t,p) → ∃ x. ∃ y. ∃ z. FpCoefficientReduction(p,b,c,x,y,l) ∧ (FpHorner(p,x,y,t,l,z) ∧ (∀ n. Horner(b,c,t,l,n) → CanonicalModularResidue(p,n,z)))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 61 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 (4)
01Fix variables and assumptionsL1–7
02Establish hredL8–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial normalization exists.
- L8
have hred : ∃ d. ∃ e. FpCoefficientReduction(p,b,c,d,e,l)Definitions: FpCoefficientReduction(p,b,c,d,e,l)Original native command in the exact edition - L9
specialize prime_field_polynomial_normalization_exists (p) - L10
specialize prime_field_polynomial_normalization_exists (b) - L11
specialize prime_field_polynomial_normalization_exists (c) - L12
specialize prime_field_polynomial_normalization_exists (l) - L13
apply prime_field_polynomial_normalization_exists - L14
intro hz - L15
specialize prime_nonzero (p) - L16
apply prime_nonzero - L17
exact hp
03Use earlier factsL18–18
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L18
exact hz
04Separate the logical casesL19–20
05Establish heL21–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial horner exists.
- L21
have he : ∃ r. FpHorner(p,x,x1,t,l,r)Definitions: FpHorner(p,x,x1,t,l,r)Original native command in the exact edition - L22
specialize prime_field_polynomial_horner_exists (p) - L23
specialize prime_field_polynomial_horner_exists (x) - L24
specialize prime_field_polynomial_horner_exists (x1) - L25
specialize prime_field_polynomial_horner_exists (t) - L26
specialize prime_field_polynomial_horner_exists (l) - L27
apply prime_field_polynomial_horner_exists - L28
exact hp - L29
specialize prime_field_polynomial_normalization_bounded (p) - L30
specialize prime_field_polynomial_normalization_bounded (b)
06Use earlier factsL31–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
specialize prime_field_polynomial_normalization_bounded (c) - L32
specialize prime_field_polynomial_normalization_bounded (x) - L33
specialize prime_field_polynomial_normalization_bounded (x1) - L34
specialize prime_field_polynomial_normalization_bounded (l) - L35
apply prime_field_polynomial_normalization_bounded - L36
exact hred_witness_witness - L37
exact ht
07Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases he
08Construct an explicit witnessL39–41
09Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
split
10Use earlier factsL43–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
exact hred_witness_witness
11Separate the logical casesL44–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
split
12Use earlier factsL45–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
exact he_witness
13Fix variables and assumptionsL46–47
14Use earlier factsL48–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L48
specialize prime_field_polynomial_horner_normalization_residue (p) - L49
specialize prime_field_polynomial_horner_normalization_residue (b) - L50
specialize prime_field_polynomial_horner_normalization_residue (c) - L51
specialize prime_field_polynomial_horner_normalization_residue (x) - L52
specialize prime_field_polynomial_horner_normalization_residue (x1) - L53
specialize prime_field_polynomial_horner_normalization_residue (t) - L54
specialize prime_field_polynomial_horner_normalization_residue (l) - L55
specialize prime_field_polynomial_horner_normalization_residue (n) - L56
specialize prime_field_polynomial_horner_normalization_residue (x2) - L57
apply prime_field_polynomial_horner_normalization_residue
Original defined command ledger · 61 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro t - 0005
intro l - 0006
intro hp - 0007
intro ht - 0008
have hred : ∃ d. ∃ e. FpCoefficientReduction(p,b,c,d,e,l) - 0009
specialize prime_field_polynomial_normalization_exists (p) - 0010
specialize prime_field_polynomial_normalization_exists (b) - 0011
specialize prime_field_polynomial_normalization_exists (c) - 0012
specialize prime_field_polynomial_normalization_exists (l) - 0013
apply prime_field_polynomial_normalization_exists - 0014
intro hz - 0015
specialize prime_nonzero (p) - 0016
apply prime_nonzero - 0017
exact hp - 0018
exact hz - 0019
cases hred - 0020
cases hred_witness - 0021
have he : ∃ r. FpHorner(p,x,x1,t,l,r) - 0022
specialize prime_field_polynomial_horner_exists (p) - 0023
specialize prime_field_polynomial_horner_exists (x) - 0024
specialize prime_field_polynomial_horner_exists (x1) - 0025
specialize prime_field_polynomial_horner_exists (t) - 0026
specialize prime_field_polynomial_horner_exists (l) - 0027
apply prime_field_polynomial_horner_exists - 0028
exact hp - 0029
specialize prime_field_polynomial_normalization_bounded (p) - 0030
specialize prime_field_polynomial_normalization_bounded (b) - 0031
specialize prime_field_polynomial_normalization_bounded (c) - 0032
specialize prime_field_polynomial_normalization_bounded (x) - 0033
specialize prime_field_polynomial_normalization_bounded (x1) - 0034
specialize prime_field_polynomial_normalization_bounded (l) - 0035
apply prime_field_polynomial_normalization_bounded - 0036
exact hred_witness_witness - 0037
exact ht - 0038
cases he - 0039
exists x - 0040
exists x1 - 0041
exists x2 - 0042
split - 0043
exact hred_witness_witness - 0044
split - 0045
exact he_witness - 0046
intro n - 0047
intro hn - 0048
specialize prime_field_polynomial_horner_normalization_residue (p) - 0049
specialize prime_field_polynomial_horner_normalization_residue (b) - 0050
specialize prime_field_polynomial_horner_normalization_residue (c) - 0051
specialize prime_field_polynomial_horner_normalization_residue (x) - 0052
specialize prime_field_polynomial_horner_normalization_residue (x1) - 0053
specialize prime_field_polynomial_horner_normalization_residue (t) - 0054
specialize prime_field_polynomial_horner_normalization_residue (l) - 0055
specialize prime_field_polynomial_horner_normalization_residue (n) - 0056
specialize prime_field_polynomial_horner_normalization_residue (x2) - 0057
apply prime_field_polynomial_horner_normalization_residue - 0058
exact hp - 0059
exact hred_witness_witness - 0060
exact hn - 0061
exact he_witness