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) → Repeat(b,c,0,l) → FpHorner(p,b,c,t,l,0)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 57 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–5
02Induction on lL6–15
Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.
- L6
induction l - L7
intro hp - L8
intro ht - L9
intro hz - L10
specialize prime_field_polynomial_horner_empty_construct (p) - L11
specialize prime_field_polynomial_horner_empty_construct (b) - L12
specialize prime_field_polynomial_horner_empty_construct (c) - L13
specialize prime_field_polynomial_horner_empty_construct (t) - L14
apply prime_field_polynomial_horner_empty_construct - L15
exact hp
03Use earlier factsL16–16
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
exact ht
04Fix variables and assumptionsL17–19
05Use earlier factsL20–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L20
specialize prime_field_polynomial_horner_successor_construct (p) - L21
specialize prime_field_polynomial_horner_successor_construct (b) - L22
specialize prime_field_polynomial_horner_successor_construct (c) - L23
specialize prime_field_polynomial_horner_successor_construct (t) - L24
specialize prime_field_polynomial_horner_successor_construct (l) - L25
specialize prime_field_polynomial_horner_successor_construct (0) - L26
specialize prime_field_polynomial_horner_successor_construct (0) - L27
specialize prime_field_polynomial_horner_successor_construct (0) - L28
specialize prime_field_polynomial_horner_successor_construct (0) - L29
apply prime_field_polynomial_horner_successor_construct
06Use earlier factsL30–32
07Construct an explicit witnessL33–33
Supply the displayed value, then prove that it has the required property.
- L33
exists 0
08Use earlier factsL34–37
09Fix variables and assumptionsL38–39
10Use earlier factsL40–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
11Use earlier factsL50–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 57 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro t - 0005
intro l - 0006
induction l - 0007
intro hp - 0008
intro ht - 0009
intro hz - 0010
specialize prime_field_polynomial_horner_empty_construct (p) - 0011
specialize prime_field_polynomial_horner_empty_construct (b) - 0012
specialize prime_field_polynomial_horner_empty_construct (c) - 0013
specialize prime_field_polynomial_horner_empty_construct (t) - 0014
apply prime_field_polynomial_horner_empty_construct - 0015
exact hp - 0016
exact ht - 0017
intro hp - 0018
intro ht - 0019
intro hz - 0020
specialize prime_field_polynomial_horner_successor_construct (p) - 0021
specialize prime_field_polynomial_horner_successor_construct (b) - 0022
specialize prime_field_polynomial_horner_successor_construct (c) - 0023
specialize prime_field_polynomial_horner_successor_construct (t) - 0024
specialize prime_field_polynomial_horner_successor_construct (l) - 0025
specialize prime_field_polynomial_horner_successor_construct (0) - 0026
specialize prime_field_polynomial_horner_successor_construct (0) - 0027
specialize prime_field_polynomial_horner_successor_construct (0) - 0028
specialize prime_field_polynomial_horner_successor_construct (0) - 0029
apply prime_field_polynomial_horner_successor_construct - 0030
exact hp - 0031
specialize hz (l) - 0032
apply hz - 0033
exists 0 - 0034
apply zero_add - 0035
apply IH - 0036
exact hp - 0037
exact ht - 0038
intro i - 0039
intro hi - 0040
specialize hz (i) - 0041
apply hz - 0042
specialize le_succ (S i) - 0043
specialize le_succ (l) - 0044
apply le_succ - 0045
exact hi - 0046
specialize prime_field_multiply_zero_left (p) - 0047
specialize prime_field_multiply_zero_left (t) - 0048
apply prime_field_multiply_zero_left - 0049
exact hp - 0050
exact ht - 0051
specialize prime_field_add_zero_left (p) - 0052
specialize prime_field_add_zero_left (0) - 0053
apply prime_field_add_zero_left - 0054
exact hp - 0055
specialize prime_field_zero_below_prime (p) - 0056
apply prime_field_zero_below_prime - 0057
exact hp