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. ∀ M. ∀ m. M = S h → Dvd(m,M) → HornerCoefficientBlend(pb,pc,nb,nc,gb,gc,h,l) → (HornerRootModulo(gb,gc,a,l,m) → SignedHornerRoot(pb,pc,nb,nc,a,l,m)) ∧ (SignedHornerRoot(pb,pc,nb,nc,a,l,m) → HornerRootModulo(gb,gc,a,l,m))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 169 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–14
03Establish hPL15–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative value exists.
- L15
have hP : ∃ vp. ∃ dp. HornerDerivative(pb,pc,a,l,vp,dp)Definitions: HornerDerivative(pb,pc,a,l,vp,dp)Original native command in the exact edition - L16
specialize beta_horner_derivative_value_exists pb - L17
specialize beta_horner_derivative_value_exists pc - L18
specialize beta_horner_derivative_value_exists a - L19
specialize beta_horner_derivative_value_exists l - L20
apply beta_horner_derivative_value_exists
04Separate the logical casesL21–22
05Establish hNL23–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 hN : ∃ vn. ∃ dn. HornerDerivative(nb,nc,a,l,vn,dn)Definitions: HornerDerivative(nb,nc,a,l,vn,dn)Original native command in the exact edition - L24
specialize beta_horner_derivative_value_exists nb - L25
specialize beta_horner_derivative_value_exists nc - L26
specialize beta_horner_derivative_value_exists a - L27
specialize beta_horner_derivative_value_exists l - L28
apply beta_horner_derivative_value_exists
06Separate the logical casesL29–30
07Establish hGL31–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative value exists.
- L31
have hG : ∃ vg. ∃ dg. HornerDerivative(gb,gc,a,l,vg,dg)Definitions: HornerDerivative(gb,gc,a,l,vg,dg)Original native command in the exact edition - L32
specialize beta_horner_derivative_value_exists gb - L33
specialize beta_horner_derivative_value_exists gc - L34
specialize beta_horner_derivative_value_exists a - L35
specialize beta_horner_derivative_value_exists l - L36
apply beta_horner_derivative_value_exists
08Separate the logical casesL37–38
09Establish hlinearL39–48
Establish this local claim before using it. It is not an additional assumption.
- L39
have hlinear : x4 = x + h * x2 /\ x5 = x1 + h * x3 - L40
specialize beta_horner_coefficient_blend_value_derivative pb - L41
specialize beta_horner_coefficient_blend_value_derivative pc - L42
specialize beta_horner_coefficient_blend_value_derivative nb - L43
specialize beta_horner_coefficient_blend_value_derivative nc - L44
specialize beta_horner_coefficient_blend_value_derivative gb - L45
specialize beta_horner_coefficient_blend_value_derivative gc - L46
specialize beta_horner_coefficient_blend_value_derivative h - L47
specialize beta_horner_coefficient_blend_value_derivative a - L48
specialize beta_horner_coefficient_blend_value_derivative l
10Use earlier factsL49–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
specialize beta_horner_coefficient_blend_value_derivative x - L50
specialize beta_horner_coefficient_blend_value_derivative x1 - L51
specialize beta_horner_coefficient_blend_value_derivative x2 - L52
specialize beta_horner_coefficient_blend_value_derivative x3 - L53
specialize beta_horner_coefficient_blend_value_derivative x4 - L54
specialize beta_horner_coefficient_blend_value_derivative x5 - L55
apply beta_horner_coefficient_blend_value_derivative - L56
exact hblend - L57
exact hP_witness_witness - L58
exact hN_witness_witness
11Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
exact hG_witness_witness
12Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
cases hlinear
13Establish hiffL61–70
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hensel signed blend zero iff.
- L61
have hiff : (ModEq(m,x4,0) → ModEq(m,x,x2)) ∧ (ModEq(m,x,x2) → ModEq(m,x4,0))Definitions: ModEq(m,x4,0)ModEq(m,x,x2)Original native command in the exact edition - L62
specialize hensel_signed_blend_zero_iff m - L63
specialize hensel_signed_blend_zero_iff M - L64
specialize hensel_signed_blend_zero_iff h - L65
specialize hensel_signed_blend_zero_iff x - L66
specialize hensel_signed_blend_zero_iff x2 - L67
specialize hensel_signed_blend_zero_iff x4 - L68
apply hensel_signed_blend_zero_iff - L69
exact hM - L70
exact hdiv
14Use earlier factsL71–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L71
exact hlinear_left
15Separate the logical casesL72–73
16Fix variables and assumptionsL74–74
Work with arbitrary variables or the premises of the current implication.
- L74
intro hnatural
17Separate the logical casesL75–76
18Establish hvalueL77–86
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner eval functional.
- L77
have hvalue : x4 = x6 - L78
specialize beta_horner_eval_functional gb - L79
specialize beta_horner_eval_functional gc - L80
specialize beta_horner_eval_functional a - L81
specialize beta_horner_eval_functional l - L82
specialize beta_horner_eval_functional x4 - L83
specialize beta_horner_eval_functional x6 - L84
apply beta_horner_eval_functional - L85
specialize beta_horner_derivative_value_projection gb - L86
specialize beta_horner_derivative_value_projection gc
19Use earlier factsL87–93
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L87
specialize beta_horner_derivative_value_projection a - L88
specialize beta_horner_derivative_value_projection l - L89
specialize beta_horner_derivative_value_projection x4 - L90
specialize beta_horner_derivative_value_projection x5 - L91
apply beta_horner_derivative_value_projection - L92
exact hG_witness_witness - L93
exact hnatural_witness_left
20Construct an explicit witnessL94–95
21Separate the logical casesL96–96
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L96
split
22Use earlier factsL97–104
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L97
specialize beta_horner_derivative_value_projection pb - L98
specialize beta_horner_derivative_value_projection pc - L99
specialize beta_horner_derivative_value_projection a - L100
specialize beta_horner_derivative_value_projection l - L101
specialize beta_horner_derivative_value_projection x - L102
specialize beta_horner_derivative_value_projection x1 - L103
apply beta_horner_derivative_value_projection - L104
exact hP_witness_witness
23Separate the logical casesL105–105
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L105
split
24Use earlier factsL106–114
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L106
specialize beta_horner_derivative_value_projection nb - L107
specialize beta_horner_derivative_value_projection nc - L108
specialize beta_horner_derivative_value_projection a - L109
specialize beta_horner_derivative_value_projection l - L110
specialize beta_horner_derivative_value_projection x2 - L111
specialize beta_horner_derivative_value_projection x3 - L112
apply beta_horner_derivative_value_projection - L113
exact hN_witness_witness - L114
apply hiff_left
25Calculate and transport equalitiesL115–115
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L115
rewrite hvalue
26Use earlier factsL116–116
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L116
exact hnatural_witness_right
27Fix variables and assumptionsL117–117
Work with arbitrary variables or the premises of the current implication.
- L117
intro hsigned
28Separate the logical casesL118–121
29Establish hpositiveL122–131
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner eval functional.
- L122
have hpositive : x = x6 - L123
specialize beta_horner_eval_functional pb - L124
specialize beta_horner_eval_functional pc - L125
specialize beta_horner_eval_functional a - L126
specialize beta_horner_eval_functional l - L127
specialize beta_horner_eval_functional x - L128
specialize beta_horner_eval_functional x6 - L129
apply beta_horner_eval_functional - L130
specialize beta_horner_derivative_value_projection pb - L131
specialize beta_horner_derivative_value_projection pc
30Use earlier factsL132–138
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L132
specialize beta_horner_derivative_value_projection a - L133
specialize beta_horner_derivative_value_projection l - L134
specialize beta_horner_derivative_value_projection x - L135
specialize beta_horner_derivative_value_projection x1 - L136
apply beta_horner_derivative_value_projection - L137
exact hP_witness_witness - L138
exact hsigned_witness_witness_left
31Establish hnegativeL139–148
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner eval functional.
- L139
have hnegative : x2 = x7 - L140
specialize beta_horner_eval_functional nb - L141
specialize beta_horner_eval_functional nc - L142
specialize beta_horner_eval_functional a - L143
specialize beta_horner_eval_functional l - L144
specialize beta_horner_eval_functional x2 - L145
specialize beta_horner_eval_functional x7 - L146
apply beta_horner_eval_functional - L147
specialize beta_horner_derivative_value_projection nb - L148
specialize beta_horner_derivative_value_projection nc
32Use earlier factsL149–155
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L149
specialize beta_horner_derivative_value_projection a - L150
specialize beta_horner_derivative_value_projection l - L151
specialize beta_horner_derivative_value_projection x2 - L152
specialize beta_horner_derivative_value_projection x3 - L153
apply beta_horner_derivative_value_projection - L154
exact hN_witness_witness - L155
exact hsigned_witness_witness_right_left
33Construct an explicit witnessL156–156
Supply the displayed value, then prove that it has the required property.
- L156
exists x4
34Separate the logical casesL157–157
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L157
split
35Use earlier factsL158–166
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L158
specialize beta_horner_derivative_value_projection gb - L159
specialize beta_horner_derivative_value_projection gc - L160
specialize beta_horner_derivative_value_projection a - L161
specialize beta_horner_derivative_value_projection l - L162
specialize beta_horner_derivative_value_projection x4 - L163
specialize beta_horner_derivative_value_projection x5 - L164
apply beta_horner_derivative_value_projection - L165
exact hG_witness_witness - L166
apply hiff_right
36Calculate and transport equalitiesL167–168
37Use earlier factsL169–169
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L169
exact hsigned_witness_witness_right_right
Original defined command ledger · 169 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
intro l - 0010
intro M - 0011
intro m - 0012
intro hM - 0013
intro hdiv - 0014
intro hblend - 0015
have hP : ∃ vp. ∃ dp. HornerDerivative(pb,pc,a,l,vp,dp) - 0016
specialize beta_horner_derivative_value_exists pb - 0017
specialize beta_horner_derivative_value_exists pc - 0018
specialize beta_horner_derivative_value_exists a - 0019
specialize beta_horner_derivative_value_exists l - 0020
apply beta_horner_derivative_value_exists - 0021
cases hP - 0022
cases hP_witness - 0023
have hN : ∃ vn. ∃ dn. HornerDerivative(nb,nc,a,l,vn,dn) - 0024
specialize beta_horner_derivative_value_exists nb - 0025
specialize beta_horner_derivative_value_exists nc - 0026
specialize beta_horner_derivative_value_exists a - 0027
specialize beta_horner_derivative_value_exists l - 0028
apply beta_horner_derivative_value_exists - 0029
cases hN - 0030
cases hN_witness - 0031
have hG : ∃ vg. ∃ dg. HornerDerivative(gb,gc,a,l,vg,dg) - 0032
specialize beta_horner_derivative_value_exists gb - 0033
specialize beta_horner_derivative_value_exists gc - 0034
specialize beta_horner_derivative_value_exists a - 0035
specialize beta_horner_derivative_value_exists l - 0036
apply beta_horner_derivative_value_exists - 0037
cases hG - 0038
cases hG_witness - 0039
have hlinear : x4 = x + h * x2 /\ x5 = x1 + h * x3 - 0040
specialize beta_horner_coefficient_blend_value_derivative pb - 0041
specialize beta_horner_coefficient_blend_value_derivative pc - 0042
specialize beta_horner_coefficient_blend_value_derivative nb - 0043
specialize beta_horner_coefficient_blend_value_derivative nc - 0044
specialize beta_horner_coefficient_blend_value_derivative gb - 0045
specialize beta_horner_coefficient_blend_value_derivative gc - 0046
specialize beta_horner_coefficient_blend_value_derivative h - 0047
specialize beta_horner_coefficient_blend_value_derivative a - 0048
specialize beta_horner_coefficient_blend_value_derivative l - 0049
specialize beta_horner_coefficient_blend_value_derivative x - 0050
specialize beta_horner_coefficient_blend_value_derivative x1 - 0051
specialize beta_horner_coefficient_blend_value_derivative x2 - 0052
specialize beta_horner_coefficient_blend_value_derivative x3 - 0053
specialize beta_horner_coefficient_blend_value_derivative x4 - 0054
specialize beta_horner_coefficient_blend_value_derivative x5 - 0055
apply beta_horner_coefficient_blend_value_derivative - 0056
exact hblend - 0057
exact hP_witness_witness - 0058
exact hN_witness_witness - 0059
exact hG_witness_witness - 0060
cases hlinear - 0061
have hiff : (ModEq(m,x4,0) → ModEq(m,x,x2)) ∧ (ModEq(m,x,x2) → ModEq(m,x4,0)) - 0062
specialize hensel_signed_blend_zero_iff m - 0063
specialize hensel_signed_blend_zero_iff M - 0064
specialize hensel_signed_blend_zero_iff h - 0065
specialize hensel_signed_blend_zero_iff x - 0066
specialize hensel_signed_blend_zero_iff x2 - 0067
specialize hensel_signed_blend_zero_iff x4 - 0068
apply hensel_signed_blend_zero_iff - 0069
exact hM - 0070
exact hdiv - 0071
exact hlinear_left - 0072
cases hiff - 0073
split - 0074
intro hnatural - 0075
cases hnatural - 0076
cases hnatural_witness - 0077
have hvalue : x4 = x6 - 0078
specialize beta_horner_eval_functional gb - 0079
specialize beta_horner_eval_functional gc - 0080
specialize beta_horner_eval_functional a - 0081
specialize beta_horner_eval_functional l - 0082
specialize beta_horner_eval_functional x4 - 0083
specialize beta_horner_eval_functional x6 - 0084
apply beta_horner_eval_functional - 0085
specialize beta_horner_derivative_value_projection gb - 0086
specialize beta_horner_derivative_value_projection gc - 0087
specialize beta_horner_derivative_value_projection a - 0088
specialize beta_horner_derivative_value_projection l - 0089
specialize beta_horner_derivative_value_projection x4 - 0090
specialize beta_horner_derivative_value_projection x5 - 0091
apply beta_horner_derivative_value_projection - 0092
exact hG_witness_witness - 0093
exact hnatural_witness_left - 0094
exists x - 0095
exists x2 - 0096
split - 0097
specialize beta_horner_derivative_value_projection pb - 0098
specialize beta_horner_derivative_value_projection pc - 0099
specialize beta_horner_derivative_value_projection a - 0100
specialize beta_horner_derivative_value_projection l - 0101
specialize beta_horner_derivative_value_projection x - 0102
specialize beta_horner_derivative_value_projection x1 - 0103
apply beta_horner_derivative_value_projection - 0104
exact hP_witness_witness - 0105
split - 0106
specialize beta_horner_derivative_value_projection nb - 0107
specialize beta_horner_derivative_value_projection nc - 0108
specialize beta_horner_derivative_value_projection a - 0109
specialize beta_horner_derivative_value_projection l - 0110
specialize beta_horner_derivative_value_projection x2 - 0111
specialize beta_horner_derivative_value_projection x3 - 0112
apply beta_horner_derivative_value_projection - 0113
exact hN_witness_witness - 0114
apply hiff_left - 0115
rewrite hvalue - 0116
exact hnatural_witness_right - 0117
intro hsigned - 0118
cases hsigned - 0119
cases hsigned_witness - 0120
cases hsigned_witness_witness - 0121
cases hsigned_witness_witness_right - 0122
have hpositive : x = x6 - 0123
specialize beta_horner_eval_functional pb - 0124
specialize beta_horner_eval_functional pc - 0125
specialize beta_horner_eval_functional a - 0126
specialize beta_horner_eval_functional l - 0127
specialize beta_horner_eval_functional x - 0128
specialize beta_horner_eval_functional x6 - 0129
apply beta_horner_eval_functional - 0130
specialize beta_horner_derivative_value_projection pb - 0131
specialize beta_horner_derivative_value_projection pc - 0132
specialize beta_horner_derivative_value_projection a - 0133
specialize beta_horner_derivative_value_projection l - 0134
specialize beta_horner_derivative_value_projection x - 0135
specialize beta_horner_derivative_value_projection x1 - 0136
apply beta_horner_derivative_value_projection - 0137
exact hP_witness_witness - 0138
exact hsigned_witness_witness_left - 0139
have hnegative : x2 = x7 - 0140
specialize beta_horner_eval_functional nb - 0141
specialize beta_horner_eval_functional nc - 0142
specialize beta_horner_eval_functional a - 0143
specialize beta_horner_eval_functional l - 0144
specialize beta_horner_eval_functional x2 - 0145
specialize beta_horner_eval_functional x7 - 0146
apply beta_horner_eval_functional - 0147
specialize beta_horner_derivative_value_projection nb - 0148
specialize beta_horner_derivative_value_projection nc - 0149
specialize beta_horner_derivative_value_projection a - 0150
specialize beta_horner_derivative_value_projection l - 0151
specialize beta_horner_derivative_value_projection x2 - 0152
specialize beta_horner_derivative_value_projection x3 - 0153
apply beta_horner_derivative_value_projection - 0154
exact hN_witness_witness - 0155
exact hsigned_witness_witness_right_left - 0156
exists x4 - 0157
split - 0158
specialize beta_horner_derivative_value_projection gb - 0159
specialize beta_horner_derivative_value_projection gc - 0160
specialize beta_horner_derivative_value_projection a - 0161
specialize beta_horner_derivative_value_projection l - 0162
specialize beta_horner_derivative_value_projection x4 - 0163
specialize beta_horner_derivative_value_projection x5 - 0164
apply beta_horner_derivative_value_projection - 0165
exact hG_witness_witness - 0166
apply hiff_right - 0167
rewrite hpositive - 0168
rewrite hnegative - 0169
exact hsigned_witness_witness_right_right