Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
The derivative-nonzero criterion supplies no inverse or power witness: both are constructed. Roots may be arbitrary natural representatives of signed integer polynomials. Singular-root classification and p-adic completion are separate milestones.
Exact theorem in conservative defined notation
∀ b. ∀ c. ∀ a. ∀ l. ∀ n. ∀ d. ∀ m. ∀ p. ∀ s. ¬p = 0 → ¬m = 0 → HornerDerivative(b,c,a,l,n,d) → m = p · s → ModEq(m,n,0) → Coprime(d,p) → ∃ x. Lt(x,m) ∧ (ModEq(m,x,a) ∧ SimpleHornerRoot(b,c,x,l,m,p))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 85 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–10
02Fix variables and assumptionsL11–15
03Establish hresidueL16–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hensel canonical residue exists.
- L16
have hresidue : ∃ r. Lt(r,m) ∧ ModEq(m,a,r)Definitions: Lt(r,m)ModEq(m,a,r)Original native command in the exact edition - L17
specialize hensel_canonical_residue_exists m - L18
specialize hensel_canonical_residue_exists a - L19
apply hensel_canonical_residue_exists - L20
exact hm
04Separate the logical casesL21–22
05Establish hnewpairL23–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative value exists.
- L23
have hnewpair : ∃ v. ∃ e. HornerDerivative(b,c,x,l,v,e)Definitions: HornerDerivative(b,c,x,l,v,e)Original native command in the exact edition - L24
specialize beta_horner_derivative_value_exists b - L25
specialize beta_horner_derivative_value_exists c - L26
specialize beta_horner_derivative_value_exists x - L27
specialize beta_horner_derivative_value_exists l - L28
apply beta_horner_derivative_value_exists
06Separate the logical casesL29–30
07Establish hbothL31–40
Establish this local claim before using it. It is not an additional assumption.
- L31
have hboth : ModEq(m,n,x1) ∧ ModEq(m,d,x2)Definitions: ModEq(m,n,x1)ModEq(m,d,x2)Original native command in the exact edition - L32
specialize beta_horner_derivative_mod_congruence b - L33
specialize beta_horner_derivative_mod_congruence c - L34
specialize beta_horner_derivative_mod_congruence m - L35
specialize beta_horner_derivative_mod_congruence a - L36
specialize beta_horner_derivative_mod_congruence x - L37
specialize beta_horner_derivative_mod_congruence l - L38
specialize beta_horner_derivative_mod_congruence n - L39
specialize beta_horner_derivative_mod_congruence d - L40
specialize beta_horner_derivative_mod_congruence x1
08Use earlier factsL41–45
09Separate the logical casesL46–46
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L46
cases hboth
10Construct an explicit witnessL47–47
Supply the displayed value, then prove that it has the required property.
- L47
exists x
11Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
12Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hresidue_witness_left
13Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
split
14Use earlier factsL51–55
15Construct an explicit witnessL56–57
16Separate the logical casesL58–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L58
split
17Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
exact hnewpair_witness_witness
18Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
split
19Use earlier factsL61–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
20Use earlier factsL71–80
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L71
exact hroot - L72
specialize hensel_coprime_mod_transport p - L73
specialize hensel_coprime_mod_transport d - L74
specialize hensel_coprime_mod_transport x2 - L75
apply hensel_coprime_mod_transport - L76
exact hp - L77
exact hcop - L78
specialize mod_eq_of_mod_eq_multiple p - L79
specialize mod_eq_of_mod_eq_multiple m - L80
specialize mod_eq_of_mod_eq_multiple d
21Use earlier factsL81–82
22Construct an explicit witnessL83–83
Supply the displayed value, then prove that it has the required property.
- L83
exists s
Original defined command ledger · 85 lines
- 0001
intro b - 0002
intro c - 0003
intro a - 0004
intro l - 0005
intro n - 0006
intro d - 0007
intro m - 0008
intro p - 0009
intro s - 0010
intro hp - 0011
intro hm - 0012
intro hpair - 0013
intro hfactor - 0014
intro hroot - 0015
intro hcop - 0016
have hresidue : ∃ r. Lt(r,m) ∧ ModEq(m,a,r) - 0017
specialize hensel_canonical_residue_exists m - 0018
specialize hensel_canonical_residue_exists a - 0019
apply hensel_canonical_residue_exists - 0020
exact hm - 0021
cases hresidue - 0022
cases hresidue_witness - 0023
have hnewpair : ∃ v. ∃ e. HornerDerivative(b,c,x,l,v,e) - 0024
specialize beta_horner_derivative_value_exists b - 0025
specialize beta_horner_derivative_value_exists c - 0026
specialize beta_horner_derivative_value_exists x - 0027
specialize beta_horner_derivative_value_exists l - 0028
apply beta_horner_derivative_value_exists - 0029
cases hnewpair - 0030
cases hnewpair_witness - 0031
have hboth : ModEq(m,n,x1) ∧ ModEq(m,d,x2) - 0032
specialize beta_horner_derivative_mod_congruence b - 0033
specialize beta_horner_derivative_mod_congruence c - 0034
specialize beta_horner_derivative_mod_congruence m - 0035
specialize beta_horner_derivative_mod_congruence a - 0036
specialize beta_horner_derivative_mod_congruence x - 0037
specialize beta_horner_derivative_mod_congruence l - 0038
specialize beta_horner_derivative_mod_congruence n - 0039
specialize beta_horner_derivative_mod_congruence d - 0040
specialize beta_horner_derivative_mod_congruence x1 - 0041
specialize beta_horner_derivative_mod_congruence x2 - 0042
apply beta_horner_derivative_mod_congruence - 0043
exact hresidue_witness_right - 0044
exact hpair - 0045
exact hnewpair_witness_witness - 0046
cases hboth - 0047
exists x - 0048
split - 0049
exact hresidue_witness_left - 0050
split - 0051
specialize mod_eq_symm m - 0052
specialize mod_eq_symm a - 0053
specialize mod_eq_symm x - 0054
apply mod_eq_symm - 0055
exact hresidue_witness_right - 0056
exists x1 - 0057
exists x2 - 0058
split - 0059
exact hnewpair_witness_witness - 0060
split - 0061
specialize mod_eq_trans m - 0062
specialize mod_eq_trans x1 - 0063
specialize mod_eq_trans n - 0064
specialize mod_eq_trans 0 - 0065
apply mod_eq_trans - 0066
specialize mod_eq_symm m - 0067
specialize mod_eq_symm n - 0068
specialize mod_eq_symm x1 - 0069
apply mod_eq_symm - 0070
exact hboth_left - 0071
exact hroot - 0072
specialize hensel_coprime_mod_transport p - 0073
specialize hensel_coprime_mod_transport d - 0074
specialize hensel_coprime_mod_transport x2 - 0075
apply hensel_coprime_mod_transport - 0076
exact hp - 0077
exact hcop - 0078
specialize mod_eq_of_mod_eq_multiple p - 0079
specialize mod_eq_of_mod_eq_multiple m - 0080
specialize mod_eq_of_mod_eq_multiple d - 0081
specialize mod_eq_of_mod_eq_multiple x2 - 0082
apply mod_eq_of_mod_eq_multiple - 0083
exists s - 0084
exact hfactor - 0085
exact hboth_right