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. ∀ gb. ∀ gc. ∀ h. ∀ a. ∀ l. ∀ vp. ∀ dp. ∀ vn. ∀ dn. ∀ vg. ∀ dg. HornerCoefficientBlend(pb,pc,nb,nc,gb,gc,h,l) → HornerDerivative(pb,pc,a,l,vp,dp) → HornerDerivative(nb,nc,a,l,vn,dn) → HornerDerivative(gb,gc,a,l,vg,dg) → vg = vp + h · vn ∧ dg = dp + h · dn
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 180 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 (1)
01Fix variables and assumptionsL1–8
02Induction on lL9–18
03Fix variables and assumptionsL19–19
Work with arbitrary variables or the premises of the current implication.
- L19
intro hcombined
04Establish hPL20–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative empty.
- L20
have hP : vp = 0 /\ dp = 0 - L21
specialize beta_horner_derivative_empty pb - L22
specialize beta_horner_derivative_empty pc - L23
specialize beta_horner_derivative_empty a - L24
specialize beta_horner_derivative_empty vp - L25
specialize beta_horner_derivative_empty dp - L26
apply beta_horner_derivative_empty - L27
exact hpositive
05Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
cases hP
06Establish hNL29–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative empty.
- L29
have hN : vn = 0 /\ dn = 0 - L30
specialize beta_horner_derivative_empty nb - L31
specialize beta_horner_derivative_empty nc - L32
specialize beta_horner_derivative_empty a - L33
specialize beta_horner_derivative_empty vn - L34
specialize beta_horner_derivative_empty dn - L35
apply beta_horner_derivative_empty - L36
exact hnegative
07Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases hN
08Establish hGL38–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative empty.
- L38
have hG : vg = 0 /\ dg = 0 - L39
specialize beta_horner_derivative_empty gb - L40
specialize beta_horner_derivative_empty gc - L41
specialize beta_horner_derivative_empty a - L42
specialize beta_horner_derivative_empty vg - L43
specialize beta_horner_derivative_empty dg - L44
apply beta_horner_derivative_empty - L45
exact hcombined
09Separate the logical casesL46–47
10Calculate and transport equalitiesL48–55
11Fix variables and assumptionsL56–65
12Establish hPL66–74
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative successor decompose.
- L66
have hP : ∃ sph_coefficient_positive. ∃ sph_value_positive. ∃ sph_derivative_positive. Beta(pb,pc,l,sph_coefficient_positive) ∧ (HornerDerivative(pb,pc,a,l,sph_value_positive,sph_derivative_positive) ∧ (vp = sph_value_positive · a + sph_coefficient_positive ∧ dp = sph_derivative_positive · a + sph_value_positive))Definitions: Beta(pb,pc,l,sph_coefficient_positive)HornerDerivative(pb,pc,a,l,sph_value_positive,sph_derivative_positive)Original native command in the exact edition - L67
specialize beta_horner_derivative_successor_decompose pb - L68
specialize beta_horner_derivative_successor_decompose pc - L69
specialize beta_horner_derivative_successor_decompose a - L70
specialize beta_horner_derivative_successor_decompose l - L71
specialize beta_horner_derivative_successor_decompose vp - L72
specialize beta_horner_derivative_successor_decompose dp - L73
apply beta_horner_derivative_successor_decompose - L74
exact hpositive
13Separate the logical casesL75–80
14Establish hNL81–89
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative successor decompose.
- L81
have hN : ∃ sph_coefficient_negative. ∃ sph_value_negative. ∃ sph_derivative_negative. Beta(nb,nc,l,sph_coefficient_negative) ∧ (HornerDerivative(nb,nc,a,l,sph_value_negative,sph_derivative_negative) ∧ (vn = sph_value_negative · a + sph_coefficient_negative ∧ dn = sph_derivative_negative · a + sph_value_negative))Definitions: Beta(nb,nc,l,sph_coefficient_negative)HornerDerivative(nb,nc,a,l,sph_value_negative,sph_derivative_negative)Original native command in the exact edition - L82
specialize beta_horner_derivative_successor_decompose nb - L83
specialize beta_horner_derivative_successor_decompose nc - L84
specialize beta_horner_derivative_successor_decompose a - L85
specialize beta_horner_derivative_successor_decompose l - L86
specialize beta_horner_derivative_successor_decompose vn - L87
specialize beta_horner_derivative_successor_decompose dn - L88
apply beta_horner_derivative_successor_decompose - L89
exact hnegative
15Separate the logical casesL90–95
16Establish hGL96–104
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative successor decompose.
- L96
have hG : ∃ sph_coefficient_combined. ∃ sph_value_combined. ∃ sph_derivative_combined. Beta(gb,gc,l,sph_coefficient_combined) ∧ (HornerDerivative(gb,gc,a,l,sph_value_combined,sph_derivative_combined) ∧ (vg = sph_value_combined · a + sph_coefficient_combined ∧ dg = sph_derivative_combined · a + sph_value_combined))Definitions: Beta(gb,gc,l,sph_coefficient_combined)HornerDerivative(gb,gc,a,l,sph_value_combined,sph_derivative_combined)Original native command in the exact edition - L97
specialize beta_horner_derivative_successor_decompose gb - L98
specialize beta_horner_derivative_successor_decompose gc - L99
specialize beta_horner_derivative_successor_decompose a - L100
specialize beta_horner_derivative_successor_decompose l - L101
specialize beta_horner_derivative_successor_decompose vg - L102
specialize beta_horner_derivative_successor_decompose dg - L103
apply beta_horner_derivative_successor_decompose - L104
exact hcombined
17Separate the logical casesL105–110
18Establish hprefix_blendL111–120
Establish this local claim before using it. It is not an additional assumption.
19Use earlier factsL121–130
20Use earlier factsL131–131
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L131
exact hC
21Establish hprefixL132–141
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
22Use earlier factsL142–143
23Separate the logical casesL144–144
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L144
cases hprefix
24Establish hlastL145–154
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hblend.
25Use earlier factsL155–155
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L155
exact hG_witness_witness_witness_left
26Separate the logical casesL156–156
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L156
split
27Calculate and transport equalitiesL157–161
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
28Use earlier factsL162–168
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L162
specialize hensel_horner_linear_successor_identity h - L163
specialize hensel_horner_linear_successor_identity a - L164
specialize hensel_horner_linear_successor_identity x1 - L165
specialize hensel_horner_linear_successor_identity x4 - L166
specialize hensel_horner_linear_successor_identity x - L167
specialize hensel_horner_linear_successor_identity x3 - L168
apply hensel_horner_linear_successor_identity
29Calculate and transport equalitiesL169–173
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
30Use earlier factsL174–180
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L174
specialize hensel_horner_linear_successor_identity h - L175
specialize hensel_horner_linear_successor_identity a - L176
specialize hensel_horner_linear_successor_identity x2 - L177
specialize hensel_horner_linear_successor_identity x5 - L178
specialize hensel_horner_linear_successor_identity x1 - L179
specialize hensel_horner_linear_successor_identity x4 - L180
apply hensel_horner_linear_successor_identity
Original defined command ledger · 180 lines
- 0001
intro pb - 0002
intro pc - 0003
intro nb - 0004
intro nc - 0005
intro gb - 0006
intro gc - 0007
intro h - 0008
intro a - 0009
induction l - 0010
intro vp - 0011
intro dp - 0012
intro vn - 0013
intro dn - 0014
intro vg - 0015
intro dg - 0016
intro hblend - 0017
intro hpositive - 0018
intro hnegative - 0019
intro hcombined - 0020
have hP : vp = 0 /\ dp = 0 - 0021
specialize beta_horner_derivative_empty pb - 0022
specialize beta_horner_derivative_empty pc - 0023
specialize beta_horner_derivative_empty a - 0024
specialize beta_horner_derivative_empty vp - 0025
specialize beta_horner_derivative_empty dp - 0026
apply beta_horner_derivative_empty - 0027
exact hpositive - 0028
cases hP - 0029
have hN : vn = 0 /\ dn = 0 - 0030
specialize beta_horner_derivative_empty nb - 0031
specialize beta_horner_derivative_empty nc - 0032
specialize beta_horner_derivative_empty a - 0033
specialize beta_horner_derivative_empty vn - 0034
specialize beta_horner_derivative_empty dn - 0035
apply beta_horner_derivative_empty - 0036
exact hnegative - 0037
cases hN - 0038
have hG : vg = 0 /\ dg = 0 - 0039
specialize beta_horner_derivative_empty gb - 0040
specialize beta_horner_derivative_empty gc - 0041
specialize beta_horner_derivative_empty a - 0042
specialize beta_horner_derivative_empty vg - 0043
specialize beta_horner_derivative_empty dg - 0044
apply beta_horner_derivative_empty - 0045
exact hcombined - 0046
cases hG - 0047
split - 0048
rewrite hG_left - 0049
rewrite hP_left - 0050
rewrite hN_left - 0051
simp - 0052
rewrite hG_right - 0053
rewrite hP_right - 0054
rewrite hN_right - 0055
simp - 0056
intro vp - 0057
intro dp - 0058
intro vn - 0059
intro dn - 0060
intro vg - 0061
intro dg - 0062
intro hblend - 0063
intro hpositive - 0064
intro hnegative - 0065
intro hcombined - 0066
have hP : ∃ sph_coefficient_positive. ∃ sph_value_positive. ∃ sph_derivative_positive. Beta(pb,pc,l,sph_coefficient_positive) ∧ (HornerDerivative(pb,pc,a,l,sph_value_positive,sph_derivative_positive) ∧ (vp = sph_value_positive · a + sph_coefficient_positive ∧ dp = sph_derivative_positive · a + sph_value_positive)) - 0067
specialize beta_horner_derivative_successor_decompose pb - 0068
specialize beta_horner_derivative_successor_decompose pc - 0069
specialize beta_horner_derivative_successor_decompose a - 0070
specialize beta_horner_derivative_successor_decompose l - 0071
specialize beta_horner_derivative_successor_decompose vp - 0072
specialize beta_horner_derivative_successor_decompose dp - 0073
apply beta_horner_derivative_successor_decompose - 0074
exact hpositive - 0075
cases hP - 0076
cases hP_witness - 0077
cases hP_witness_witness - 0078
cases hP_witness_witness_witness - 0079
cases hP_witness_witness_witness_right - 0080
cases hP_witness_witness_witness_right_right - 0081
have hN : ∃ sph_coefficient_negative. ∃ sph_value_negative. ∃ sph_derivative_negative. Beta(nb,nc,l,sph_coefficient_negative) ∧ (HornerDerivative(nb,nc,a,l,sph_value_negative,sph_derivative_negative) ∧ (vn = sph_value_negative · a + sph_coefficient_negative ∧ dn = sph_derivative_negative · a + sph_value_negative)) - 0082
specialize beta_horner_derivative_successor_decompose nb - 0083
specialize beta_horner_derivative_successor_decompose nc - 0084
specialize beta_horner_derivative_successor_decompose a - 0085
specialize beta_horner_derivative_successor_decompose l - 0086
specialize beta_horner_derivative_successor_decompose vn - 0087
specialize beta_horner_derivative_successor_decompose dn - 0088
apply beta_horner_derivative_successor_decompose - 0089
exact hnegative - 0090
cases hN - 0091
cases hN_witness - 0092
cases hN_witness_witness - 0093
cases hN_witness_witness_witness - 0094
cases hN_witness_witness_witness_right - 0095
cases hN_witness_witness_witness_right_right - 0096
have hG : ∃ sph_coefficient_combined. ∃ sph_value_combined. ∃ sph_derivative_combined. Beta(gb,gc,l,sph_coefficient_combined) ∧ (HornerDerivative(gb,gc,a,l,sph_value_combined,sph_derivative_combined) ∧ (vg = sph_value_combined · a + sph_coefficient_combined ∧ dg = sph_derivative_combined · a + sph_value_combined)) - 0097
specialize beta_horner_derivative_successor_decompose gb - 0098
specialize beta_horner_derivative_successor_decompose gc - 0099
specialize beta_horner_derivative_successor_decompose a - 0100
specialize beta_horner_derivative_successor_decompose l - 0101
specialize beta_horner_derivative_successor_decompose vg - 0102
specialize beta_horner_derivative_successor_decompose dg - 0103
apply beta_horner_derivative_successor_decompose - 0104
exact hcombined - 0105
cases hG - 0106
cases hG_witness - 0107
cases hG_witness_witness - 0108
cases hG_witness_witness_witness - 0109
cases hG_witness_witness_witness_right - 0110
cases hG_witness_witness_witness_right_right - 0111
have hprefix_blend : HornerCoefficientBlend(pb,pc,nb,nc,gb,gc,h,l) - 0112
intro i - 0113
intro A - 0114
intro B - 0115
intro C - 0116
intro hi - 0117
intro hA - 0118
intro hB - 0119
intro hC - 0120
specialize hblend i - 0121
specialize hblend A - 0122
specialize hblend B - 0123
specialize hblend C - 0124
apply hblend - 0125
specialize le_succ (S i) - 0126
specialize le_succ l - 0127
apply le_succ - 0128
exact hi - 0129
exact hA - 0130
exact hB - 0131
exact hC - 0132
have hprefix : x7 = x1 + h * x4 /\ x8 = x2 + h * x5 - 0133
specialize IH x1 - 0134
specialize IH x2 - 0135
specialize IH x4 - 0136
specialize IH x5 - 0137
specialize IH x7 - 0138
specialize IH x8 - 0139
apply IH - 0140
exact hprefix_blend - 0141
exact hP_witness_witness_witness_right_left - 0142
exact hN_witness_witness_witness_right_left - 0143
exact hG_witness_witness_witness_right_left - 0144
cases hprefix - 0145
have hlast : x6 = x + h * x3 - 0146
specialize hblend l - 0147
specialize hblend x - 0148
specialize hblend x3 - 0149
specialize hblend x6 - 0150
apply hblend - 0151
specialize le_refl (S l) - 0152
apply le_refl - 0153
exact hP_witness_witness_witness_left - 0154
exact hN_witness_witness_witness_left - 0155
exact hG_witness_witness_witness_left - 0156
split - 0157
rewrite hG_witness_witness_witness_right_right_left - 0158
rewrite hP_witness_witness_witness_right_right_left - 0159
rewrite hN_witness_witness_witness_right_right_left - 0160
rewrite hprefix_left - 0161
rewrite hlast - 0162
specialize hensel_horner_linear_successor_identity h - 0163
specialize hensel_horner_linear_successor_identity a - 0164
specialize hensel_horner_linear_successor_identity x1 - 0165
specialize hensel_horner_linear_successor_identity x4 - 0166
specialize hensel_horner_linear_successor_identity x - 0167
specialize hensel_horner_linear_successor_identity x3 - 0168
apply hensel_horner_linear_successor_identity - 0169
rewrite hG_witness_witness_witness_right_right_right - 0170
rewrite hP_witness_witness_witness_right_right_right - 0171
rewrite hN_witness_witness_witness_right_right_right - 0172
rewrite hprefix_right - 0173
rewrite hprefix_left - 0174
specialize hensel_horner_linear_successor_identity h - 0175
specialize hensel_horner_linear_successor_identity a - 0176
specialize hensel_horner_linear_successor_identity x2 - 0177
specialize hensel_horner_linear_successor_identity x5 - 0178
specialize hensel_horner_linear_successor_identity x1 - 0179
specialize hensel_horner_linear_successor_identity x4 - 0180
apply hensel_horner_linear_successor_identity