HD0001

beta_horner_derivative_trace_exists

Every beta-coded polynomial has two actual coupled Horner traces, the second being its formal derivative trace.

Alpha v34 checked-use · first admitted v24 · independently kernel and Lean verified; not Stable

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 arbitrary natural polynomial values and unique formal derivatives. G095 is now closed in the separate Alpha-v27 hensel-lifting branch for integer polynomials, unrestricted input roots, unique canonical lifts, and every positive prime power. Full G095 proof · Alpha v27

Exact theorem in conservative defined notation

∀ b. ∀ c. ∀ t. ∀ l. ∃ u. ∃ v. ∃ d. ∃ e. HornerDerivativeTrace(b,c,t,l,u,v,d,e)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

beta_prefix_horner_trace_exists · checked external prerequisite
Original expanded first-order statement
forall b c t l. exists u v d e. (((((((exists fs_h_hd_trace_value_start. fs_h_hd_trace_value_start + S (0) = S ((S (0)) * v)) /\ exists fs_q_hd_trace_value_start. u = fs_q_hd_trace_value_start * S ((S (0)) * v) + (0))) /\ (forall ff_i_ph_hd_trace_value_steps. (exists ph_bound_hd_trace_value_steps. ph_bound_hd_trace_value_steps + S ff_i_ph_hd_trace_value_steps = l) -> exists ff_coefficient_ph_hd_trace_value_steps ff_previous_ph_hd_trace_value_steps ff_current_ph_hd_trace_value_steps. ((((exists fs_h_ph_hd_trace_value_steps_coefficient. fs_h_ph_hd_trace_value_steps_coefficient + S (ff_coefficient_ph_hd_trace_value_steps) = S ((S (ff_i_ph_hd_trace_value_steps)) * c)) /\ exists fs_q_ph_hd_trace_value_steps_coefficient. b = fs_q_ph_hd_trace_value_steps_coefficient * S ((S (ff_i_ph_hd_trace_value_steps)) * c) + (ff_coefficient_ph_hd_trace_value_steps))) /\ ((((exists fs_h_ph_hd_trace_value_steps_before. fs_h_ph_hd_trace_value_steps_before + S (ff_previous_ph_hd_trace_value_steps) = S ((S (ff_i_ph_hd_trace_value_steps)) * v)) /\ exists fs_q_ph_hd_trace_value_steps_before. u = fs_q_ph_hd_trace_value_steps_before * S ((S (ff_i_ph_hd_trace_value_steps)) * v) + (ff_previous_ph_hd_trace_value_steps))) /\ ((((exists fs_h_ph_hd_trace_value_steps_after. fs_h_ph_hd_trace_value_steps_after + S (ff_current_ph_hd_trace_value_steps) = S ((S (S ff_i_ph_hd_trace_value_steps)) * v)) /\ exists fs_q_ph_hd_trace_value_steps_after. u = fs_q_ph_hd_trace_value_steps_after * S ((S (S ff_i_ph_hd_trace_value_steps)) * v) + (ff_current_ph_hd_trace_value_steps))) /\ ff_current_ph_hd_trace_value_steps = ff_previous_ph_hd_trace_value_steps * t + ff_coefficient_ph_hd_trace_value_steps)))))) /\ (((((exists fs_h_hd_trace_derivative_start. fs_h_hd_trace_derivative_start + S (0) = S ((S (0)) * e)) /\ exists fs_q_hd_trace_derivative_start. d = fs_q_hd_trace_derivative_start * S ((S (0)) * e) + (0))) /\ (forall ff_i_ph_hd_trace_derivative_steps. (exists ph_bound_hd_trace_derivative_steps. ph_bound_hd_trace_derivative_steps + S ff_i_ph_hd_trace_derivative_steps = l) -> exists ff_coefficient_ph_hd_trace_derivative_steps ff_previous_ph_hd_trace_derivative_steps ff_current_ph_hd_trace_derivative_steps. ((((exists fs_h_ph_hd_trace_derivative_steps_coefficient. fs_h_ph_hd_trace_derivative_steps_coefficient + S (ff_coefficient_ph_hd_trace_derivative_steps) = S ((S (ff_i_ph_hd_trace_derivative_steps)) * v)) /\ exists fs_q_ph_hd_trace_derivative_steps_coefficient. u = fs_q_ph_hd_trace_derivative_steps_coefficient * S ((S (ff_i_ph_hd_trace_derivative_steps)) * v) + (ff_coefficient_ph_hd_trace_derivative_steps))) /\ ((((exists fs_h_ph_hd_trace_derivative_steps_before. fs_h_ph_hd_trace_derivative_steps_before + S (ff_previous_ph_hd_trace_derivative_steps) = S ((S (ff_i_ph_hd_trace_derivative_steps)) * e)) /\ exists fs_q_ph_hd_trace_derivative_steps_before. d = fs_q_ph_hd_trace_derivative_steps_before * S ((S (ff_i_ph_hd_trace_derivative_steps)) * e) + (ff_previous_ph_hd_trace_derivative_steps))) /\ ((((exists fs_h_ph_hd_trace_derivative_steps_after. fs_h_ph_hd_trace_derivative_steps_after + S (ff_current_ph_hd_trace_derivative_steps) = S ((S (S ff_i_ph_hd_trace_derivative_steps)) * e)) /\ exists fs_q_ph_hd_trace_derivative_steps_after. d = fs_q_ph_hd_trace_derivative_steps_after * S ((S (S ff_i_ph_hd_trace_derivative_steps)) * e) + (ff_current_ph_hd_trace_derivative_steps))) /\ ff_current_ph_hd_trace_derivative_steps = ff_previous_ph_hd_trace_derivative_steps * t + ff_coefficient_ph_hd_trace_derivative_steps))))))))

Complete unchanged native tactic proof

All 27 lines are the exact independently kernel-checked original script.

Read the argument

Proof checkpoints

27 script commands · 8 reading checkpoints · 2 local claims

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–4

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro b
  2. L2
    intro c
  3. L3
    intro t
  4. L4
    intro l
02Establish hvalueL5–10

Establish this local claim before using it. It is not an additional assumption.

  1. L5
    have hvalue : ∃ u. ∃ v. Beta(u,v,0,0) ∧ (∀ x. Lt(x,l) → ∃ y. ∃ z. ∃ n. Beta(b,c,x,y) ∧ (Beta(u,v,x,z) ∧ (Beta(u,v,S x,n) ∧ n = z · t + y)))Definitions: BetaLtOriginal native command in the exact edition
  2. L6
    specialize beta_prefix_horner_trace_exists b
  3. L7
    specialize beta_prefix_horner_trace_exists c
  4. L8
    specialize beta_prefix_horner_trace_exists t
  5. L9
    specialize beta_prefix_horner_trace_exists l
  6. L10
    exact beta_prefix_horner_trace_exists
03Separate the logical casesL11–12

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L11
    cases hvalue
  2. L12
    cases hvalue_witness
04Establish hderivativeL13–18

Establish this local claim before using it. It is not an additional assumption.

  1. L13
    have hderivative : ∃ d. ∃ e. Beta(d,e,0,0) ∧ (∀ y. Lt(y,l) → ∃ z. ∃ n. ∃ m. Beta(x,x1,y,z) ∧ (Beta(d,e,y,n) ∧ (Beta(d,e,S y,m) ∧ m = n · t + z)))Definitions: BetaLtOriginal native command in the exact edition
  2. L14
    specialize beta_prefix_horner_trace_exists x
  3. L15
    specialize beta_prefix_horner_trace_exists x1
  4. L16
    specialize beta_prefix_horner_trace_exists t
  5. L17
    specialize beta_prefix_horner_trace_exists l
  6. L18
    exact beta_prefix_horner_trace_exists
05Separate the logical casesL19–20

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L19
    cases hderivative
  2. L20
    cases hderivative_witness
06Construct an explicit witnessL21–24

Supply the displayed value, then prove that it has the required property.

  1. L21
    exists x
  2. L22
    exists x1
  3. L23
    exists x2
  4. L24
    exists x3
07Separate the logical casesL25–25

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L25
    split
08Use earlier factsL26–27

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L26
    exact hvalue_witness_witness
  2. L27
    exact hderivative_witness_witness

Library-wide reading audit

Original defined command ledger · 27 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro t
  4. 0004intro l
  5. 0005have hvalue : exists u v. (((((exists fs_h_hd_trace_value_exists_start. fs_h_hd_trace_value_exists_start + S (0) = S ((S (0)) * v)) /\ exists fs_q_hd_trace_value_exists_start. u = fs_q_hd_trace_value_exists_start * S ((S (0)) * v) + (0))) /\ (forall ff_i_ph_hd_trace_value_exists_steps. (exists ph_bound_hd_trace_value_exists_steps. ph_bound_hd_trace_value_exists_steps + S ff_i_ph_hd_trace_value_exists_steps = l) -> exists ff_coefficient_ph_hd_trace_value_exists_steps ff_previous_ph_hd_trace_value_exists_steps ff_current_ph_hd_trace_value_exists_steps. ((((exists fs_h_ph_hd_trace_value_exists_steps_coefficient. fs_h_ph_hd_trace_value_exists_steps_coefficient + S (ff_coefficient_ph_hd_trace_value_exists_steps) = S ((S (ff_i_ph_hd_trace_value_exists_steps)) * c)) /\ exists fs_q_ph_hd_trace_value_exists_steps_coefficient. b = fs_q_ph_hd_trace_value_exists_steps_coefficient * S ((S (ff_i_ph_hd_trace_value_exists_steps)) * c) + (ff_coefficient_ph_hd_trace_value_exists_steps))) /\ ((((exists fs_h_ph_hd_trace_value_exists_steps_before. fs_h_ph_hd_trace_value_exists_steps_before + S (ff_previous_ph_hd_trace_value_exists_steps) = S ((S (ff_i_ph_hd_trace_value_exists_steps)) * v)) /\ exists fs_q_ph_hd_trace_value_exists_steps_before. u = fs_q_ph_hd_trace_value_exists_steps_before * S ((S (ff_i_ph_hd_trace_value_exists_steps)) * v) + (ff_previous_ph_hd_trace_value_exists_steps))) /\ ((((exists fs_h_ph_hd_trace_value_exists_steps_after. fs_h_ph_hd_trace_value_exists_steps_after + S (ff_current_ph_hd_trace_value_exists_steps) = S ((S (S ff_i_ph_hd_trace_value_exists_steps)) * v)) /\ exists fs_q_ph_hd_trace_value_exists_steps_after. u = fs_q_ph_hd_trace_value_exists_steps_after * S ((S (S ff_i_ph_hd_trace_value_exists_steps)) * v) + (ff_current_ph_hd_trace_value_exists_steps))) /\ ff_current_ph_hd_trace_value_exists_steps = ff_previous_ph_hd_trace_value_exists_steps * t + ff_coefficient_ph_hd_trace_value_exists_steps))))))
  6. 0006specialize beta_prefix_horner_trace_exists b
  7. 0007specialize beta_prefix_horner_trace_exists c
  8. 0008specialize beta_prefix_horner_trace_exists t
  9. 0009specialize beta_prefix_horner_trace_exists l
  10. 0010exact beta_prefix_horner_trace_exists
  11. 0011cases hvalue
  12. 0012cases hvalue_witness
  13. 0013have hderivative : exists d e. (((((exists fs_h_hd_trace_derivative_exists_start. fs_h_hd_trace_derivative_exists_start + S (0) = S ((S (0)) * e)) /\ exists fs_q_hd_trace_derivative_exists_start. d = fs_q_hd_trace_derivative_exists_start * S ((S (0)) * e) + (0))) /\ (forall ff_i_ph_hd_trace_derivative_exists_steps. (exists ph_bound_hd_trace_derivative_exists_steps. ph_bound_hd_trace_derivative_exists_steps + S ff_i_ph_hd_trace_derivative_exists_steps = l) -> exists ff_coefficient_ph_hd_trace_derivative_exists_steps ff_previous_ph_hd_trace_derivative_exists_steps ff_current_ph_hd_trace_derivative_exists_steps. ((((exists fs_h_ph_hd_trace_derivative_exists_steps_coefficient. fs_h_ph_hd_trace_derivative_exists_steps_coefficient + S (ff_coefficient_ph_hd_trace_derivative_exists_steps) = S ((S (ff_i_ph_hd_trace_derivative_exists_steps)) * x1)) /\ exists fs_q_ph_hd_trace_derivative_exists_steps_coefficient. x = fs_q_ph_hd_trace_derivative_exists_steps_coefficient * S ((S (ff_i_ph_hd_trace_derivative_exists_steps)) * x1) + (ff_coefficient_ph_hd_trace_derivative_exists_steps))) /\ ((((exists fs_h_ph_hd_trace_derivative_exists_steps_before. fs_h_ph_hd_trace_derivative_exists_steps_before + S (ff_previous_ph_hd_trace_derivative_exists_steps) = S ((S (ff_i_ph_hd_trace_derivative_exists_steps)) * e)) /\ exists fs_q_ph_hd_trace_derivative_exists_steps_before. d = fs_q_ph_hd_trace_derivative_exists_steps_before * S ((S (ff_i_ph_hd_trace_derivative_exists_steps)) * e) + (ff_previous_ph_hd_trace_derivative_exists_steps))) /\ ((((exists fs_h_ph_hd_trace_derivative_exists_steps_after. fs_h_ph_hd_trace_derivative_exists_steps_after + S (ff_current_ph_hd_trace_derivative_exists_steps) = S ((S (S ff_i_ph_hd_trace_derivative_exists_steps)) * e)) /\ exists fs_q_ph_hd_trace_derivative_exists_steps_after. d = fs_q_ph_hd_trace_derivative_exists_steps_after * S ((S (S ff_i_ph_hd_trace_derivative_exists_steps)) * e) + (ff_current_ph_hd_trace_derivative_exists_steps))) /\ ff_current_ph_hd_trace_derivative_exists_steps = ff_previous_ph_hd_trace_derivative_exists_steps * t + ff_coefficient_ph_hd_trace_derivative_exists_steps))))))
  14. 0014specialize beta_prefix_horner_trace_exists x
  15. 0015specialize beta_prefix_horner_trace_exists x1
  16. 0016specialize beta_prefix_horner_trace_exists t
  17. 0017specialize beta_prefix_horner_trace_exists l
  18. 0018exact beta_prefix_horner_trace_exists
  19. 0019cases hderivative
  20. 0020cases hderivative_witness
  21. 0021exists x
  22. 0022exists x1
  23. 0023exists x2
  24. 0024exists x3
  25. 0025split
  26. 0026exact hvalue_witness_witness
  27. 0027exact hderivative_witness_witness