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
∀ pb. ∀ pc. ∀ nb. ∀ nc. ∀ a. ∀ l. ∀ vp. ∀ dp. ∀ vn. ∀ dn. ∀ p. ∀ k. ∀ j. ∀ m. ¬p = 0 → ¬k = 0 → Pow(p,k,m) → SignedHornerValueDerivative(pb,pc,nb,nc,a,l,vp,dp,vn,dn) → ModEq(m,vp,vn) → SignedDerivativeUnit(p,dp,dn) → ∃ x. Pow(p,k + j,x) ∧ (∃ y. CanonicalSignedHornerLift(pb,pc,nb,nc,l,m,a,x,y) ∧ (∀ z. CanonicalSignedHornerLift(pb,pc,nb,nc,l,m,a,x,z) → z = y))
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–20
03Establish hfactorL21–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hensel positive power factor.
04Separate the logical casesL29–30
05Establish hmultiplierL31–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow exists.
- L31
have hmultiplier : ∃ q. Pow(p,j,q)Definitions: Pow(p,j,q)Original native command in the exact edition - L32
specialize pow_exists p - L33
specialize pow_exists j - L34
apply pow_exists
06Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
cases hmultiplier
07Establish htargetL36–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow exists.
- L36
have htarget : ∃ M. Pow(p,k + j,M)Definitions: Pow(p,k + j,M)Original native command in the exact edition - L37
specialize pow_exists p - L38
specialize pow_exists (k + j) - L39
apply pow_exists
08Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
cases htarget
09Establish hML41–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow add.
10Use earlier factsL51–53
11Construct an explicit witnessL54–54
Supply the displayed value, then prove that it has the required property.
- L54
exists x2
12Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
split
13Use earlier factsL56–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
exact htarget_witness
14Calculate and transport equalitiesL57–62
15Use earlier factsL63–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L63
specialize beta_signed_horner_hensel_iterated_exists_unique pb - L64
specialize beta_signed_horner_hensel_iterated_exists_unique pc - L65
specialize beta_signed_horner_hensel_iterated_exists_unique nb - L66
specialize beta_signed_horner_hensel_iterated_exists_unique nc - L67
specialize beta_signed_horner_hensel_iterated_exists_unique a - L68
specialize beta_signed_horner_hensel_iterated_exists_unique l - L69
specialize beta_signed_horner_hensel_iterated_exists_unique vp - L70
specialize beta_signed_horner_hensel_iterated_exists_unique dp - L71
specialize beta_signed_horner_hensel_iterated_exists_unique vn - L72
specialize beta_signed_horner_hensel_iterated_exists_unique dn
16Use earlier factsL73–82
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L73
specialize beta_signed_horner_hensel_iterated_exists_unique m - L74
specialize beta_signed_horner_hensel_iterated_exists_unique p - L75
specialize beta_signed_horner_hensel_iterated_exists_unique x - L76
specialize beta_signed_horner_hensel_iterated_exists_unique j - L77
specialize beta_signed_horner_hensel_iterated_exists_unique x1 - L78
apply beta_signed_horner_hensel_iterated_exists_unique - L79
exact hp - L80
exact hfactor_left - L81
exact hfactor_right_witness - L82
exact hpair
Original defined command ledger · 85 lines
- 0001
intro pb - 0002
intro pc - 0003
intro nb - 0004
intro nc - 0005
intro a - 0006
intro l - 0007
intro vp - 0008
intro dp - 0009
intro vn - 0010
intro dn - 0011
intro p - 0012
intro k - 0013
intro j - 0014
intro m - 0015
intro hp - 0016
intro hk - 0017
intro hpower - 0018
intro hpair - 0019
intro hroot - 0020
intro hunit - 0021
have hfactor : ¬m = 0 ∧ Dvd(p,m) - 0022
specialize hensel_positive_power_factor p - 0023
specialize hensel_positive_power_factor k - 0024
specialize hensel_positive_power_factor m - 0025
apply hensel_positive_power_factor - 0026
exact hp - 0027
exact hk - 0028
exact hpower - 0029
cases hfactor - 0030
cases hfactor_right - 0031
have hmultiplier : ∃ q. Pow(p,j,q) - 0032
specialize pow_exists p - 0033
specialize pow_exists j - 0034
apply pow_exists - 0035
cases hmultiplier - 0036
have htarget : ∃ M. Pow(p,k + j,M) - 0037
specialize pow_exists p - 0038
specialize pow_exists (k + j) - 0039
apply pow_exists - 0040
cases htarget - 0041
have hM : x2 = m * x1 - 0042
specialize pow_add p - 0043
specialize pow_add k - 0044
specialize pow_add j - 0045
specialize pow_add (k + j) - 0046
specialize pow_add m - 0047
specialize pow_add x1 - 0048
specialize pow_add x2 - 0049
apply pow_add - 0050
refl - 0051
exact hpower - 0052
exact hmultiplier_witness - 0053
exact htarget_witness - 0054
exists x2 - 0055
split - 0056
exact htarget_witness - 0057
rewrite hM - 0058
rewrite hM - 0059
rewrite hM - 0060
rewrite hM - 0061
rewrite hM - 0062
rewrite hM - 0063
specialize beta_signed_horner_hensel_iterated_exists_unique pb - 0064
specialize beta_signed_horner_hensel_iterated_exists_unique pc - 0065
specialize beta_signed_horner_hensel_iterated_exists_unique nb - 0066
specialize beta_signed_horner_hensel_iterated_exists_unique nc - 0067
specialize beta_signed_horner_hensel_iterated_exists_unique a - 0068
specialize beta_signed_horner_hensel_iterated_exists_unique l - 0069
specialize beta_signed_horner_hensel_iterated_exists_unique vp - 0070
specialize beta_signed_horner_hensel_iterated_exists_unique dp - 0071
specialize beta_signed_horner_hensel_iterated_exists_unique vn - 0072
specialize beta_signed_horner_hensel_iterated_exists_unique dn - 0073
specialize beta_signed_horner_hensel_iterated_exists_unique m - 0074
specialize beta_signed_horner_hensel_iterated_exists_unique p - 0075
specialize beta_signed_horner_hensel_iterated_exists_unique x - 0076
specialize beta_signed_horner_hensel_iterated_exists_unique j - 0077
specialize beta_signed_horner_hensel_iterated_exists_unique x1 - 0078
apply beta_signed_horner_hensel_iterated_exists_unique - 0079
exact hp - 0080
exact hfactor_left - 0081
exact hfactor_right_witness - 0082
exact hpair - 0083
exact hroot - 0084
exact hunit - 0085
exact hmultiplier_witness