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.
Historical partial components only: this chapter proves exact natural polynomial Taylor remainders, bounded corrections, and one-step divisibility lifts. G095 is now closed in the separate Alpha-v27 hensel-lifting branch for integer polynomials, unrestricted input roots, unique canonical representatives, and every positive prime power. Full G095 proof · Alpha v27
Exact theorem in conservative defined notation
∀ b. ∀ c. ∀ t. ∀ h. ∀ l. ∀ n. ∀ d. ∀ z. HornerDerivative(b,c,t,l,n,d) → Horner(b,c,t + h,l,z) → ∃ x. z = n + h · d + h · h · x
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 93 lines are the exact independently kernel-checked original 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–4
02Induction on lL5–10
03Establish hzero_pairL11–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative empty.
- L11
have hzero_pair : (n = 0 /\ d = 0) - L12
specialize beta_horner_derivative_empty b - L13
specialize beta_horner_derivative_empty c - L14
specialize beta_horner_derivative_empty t - L15
specialize beta_horner_derivative_empty n - L16
specialize beta_horner_derivative_empty d - L17
apply beta_horner_derivative_empty - L18
exact hpair
04Establish hzero_shiftedL19–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner eval empty.
05Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
cases hzero_pair
06Construct an explicit witnessL27–27
Supply the displayed value, then prove that it has the required property.
- L27
exists 0
07Calculate and transport equalitiesL28–31
08Fix variables and assumptionsL32–36
09Establish hfirstL37–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative successor decompose.
- L37
have hfirst : ∃ a. ∃ r. ∃ q. Beta(b,c,l,a) ∧ (HornerDerivative(b,c,t,l,r,q) ∧ (n = r · t + a ∧ d = q · t + r))Definitions: BetaHornerDerivativeOriginal native command in the exact edition - L38
specialize beta_horner_derivative_successor_decompose b - L39
specialize beta_horner_derivative_successor_decompose c - L40
specialize beta_horner_derivative_successor_decompose t - L41
specialize beta_horner_derivative_successor_decompose l - L42
specialize beta_horner_derivative_successor_decompose n - L43
specialize beta_horner_derivative_successor_decompose d - L44
apply beta_horner_derivative_successor_decompose - L45
exact hpair
10Separate the logical casesL46–51
11Establish hsecondL52–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner eval successor decompose.
- L52
have hsecond : ∃ a. ∃ r. Beta(b,c,l,a) ∧ (Horner(b,c,t + h,l,r) ∧ z = r · (t + h) + a)Definitions: BetaHornerOriginal native command in the exact edition - L53
specialize beta_horner_eval_successor_decompose b - L54
specialize beta_horner_eval_successor_decompose c - L55
specialize beta_horner_eval_successor_decompose (t + h) - L56
specialize beta_horner_eval_successor_decompose l - L57
specialize beta_horner_eval_successor_decompose z - L58
apply beta_horner_eval_successor_decompose - L59
exact hshifted
12Separate the logical casesL60–63
13Establish hcoefficientL64–72
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
14Establish hprefixL73–79
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
15Separate the logical casesL80–80
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L80
cases hprefix
16Construct an explicit witnessL81–81
Supply the displayed value, then prove that it has the required property.
- L81
exists x5 * (t + h) + x2
17Calculate and transport equalitiesL82–86
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
18Use earlier factsL87–93
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L87
specialize horner_taylor_successor_identity x1 - L88
specialize horner_taylor_successor_identity x2 - L89
specialize horner_taylor_successor_identity h - L90
specialize horner_taylor_successor_identity x5 - L91
specialize horner_taylor_successor_identity t - L92
specialize horner_taylor_successor_identity x - L93
exact horner_taylor_successor_identity
Original defined command ledger · 93 lines
- 0001
intro b - 0002
intro c - 0003
intro t - 0004
intro h - 0005
induction l - 0006
intro n - 0007
intro d - 0008
intro z - 0009
intro hpair - 0010
intro hshifted - 0011
have hzero_pair : (n = 0 /\ d = 0) - 0012
specialize beta_horner_derivative_empty b - 0013
specialize beta_horner_derivative_empty c - 0014
specialize beta_horner_derivative_empty t - 0015
specialize beta_horner_derivative_empty n - 0016
specialize beta_horner_derivative_empty d - 0017
apply beta_horner_derivative_empty - 0018
exact hpair - 0019
have hzero_shifted : z = 0 - 0020
specialize beta_horner_eval_empty b - 0021
specialize beta_horner_eval_empty c - 0022
specialize beta_horner_eval_empty (t + h) - 0023
specialize beta_horner_eval_empty z - 0024
apply beta_horner_eval_empty - 0025
exact hshifted - 0026
cases hzero_pair - 0027
exists 0 - 0028
rewrite hzero_shifted - 0029
rewrite hzero_pair_left - 0030
rewrite hzero_pair_right - 0031
simp - 0032
intro n - 0033
intro d - 0034
intro z - 0035
intro hpair - 0036
intro hshifted - 0037
have hfirst : exists a r q. ((((exists fs_h_pth_taylor_first_coefficient. fs_h_pth_taylor_first_coefficient + S (a) = S ((S (l)) * c)) /\ exists fs_q_pth_taylor_first_coefficient. b = fs_q_pth_taylor_first_coefficient * S ((S (l)) * c) + (a))) /\ ((exists ff_u_hd_pth_taylor_first_prefix ff_v_hd_pth_taylor_first_prefix ff_d_hd_pth_taylor_first_prefix ff_e_hd_pth_taylor_first_prefix. ((((((exists fs_h_ph_hd_pth_taylor_first_prefix_body_value_start. fs_h_ph_hd_pth_taylor_first_prefix_body_value_start + S (0) = S ((S (0)) * ff_v_hd_pth_taylor_first_prefix)) /\ exists fs_q_ph_hd_pth_taylor_first_prefix_body_value_start. ff_u_hd_pth_taylor_first_prefix = fs_q_ph_hd_pth_taylor_first_prefix_body_value_start * S ((S (0)) * ff_v_hd_pth_taylor_first_prefix) + (0))) /\ ((((exists fs_h_ph_hd_pth_taylor_first_prefix_body_value_terminal. fs_h_ph_hd_pth_taylor_first_prefix_body_value_terminal + S (r) = S ((S (l)) * ff_v_hd_pth_taylor_first_prefix)) /\ exists fs_q_ph_hd_pth_taylor_first_prefix_body_value_terminal. ff_u_hd_pth_taylor_first_prefix = fs_q_ph_hd_pth_taylor_first_prefix_body_value_terminal * S ((S (l)) * ff_v_hd_pth_taylor_first_prefix) + (r))) /\ forall ff_i_ph_hd_pth_taylor_first_prefix_body_value_steps. (exists ph_bound_hd_pth_taylor_first_prefix_body_value_steps. ph_bound_hd_pth_taylor_first_prefix_body_value_steps + S ff_i_ph_hd_pth_taylor_first_prefix_body_value_steps = l) -> exists ff_coefficient_ph_hd_pth_taylor_first_prefix_body_value_steps ff_previous_ph_hd_pth_taylor_first_prefix_body_value_steps ff_current_ph_hd_pth_taylor_first_prefix_body_value_steps. ((((exists fs_h_ph_hd_pth_taylor_first_prefix_body_value_steps_coefficient. fs_h_ph_hd_pth_taylor_first_prefix_body_value_steps_coefficient + S (ff_coefficient_ph_hd_pth_taylor_first_prefix_body_value_steps) = S ((S (ff_i_ph_hd_pth_taylor_first_prefix_body_value_steps)) * c)) /\ exists fs_q_ph_hd_pth_taylor_first_prefix_body_value_steps_coefficient. b = fs_q_ph_hd_pth_taylor_first_prefix_body_value_steps_coefficient * S ((S (ff_i_ph_hd_pth_taylor_first_prefix_body_value_steps)) * c) + (ff_coefficient_ph_hd_pth_taylor_first_prefix_body_value_steps))) /\ ((((exists fs_h_ph_hd_pth_taylor_first_prefix_body_value_steps_before. fs_h_ph_hd_pth_taylor_first_prefix_body_value_steps_before + S (ff_previous_ph_hd_pth_taylor_first_prefix_body_value_steps) = S ((S (ff_i_ph_hd_pth_taylor_first_prefix_body_value_steps)) * ff_v_hd_pth_taylor_first_prefix)) /\ exists fs_q_ph_hd_pth_taylor_first_prefix_body_value_steps_before. ff_u_hd_pth_taylor_first_prefix = fs_q_ph_hd_pth_taylor_first_prefix_body_value_steps_before * S ((S (ff_i_ph_hd_pth_taylor_first_prefix_body_value_steps)) * ff_v_hd_pth_taylor_first_prefix) + (ff_previous_ph_hd_pth_taylor_first_prefix_body_value_steps))) /\ ((((exists fs_h_ph_hd_pth_taylor_first_prefix_body_value_steps_after. fs_h_ph_hd_pth_taylor_first_prefix_body_value_steps_after + S (ff_current_ph_hd_pth_taylor_first_prefix_body_value_steps) = S ((S (S ff_i_ph_hd_pth_taylor_first_prefix_body_value_steps)) * ff_v_hd_pth_taylor_first_prefix)) /\ exists fs_q_ph_hd_pth_taylor_first_prefix_body_value_steps_after. ff_u_hd_pth_taylor_first_prefix = fs_q_ph_hd_pth_taylor_first_prefix_body_value_steps_after * S ((S (S ff_i_ph_hd_pth_taylor_first_prefix_body_value_steps)) * ff_v_hd_pth_taylor_first_prefix) + (ff_current_ph_hd_pth_taylor_first_prefix_body_value_steps))) /\ ff_current_ph_hd_pth_taylor_first_prefix_body_value_steps = ff_previous_ph_hd_pth_taylor_first_prefix_body_value_steps * t + ff_coefficient_ph_hd_pth_taylor_first_prefix_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_pth_taylor_first_prefix_body_derivative_start. fs_h_ph_hd_pth_taylor_first_prefix_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_pth_taylor_first_prefix)) /\ exists fs_q_ph_hd_pth_taylor_first_prefix_body_derivative_start. ff_d_hd_pth_taylor_first_prefix = fs_q_ph_hd_pth_taylor_first_prefix_body_derivative_start * S ((S (0)) * ff_e_hd_pth_taylor_first_prefix) + (0))) /\ ((((exists fs_h_ph_hd_pth_taylor_first_prefix_body_derivative_terminal. fs_h_ph_hd_pth_taylor_first_prefix_body_derivative_terminal + S (q) = S ((S (l)) * ff_e_hd_pth_taylor_first_prefix)) /\ exists fs_q_ph_hd_pth_taylor_first_prefix_body_derivative_terminal. ff_d_hd_pth_taylor_first_prefix = fs_q_ph_hd_pth_taylor_first_prefix_body_derivative_terminal * S ((S (l)) * ff_e_hd_pth_taylor_first_prefix) + (q))) /\ forall ff_i_ph_hd_pth_taylor_first_prefix_body_derivative_steps. (exists ph_bound_hd_pth_taylor_first_prefix_body_derivative_steps. ph_bound_hd_pth_taylor_first_prefix_body_derivative_steps + S ff_i_ph_hd_pth_taylor_first_prefix_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_pth_taylor_first_prefix_body_derivative_steps ff_previous_ph_hd_pth_taylor_first_prefix_body_derivative_steps ff_current_ph_hd_pth_taylor_first_prefix_body_derivative_steps. ((((exists fs_h_ph_hd_pth_taylor_first_prefix_body_derivative_steps_coefficient. fs_h_ph_hd_pth_taylor_first_prefix_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_pth_taylor_first_prefix_body_derivative_steps) = S ((S (ff_i_ph_hd_pth_taylor_first_prefix_body_derivative_steps)) * ff_v_hd_pth_taylor_first_prefix)) /\ exists fs_q_ph_hd_pth_taylor_first_prefix_body_derivative_steps_coefficient. ff_u_hd_pth_taylor_first_prefix = fs_q_ph_hd_pth_taylor_first_prefix_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_pth_taylor_first_prefix_body_derivative_steps)) * ff_v_hd_pth_taylor_first_prefix) + (ff_coefficient_ph_hd_pth_taylor_first_prefix_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pth_taylor_first_prefix_body_derivative_steps_before. fs_h_ph_hd_pth_taylor_first_prefix_body_derivative_steps_before + S (ff_previous_ph_hd_pth_taylor_first_prefix_body_derivative_steps) = S ((S (ff_i_ph_hd_pth_taylor_first_prefix_body_derivative_steps)) * ff_e_hd_pth_taylor_first_prefix)) /\ exists fs_q_ph_hd_pth_taylor_first_prefix_body_derivative_steps_before. ff_d_hd_pth_taylor_first_prefix = fs_q_ph_hd_pth_taylor_first_prefix_body_derivative_steps_before * S ((S (ff_i_ph_hd_pth_taylor_first_prefix_body_derivative_steps)) * ff_e_hd_pth_taylor_first_prefix) + (ff_previous_ph_hd_pth_taylor_first_prefix_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pth_taylor_first_prefix_body_derivative_steps_after. fs_h_ph_hd_pth_taylor_first_prefix_body_derivative_steps_after + S (ff_current_ph_hd_pth_taylor_first_prefix_body_derivative_steps) = S ((S (S ff_i_ph_hd_pth_taylor_first_prefix_body_derivative_steps)) * ff_e_hd_pth_taylor_first_prefix)) /\ exists fs_q_ph_hd_pth_taylor_first_prefix_body_derivative_steps_after. ff_d_hd_pth_taylor_first_prefix = fs_q_ph_hd_pth_taylor_first_prefix_body_derivative_steps_after * S ((S (S ff_i_ph_hd_pth_taylor_first_prefix_body_derivative_steps)) * ff_e_hd_pth_taylor_first_prefix) + (ff_current_ph_hd_pth_taylor_first_prefix_body_derivative_steps))) /\ ff_current_ph_hd_pth_taylor_first_prefix_body_derivative_steps = ff_previous_ph_hd_pth_taylor_first_prefix_body_derivative_steps * t + ff_coefficient_ph_hd_pth_taylor_first_prefix_body_derivative_steps)))))))) /\ ((n = r * t + a) /\ d = q * t + r))) - 0038
specialize beta_horner_derivative_successor_decompose b - 0039
specialize beta_horner_derivative_successor_decompose c - 0040
specialize beta_horner_derivative_successor_decompose t - 0041
specialize beta_horner_derivative_successor_decompose l - 0042
specialize beta_horner_derivative_successor_decompose n - 0043
specialize beta_horner_derivative_successor_decompose d - 0044
apply beta_horner_derivative_successor_decompose - 0045
exact hpair - 0046
cases hfirst - 0047
cases hfirst_witness - 0048
cases hfirst_witness_witness - 0049
cases hfirst_witness_witness_witness - 0050
cases hfirst_witness_witness_witness_right - 0051
cases hfirst_witness_witness_witness_right_right - 0052
have hsecond : exists a r. ((((exists fs_h_pth_taylor_second_coefficient. fs_h_pth_taylor_second_coefficient + S (a) = S ((S (l)) * c)) /\ exists fs_q_pth_taylor_second_coefficient. b = fs_q_pth_taylor_second_coefficient * S ((S (l)) * c) + (a))) /\ ((exists ff_u_ph_pth_taylor_second_prefix ff_v_ph_pth_taylor_second_prefix. ((((exists fs_h_ph_pth_taylor_second_prefix_body_start. fs_h_ph_pth_taylor_second_prefix_body_start + S (0) = S ((S (0)) * ff_v_ph_pth_taylor_second_prefix)) /\ exists fs_q_ph_pth_taylor_second_prefix_body_start. ff_u_ph_pth_taylor_second_prefix = fs_q_ph_pth_taylor_second_prefix_body_start * S ((S (0)) * ff_v_ph_pth_taylor_second_prefix) + (0))) /\ ((((exists fs_h_ph_pth_taylor_second_prefix_body_terminal. fs_h_ph_pth_taylor_second_prefix_body_terminal + S (r) = S ((S (l)) * ff_v_ph_pth_taylor_second_prefix)) /\ exists fs_q_ph_pth_taylor_second_prefix_body_terminal. ff_u_ph_pth_taylor_second_prefix = fs_q_ph_pth_taylor_second_prefix_body_terminal * S ((S (l)) * ff_v_ph_pth_taylor_second_prefix) + (r))) /\ forall ff_i_ph_pth_taylor_second_prefix_body_steps. (exists ph_bound_pth_taylor_second_prefix_body_steps. ph_bound_pth_taylor_second_prefix_body_steps + S ff_i_ph_pth_taylor_second_prefix_body_steps = l) -> exists ff_coefficient_ph_pth_taylor_second_prefix_body_steps ff_previous_ph_pth_taylor_second_prefix_body_steps ff_current_ph_pth_taylor_second_prefix_body_steps. ((((exists fs_h_ph_pth_taylor_second_prefix_body_steps_coefficient. fs_h_ph_pth_taylor_second_prefix_body_steps_coefficient + S (ff_coefficient_ph_pth_taylor_second_prefix_body_steps) = S ((S (ff_i_ph_pth_taylor_second_prefix_body_steps)) * c)) /\ exists fs_q_ph_pth_taylor_second_prefix_body_steps_coefficient. b = fs_q_ph_pth_taylor_second_prefix_body_steps_coefficient * S ((S (ff_i_ph_pth_taylor_second_prefix_body_steps)) * c) + (ff_coefficient_ph_pth_taylor_second_prefix_body_steps))) /\ ((((exists fs_h_ph_pth_taylor_second_prefix_body_steps_before. fs_h_ph_pth_taylor_second_prefix_body_steps_before + S (ff_previous_ph_pth_taylor_second_prefix_body_steps) = S ((S (ff_i_ph_pth_taylor_second_prefix_body_steps)) * ff_v_ph_pth_taylor_second_prefix)) /\ exists fs_q_ph_pth_taylor_second_prefix_body_steps_before. ff_u_ph_pth_taylor_second_prefix = fs_q_ph_pth_taylor_second_prefix_body_steps_before * S ((S (ff_i_ph_pth_taylor_second_prefix_body_steps)) * ff_v_ph_pth_taylor_second_prefix) + (ff_previous_ph_pth_taylor_second_prefix_body_steps))) /\ ((((exists fs_h_ph_pth_taylor_second_prefix_body_steps_after. fs_h_ph_pth_taylor_second_prefix_body_steps_after + S (ff_current_ph_pth_taylor_second_prefix_body_steps) = S ((S (S ff_i_ph_pth_taylor_second_prefix_body_steps)) * ff_v_ph_pth_taylor_second_prefix)) /\ exists fs_q_ph_pth_taylor_second_prefix_body_steps_after. ff_u_ph_pth_taylor_second_prefix = fs_q_ph_pth_taylor_second_prefix_body_steps_after * S ((S (S ff_i_ph_pth_taylor_second_prefix_body_steps)) * ff_v_ph_pth_taylor_second_prefix) + (ff_current_ph_pth_taylor_second_prefix_body_steps))) /\ ff_current_ph_pth_taylor_second_prefix_body_steps = ff_previous_ph_pth_taylor_second_prefix_body_steps * (t + h) + ff_coefficient_ph_pth_taylor_second_prefix_body_steps)))))) /\ z = r * (t + h) + a)) - 0053
specialize beta_horner_eval_successor_decompose b - 0054
specialize beta_horner_eval_successor_decompose c - 0055
specialize beta_horner_eval_successor_decompose (t + h) - 0056
specialize beta_horner_eval_successor_decompose l - 0057
specialize beta_horner_eval_successor_decompose z - 0058
apply beta_horner_eval_successor_decompose - 0059
exact hshifted - 0060
cases hsecond - 0061
cases hsecond_witness - 0062
cases hsecond_witness_witness - 0063
cases hsecond_witness_witness_right - 0064
have hcoefficient : x = x3 - 0065
specialize beta_at_unique b - 0066
specialize beta_at_unique c - 0067
specialize beta_at_unique l - 0068
specialize beta_at_unique x - 0069
specialize beta_at_unique x3 - 0070
apply beta_at_unique - 0071
exact hfirst_witness_witness_witness_left - 0072
exact hsecond_witness_witness_left - 0073
have hprefix : exists q. x4 = (x1 + h * x2) + (h * h) * q - 0074
specialize IH x1 - 0075
specialize IH x2 - 0076
specialize IH x4 - 0077
apply IH - 0078
exact hfirst_witness_witness_witness_right_left - 0079
exact hsecond_witness_witness_right_left - 0080
cases hprefix - 0081
exists x5 * (t + h) + x2 - 0082
rewrite hsecond_witness_witness_right_right - 0083
rewrite hfirst_witness_witness_witness_right_right_left - 0084
rewrite hfirst_witness_witness_witness_right_right_right - 0085
rewrite hprefix_witness - 0086
rewrite <- hcoefficient - 0087
specialize horner_taylor_successor_identity x1 - 0088
specialize horner_taylor_successor_identity x2 - 0089
specialize horner_taylor_successor_identity h - 0090
specialize horner_taylor_successor_identity x5 - 0091
specialize horner_taylor_successor_identity t - 0092
specialize horner_taylor_successor_identity x - 0093
exact horner_taylor_successor_identity