BD0003

binary_horner_prefix_recode

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

An independently witnessed base-two Horner trace remains valid under every exact prefix recoding.

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.

Exact expanded first-order arithmetic statement

forall b c z e l n. (forall bd_index_recode bd_value_recode. (exists bd_gap_recode. bd_gap_recode + S bd_index_recode = l) -> (((exists ff_h_bd_recode_old. ff_h_bd_recode_old + S (bd_value_recode) = S ((S (bd_index_recode)) * c)) /\ exists ff_q_bd_recode_old. b = ff_q_bd_recode_old * S ((S (bd_index_recode)) * c) + (bd_value_recode))) -> (((exists ff_h_bd_recode_new. ff_h_bd_recode_new + S (bd_value_recode) = S ((S (bd_index_recode)) * e)) /\ exists ff_q_bd_recode_new. z = ff_q_bd_recode_new * S ((S (bd_index_recode)) * e) + (bd_value_recode)))) -> (exists ff_u_ph_bd_old ff_v_ph_bd_old. ((((exists fs_h_ph_bd_old_body_start. fs_h_ph_bd_old_body_start + S (0) = S ((S (0)) * ff_v_ph_bd_old)) /\ exists fs_q_ph_bd_old_body_start. ff_u_ph_bd_old = fs_q_ph_bd_old_body_start * S ((S (0)) * ff_v_ph_bd_old) + (0))) /\ ((((exists fs_h_ph_bd_old_body_terminal. fs_h_ph_bd_old_body_terminal + S (n) = S ((S (l)) * ff_v_ph_bd_old)) /\ exists fs_q_ph_bd_old_body_terminal. ff_u_ph_bd_old = fs_q_ph_bd_old_body_terminal * S ((S (l)) * ff_v_ph_bd_old) + (n))) /\ forall ff_i_ph_bd_old_body_steps. (exists ph_bound_bd_old_body_steps. ph_bound_bd_old_body_steps + S ff_i_ph_bd_old_body_steps = l) -> exists ff_coefficient_ph_bd_old_body_steps ff_previous_ph_bd_old_body_steps ff_current_ph_bd_old_body_steps. ((((exists fs_h_ph_bd_old_body_steps_coefficient. fs_h_ph_bd_old_body_steps_coefficient + S (ff_coefficient_ph_bd_old_body_steps) = S ((S (ff_i_ph_bd_old_body_steps)) * c)) /\ exists fs_q_ph_bd_old_body_steps_coefficient. b = fs_q_ph_bd_old_body_steps_coefficient * S ((S (ff_i_ph_bd_old_body_steps)) * c) + (ff_coefficient_ph_bd_old_body_steps))) /\ ((((exists fs_h_ph_bd_old_body_steps_before. fs_h_ph_bd_old_body_steps_before + S (ff_previous_ph_bd_old_body_steps) = S ((S (ff_i_ph_bd_old_body_steps)) * ff_v_ph_bd_old)) /\ exists fs_q_ph_bd_old_body_steps_before. ff_u_ph_bd_old = fs_q_ph_bd_old_body_steps_before * S ((S (ff_i_ph_bd_old_body_steps)) * ff_v_ph_bd_old) + (ff_previous_ph_bd_old_body_steps))) /\ ((((exists fs_h_ph_bd_old_body_steps_after. fs_h_ph_bd_old_body_steps_after + S (ff_current_ph_bd_old_body_steps) = S ((S (S ff_i_ph_bd_old_body_steps)) * ff_v_ph_bd_old)) /\ exists fs_q_ph_bd_old_body_steps_after. ff_u_ph_bd_old = fs_q_ph_bd_old_body_steps_after * S ((S (S ff_i_ph_bd_old_body_steps)) * ff_v_ph_bd_old) + (ff_current_ph_bd_old_body_steps))) /\ ff_current_ph_bd_old_body_steps = ff_previous_ph_bd_old_body_steps * 2 + ff_coefficient_ph_bd_old_body_steps)))))) -> (exists ff_u_ph_bd_new ff_v_ph_bd_new. ((((exists fs_h_ph_bd_new_body_start. fs_h_ph_bd_new_body_start + S (0) = S ((S (0)) * ff_v_ph_bd_new)) /\ exists fs_q_ph_bd_new_body_start. ff_u_ph_bd_new = fs_q_ph_bd_new_body_start * S ((S (0)) * ff_v_ph_bd_new) + (0))) /\ ((((exists fs_h_ph_bd_new_body_terminal. fs_h_ph_bd_new_body_terminal + S (n) = S ((S (l)) * ff_v_ph_bd_new)) /\ exists fs_q_ph_bd_new_body_terminal. ff_u_ph_bd_new = fs_q_ph_bd_new_body_terminal * S ((S (l)) * ff_v_ph_bd_new) + (n))) /\ forall ff_i_ph_bd_new_body_steps. (exists ph_bound_bd_new_body_steps. ph_bound_bd_new_body_steps + S ff_i_ph_bd_new_body_steps = l) -> exists ff_coefficient_ph_bd_new_body_steps ff_previous_ph_bd_new_body_steps ff_current_ph_bd_new_body_steps. ((((exists fs_h_ph_bd_new_body_steps_coefficient. fs_h_ph_bd_new_body_steps_coefficient + S (ff_coefficient_ph_bd_new_body_steps) = S ((S (ff_i_ph_bd_new_body_steps)) * e)) /\ exists fs_q_ph_bd_new_body_steps_coefficient. z = fs_q_ph_bd_new_body_steps_coefficient * S ((S (ff_i_ph_bd_new_body_steps)) * e) + (ff_coefficient_ph_bd_new_body_steps))) /\ ((((exists fs_h_ph_bd_new_body_steps_before. fs_h_ph_bd_new_body_steps_before + S (ff_previous_ph_bd_new_body_steps) = S ((S (ff_i_ph_bd_new_body_steps)) * ff_v_ph_bd_new)) /\ exists fs_q_ph_bd_new_body_steps_before. ff_u_ph_bd_new = fs_q_ph_bd_new_body_steps_before * S ((S (ff_i_ph_bd_new_body_steps)) * ff_v_ph_bd_new) + (ff_previous_ph_bd_new_body_steps))) /\ ((((exists fs_h_ph_bd_new_body_steps_after. fs_h_ph_bd_new_body_steps_after + S (ff_current_ph_bd_new_body_steps) = S ((S (S ff_i_ph_bd_new_body_steps)) * ff_v_ph_bd_new)) /\ exists fs_q_ph_bd_new_body_steps_after. ff_u_ph_bd_new = fs_q_ph_bd_new_body_steps_after * S ((S (S ff_i_ph_bd_new_body_steps)) * ff_v_ph_bd_new) + (ff_current_ph_bd_new_body_steps))) /\ ff_current_ph_bd_new_body_steps = ff_previous_ph_bd_new_body_steps * 2 + ff_coefficient_ph_bd_new_body_steps))))))

Constructive proof overview

Generated structural guide

An independently witnessed base-two Horner trace remains valid under every exact prefix recoding.

The unchanged tactic script uses 0 declared prerequisites and contains 38 exact native proof lines.

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

Proof neighborhood

Direct dependencies

none

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

38 script commands · 13 reading checkpoints · 1 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.

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–8

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

  1. L1
    intro b
  2. L2
    intro c
  3. L3
    intro z
  4. L4
    intro e
  5. L5
    intro l
  6. L6
    intro n
  7. L7
    intro hpreserve
  8. L8
    intro hhorner
02Separate the logical casesL9–12

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

  1. L9
    cases hhorner
  2. L10
    cases hhorner_witness
  3. L11
    cases hhorner_witness_witness
  4. L12
    cases hhorner_witness_witness_right
03Construct an explicit witnessL13–14

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

  1. L13
    exists x
  2. L14
    exists x1
04Separate the logical casesL15–15

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

  1. L15
    split
05Use earlier factsL16–16

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

  1. L16
    exact hhorner_witness_witness_left
06Separate the logical casesL17–17

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

  1. L17
    split
07Use earlier factsL18–18

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

  1. L18
    exact hhorner_witness_witness_right_left
08Fix variables and assumptionsL19–20

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

  1. L19
    intro i
  2. L20
    intro hbound
09Establish hstepL21–24

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hhorner witness witness right right.

  1. L21
    have hstep : ∃ digit. ∃ previous. ∃ current. Beta(b,c,i,digit) ∧ (Beta(x,x1,i,previous) ∧ (Beta(x,x1,S i,current) ∧ current = previous · 2 + digit))Definitions: Beta
  2. L22
    specialize hhorner_witness_witness_right_right i
  3. L23
    apply hhorner_witness_witness_right_right
  4. L24
    exact hbound
10Separate the logical casesL25–28

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

  1. L25
    cases hstep
  2. L26
    cases hstep_witness
  3. L27
    cases hstep_witness_witness
  4. L28
    cases hstep_witness_witness_witness
11Construct an explicit witnessL29–31

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

  1. L29
    exists x2
  2. L30
    exists x3
  3. L31
    exists x4
12Separate the logical casesL32–32

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

  1. L32
    split
13Use earlier factsL33–38

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

  1. L33
    specialize hpreserve i
  2. L34
    specialize hpreserve x2
  3. L35
    apply hpreserve
  4. L36
    exact hbound
  5. L37
    exact hstep_witness_witness_witness_left
  6. L38
    exact hstep_witness_witness_witness_right

Library-wide reading audit

Original exact command ledger · 38 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro z
  4. 0004intro e
  5. 0005intro l
  6. 0006intro n
  7. 0007intro hpreserve
  8. 0008intro hhorner
  9. 0009cases hhorner
  10. 0010cases hhorner_witness
  11. 0011cases hhorner_witness_witness
  12. 0012cases hhorner_witness_witness_right
  13. 0013exists x
  14. 0014exists x1
  15. 0015split
  16. 0016exact hhorner_witness_witness_left
  17. 0017split
  18. 0018exact hhorner_witness_witness_right_left
  19. 0019intro i
  20. 0020intro hbound
  21. 0021have hstep : exists digit previous current. ((((exists ff_h_bd_transport_digit. ff_h_bd_transport_digit + S (digit) = S ((S (i)) * c)) /\ exists ff_q_bd_transport_digit. b = ff_q_bd_transport_digit * S ((S (i)) * c) + (digit))) /\ ((((exists ff_h_bd_transport_previous. ff_h_bd_transport_previous + S (previous) = S ((S (i)) * x1)) /\ exists ff_q_bd_transport_previous. x = ff_q_bd_transport_previous * S ((S (i)) * x1) + (previous))) /\ ((((exists ff_h_bd_transport_current. ff_h_bd_transport_current + S (current) = S ((S (S i)) * x1)) /\ exists ff_q_bd_transport_current. x = ff_q_bd_transport_current * S ((S (S i)) * x1) + (current))) /\ current = previous * 2 + digit)))
  22. 0022specialize hhorner_witness_witness_right_right i
  23. 0023apply hhorner_witness_witness_right_right
  24. 0024exact hbound
  25. 0025cases hstep
  26. 0026cases hstep_witness
  27. 0027cases hstep_witness_witness
  28. 0028cases hstep_witness_witness_witness
  29. 0029exists x2
  30. 0030exists x3
  31. 0031exists x4
  32. 0032split
  33. 0033specialize hpreserve i
  34. 0034specialize hpreserve x2
  35. 0035apply hpreserve
  36. 0036exact hbound
  37. 0037exact hstep_witness_witness_witness_left
  38. 0038exact hstep_witness_witness_witness_right

Separate complete second-wave branches: Full T13 proof · Alpha v27.