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 l h d n. (forall ff_index_be_bd_old ff_digit_be_bd_old. (exists ff_lt_be_bd_old_bound. ff_lt_be_bd_old_bound + S ff_index_be_bd_old = l) -> (((exists ff_h_be_bd_old_digit. ff_h_be_bd_old_digit + S (ff_digit_be_bd_old) = S ((S (ff_index_be_bd_old)) * c)) /\ exists ff_q_be_bd_old_digit. b = ff_q_be_bd_old_digit * S ((S (ff_index_be_bd_old)) * c) + (ff_digit_be_bd_old))) -> (ff_digit_be_bd_old = 0 \/ ff_digit_be_bd_old = 1)) -> (exists ff_u_ph_bd_append_old_horner ff_v_ph_bd_append_old_horner. ((((exists fs_h_ph_bd_append_old_horner_body_start. fs_h_ph_bd_append_old_horner_body_start + S (0) = S ((S (0)) * ff_v_ph_bd_append_old_horner)) /\ exists fs_q_ph_bd_append_old_horner_body_start. ff_u_ph_bd_append_old_horner = fs_q_ph_bd_append_old_horner_body_start * S ((S (0)) * ff_v_ph_bd_append_old_horner) + (0))) /\ ((((exists fs_h_ph_bd_append_old_horner_body_terminal. fs_h_ph_bd_append_old_horner_body_terminal + S (h) = S ((S (l)) * ff_v_ph_bd_append_old_horner)) /\ exists fs_q_ph_bd_append_old_horner_body_terminal. ff_u_ph_bd_append_old_horner = fs_q_ph_bd_append_old_horner_body_terminal * S ((S (l)) * ff_v_ph_bd_append_old_horner) + (h))) /\ forall ff_i_ph_bd_append_old_horner_body_steps. (exists ph_bound_bd_append_old_horner_body_steps. ph_bound_bd_append_old_horner_body_steps + S ff_i_ph_bd_append_old_horner_body_steps = l) -> exists ff_coefficient_ph_bd_append_old_horner_body_steps ff_previous_ph_bd_append_old_horner_body_steps ff_current_ph_bd_append_old_horner_body_steps. ((((exists fs_h_ph_bd_append_old_horner_body_steps_coefficient. fs_h_ph_bd_append_old_horner_body_steps_coefficient + S (ff_coefficient_ph_bd_append_old_horner_body_steps) = S ((S (ff_i_ph_bd_append_old_horner_body_steps)) * c)) /\ exists fs_q_ph_bd_append_old_horner_body_steps_coefficient. b = fs_q_ph_bd_append_old_horner_body_steps_coefficient * S ((S (ff_i_ph_bd_append_old_horner_body_steps)) * c) + (ff_coefficient_ph_bd_append_old_horner_body_steps))) /\ ((((exists fs_h_ph_bd_append_old_horner_body_steps_before. fs_h_ph_bd_append_old_horner_body_steps_before + S (ff_previous_ph_bd_append_old_horner_body_steps) = S ((S (ff_i_ph_bd_append_old_horner_body_steps)) * ff_v_ph_bd_append_old_horner)) /\ exists fs_q_ph_bd_append_old_horner_body_steps_before. ff_u_ph_bd_append_old_horner = fs_q_ph_bd_append_old_horner_body_steps_before * S ((S (ff_i_ph_bd_append_old_horner_body_steps)) * ff_v_ph_bd_append_old_horner) + (ff_previous_ph_bd_append_old_horner_body_steps))) /\ ((((exists fs_h_ph_bd_append_old_horner_body_steps_after. fs_h_ph_bd_append_old_horner_body_steps_after + S (ff_current_ph_bd_append_old_horner_body_steps) = S ((S (S ff_i_ph_bd_append_old_horner_body_steps)) * ff_v_ph_bd_append_old_horner)) /\ exists fs_q_ph_bd_append_old_horner_body_steps_after. ff_u_ph_bd_append_old_horner = fs_q_ph_bd_append_old_horner_body_steps_after * S ((S (S ff_i_ph_bd_append_old_horner_body_steps)) * ff_v_ph_bd_append_old_horner) + (ff_current_ph_bd_append_old_horner_body_steps))) /\ ff_current_ph_bd_append_old_horner_body_steps = ff_previous_ph_bd_append_old_horner_body_steps * 2 + ff_coefficient_ph_bd_append_old_horner_body_steps)))))) -> (d = 0 \/ d = 1) -> n = (h + h) + d -> (exists z e. ((forall ff_index_be_bd_horner_append_digits ff_digit_be_bd_horner_append_digits. (exists ff_lt_be_bd_horner_append_digits_bound. ff_lt_be_bd_horner_append_digits_bound + S ff_index_be_bd_horner_append_digits = S l) -> (((exists ff_h_be_bd_horner_append_digits_digit. ff_h_be_bd_horner_append_digits_digit + S (ff_digit_be_bd_horner_append_digits) = S ((S (ff_index_be_bd_horner_append_digits)) * e)) /\ exists ff_q_be_bd_horner_append_digits_digit. z = ff_q_be_bd_horner_append_digits_digit * S ((S (ff_index_be_bd_horner_append_digits)) * e) + (ff_digit_be_bd_horner_append_digits))) -> (ff_digit_be_bd_horner_append_digits = 0 \/ ff_digit_be_bd_horner_append_digits = 1)) /\ (exists ff_u_ph_bd_horner_append_value ff_v_ph_bd_horner_append_value. ((((exists fs_h_ph_bd_horner_append_value_body_start. fs_h_ph_bd_horner_append_value_body_start + S (0) = S ((S (0)) * ff_v_ph_bd_horner_append_value)) /\ exists fs_q_ph_bd_horner_append_value_body_start. ff_u_ph_bd_horner_append_value = fs_q_ph_bd_horner_append_value_body_start * S ((S (0)) * ff_v_ph_bd_horner_append_value) + (0))) /\ ((((exists fs_h_ph_bd_horner_append_value_body_terminal. fs_h_ph_bd_horner_append_value_body_terminal + S (n) = S ((S (S l)) * ff_v_ph_bd_horner_append_value)) /\ exists fs_q_ph_bd_horner_append_value_body_terminal. ff_u_ph_bd_horner_append_value = fs_q_ph_bd_horner_append_value_body_terminal * S ((S (S l)) * ff_v_ph_bd_horner_append_value) + (n))) /\ forall ff_i_ph_bd_horner_append_value_body_steps. (exists ph_bound_bd_horner_append_value_body_steps. ph_bound_bd_horner_append_value_body_steps + S ff_i_ph_bd_horner_append_value_body_steps = S l) -> exists ff_coefficient_ph_bd_horner_append_value_body_steps ff_previous_ph_bd_horner_append_value_body_steps ff_current_ph_bd_horner_append_value_body_steps. ((((exists fs_h_ph_bd_horner_append_value_body_steps_coefficient. fs_h_ph_bd_horner_append_value_body_steps_coefficient + S (ff_coefficient_ph_bd_horner_append_value_body_steps) = S ((S (ff_i_ph_bd_horner_append_value_body_steps)) * e)) /\ exists fs_q_ph_bd_horner_append_value_body_steps_coefficient. z = fs_q_ph_bd_horner_append_value_body_steps_coefficient * S ((S (ff_i_ph_bd_horner_append_value_body_steps)) * e) + (ff_coefficient_ph_bd_horner_append_value_body_steps))) /\ ((((exists fs_h_ph_bd_horner_append_value_body_steps_before. fs_h_ph_bd_horner_append_value_body_steps_before + S (ff_previous_ph_bd_horner_append_value_body_steps) = S ((S (ff_i_ph_bd_horner_append_value_body_steps)) * ff_v_ph_bd_horner_append_value)) /\ exists fs_q_ph_bd_horner_append_value_body_steps_before. ff_u_ph_bd_horner_append_value = fs_q_ph_bd_horner_append_value_body_steps_before * S ((S (ff_i_ph_bd_horner_append_value_body_steps)) * ff_v_ph_bd_horner_append_value) + (ff_previous_ph_bd_horner_append_value_body_steps))) /\ ((((exists fs_h_ph_bd_horner_append_value_body_steps_after. fs_h_ph_bd_horner_append_value_body_steps_after + S (ff_current_ph_bd_horner_append_value_body_steps) = S ((S (S ff_i_ph_bd_horner_append_value_body_steps)) * ff_v_ph_bd_horner_append_value)) /\ exists fs_q_ph_bd_horner_append_value_body_steps_after. ff_u_ph_bd_horner_append_value = fs_q_ph_bd_horner_append_value_body_steps_after * S ((S (S ff_i_ph_bd_horner_append_value_body_steps)) * ff_v_ph_bd_horner_append_value) + (ff_current_ph_bd_horner_append_value_body_steps))) /\ ff_current_ph_bd_horner_append_value_body_steps = ff_previous_ph_bd_horner_append_value_body_steps * 2 + ff_coefficient_ph_bd_horner_append_value_body_steps))))))))Constructive proof overview
Generated structural guide
Append a witnessed zero-or-one beta digit and prove that its new Horner value is exactly twice the prior exponent plus that digit.
The unchanged tactic script uses 8 declared prerequisites and contains 92 exact native proof lines.
Alpha v34 checked-use · first admitted v23 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
BD0004 binary_digit_prefix_append BD0003 binary_horner_prefix_recode beta_horner_eval_exists Alpha theorem; checked-use authorized beta_horner_eval_successor_decompose Alpha theorem; checked-use authorized beta_at_unique Stable theorem; checked-use authorized beta_horner_eval_functional Alpha theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized two_mul_eq_add_self Alpha theorem; checked-use authorizedDirect 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
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
02Establish happendL11–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary digit prefix append.
- L11
have happend : ∃ z. ∃ e. Beta(z,e,l,d) ∧ (BinaryDigitPrefix(z,e,S l) ∧ (∀ x. ∀ y. Lt(x,l) → Beta(b,c,x,y) → Beta(z,e,x,y)))Definitions: BetaBinaryDigitPrefixLt - L12
specialize binary_digit_prefix_append b - L13
specialize binary_digit_prefix_append c - L14
specialize binary_digit_prefix_append l - L15
specialize binary_digit_prefix_append d - L16
apply binary_digit_prefix_append - L17
exact hdigits - L18
exact hdigit
03Separate the logical casesL19–22
04Establish hprefixL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary horner prefix recode.
- L23
have hprefix : Horner(x,x1,2,l,h)Definitions: Horner - L24
specialize binary_horner_prefix_recode b - L25
specialize binary_horner_prefix_recode c - L26
specialize binary_horner_prefix_recode x - L27
specialize binary_horner_prefix_recode x1 - L28
specialize binary_horner_prefix_recode l - L29
specialize binary_horner_prefix_recode h - L30
apply binary_horner_prefix_recode - L31
exact happend_witness_witness_right_right - L32
exact hhorner
05Establish hevaluationL33–38
Establish this local claim before using it. It is not an additional assumption.
06Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
cases hevaluation
07Establish hdecomposeL40–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner eval successor decompose.
- L40
- L41
specialize beta_horner_eval_successor_decompose x - L42
specialize beta_horner_eval_successor_decompose x1 - L43
specialize beta_horner_eval_successor_decompose 2 - L44
specialize beta_horner_eval_successor_decompose l - L45
specialize beta_horner_eval_successor_decompose x2 - L46
apply beta_horner_eval_successor_decompose - L47
exact hevaluation_witness
08Separate the logical casesL48–51
09Establish hlastL52–60
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
10Establish hhalfL61–70
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner eval functional.
- L61
have hhalf : x4 = h - L62
specialize beta_horner_eval_functional x - L63
specialize beta_horner_eval_functional x1 - L64
specialize beta_horner_eval_functional 2 - L65
specialize beta_horner_eval_functional l - L66
specialize beta_horner_eval_functional x4 - L67
specialize beta_horner_eval_functional h - L68
apply beta_horner_eval_functional - L69
exact hdecompose_witness_witness_right_left - L70
exact hprefix
11Establish hdoubleL71–80
Establish this local claim before using it. It is not an additional assumption.
- L71
have hdouble : h * 2 = h + h - L72
trans 2 * h - L73
specialize mul_comm h - L74
specialize mul_comm 2 - L75
exact mul_comm - L76
specialize two_mul_eq_add_self h - L77
exact two_mul_eq_add_self - L78
rewrite hhalf at hdecompose_witness_witness_right_right - L79
rewrite hlast at hdecompose_witness_witness_right_right - L80
rewrite hdouble at hdecompose_witness_witness_right_right
12Establish hvalueL81–85
13Construct an explicit witnessL86–87
14Separate the logical casesL88–88
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L88
split
15Use earlier factsL89–89
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L89
exact happend_witness_witness_right_left
16Calculate and transport equalitiesL90–91
17Use earlier factsL92–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
exact hevaluation_witness
Original exact command ledger · 92 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro h - 0005
intro d - 0006
intro n - 0007
intro hdigits - 0008
intro hhorner - 0009
intro hdigit - 0010
intro htarget - 0011
have happend : exists z e. ((((exists ff_h_bd_append_terminal. ff_h_bd_append_terminal + S (d) = S ((S (l)) * e)) /\ exists ff_q_bd_append_terminal. z = ff_q_bd_append_terminal * S ((S (l)) * e) + (d))) /\ ((forall ff_index_be_bd_append ff_digit_be_bd_append. (exists ff_lt_be_bd_append_bound. ff_lt_be_bd_append_bound + S ff_index_be_bd_append = S l) -> (((exists ff_h_be_bd_append_digit. ff_h_be_bd_append_digit + S (ff_digit_be_bd_append) = S ((S (ff_index_be_bd_append)) * e)) /\ exists ff_q_be_bd_append_digit. z = ff_q_be_bd_append_digit * S ((S (ff_index_be_bd_append)) * e) + (ff_digit_be_bd_append))) -> (ff_digit_be_bd_append = 0 \/ ff_digit_be_bd_append = 1)) /\ (forall bd_index_append_recode bd_value_append_recode. (exists bd_gap_append_recode. bd_gap_append_recode + S bd_index_append_recode = l) -> (((exists ff_h_bd_append_recode_old. ff_h_bd_append_recode_old + S (bd_value_append_recode) = S ((S (bd_index_append_recode)) * c)) /\ exists ff_q_bd_append_recode_old. b = ff_q_bd_append_recode_old * S ((S (bd_index_append_recode)) * c) + (bd_value_append_recode))) -> (((exists ff_h_bd_append_recode_new. ff_h_bd_append_recode_new + S (bd_value_append_recode) = S ((S (bd_index_append_recode)) * e)) /\ exists ff_q_bd_append_recode_new. z = ff_q_bd_append_recode_new * S ((S (bd_index_append_recode)) * e) + (bd_value_append_recode)))))) - 0012
specialize binary_digit_prefix_append b - 0013
specialize binary_digit_prefix_append c - 0014
specialize binary_digit_prefix_append l - 0015
specialize binary_digit_prefix_append d - 0016
apply binary_digit_prefix_append - 0017
exact hdigits - 0018
exact hdigit - 0019
cases happend - 0020
cases happend_witness - 0021
cases happend_witness_witness - 0022
cases happend_witness_witness_right - 0023
have hprefix : (exists ff_u_ph_bd_append_prefix ff_v_ph_bd_append_prefix. ((((exists fs_h_ph_bd_append_prefix_body_start. fs_h_ph_bd_append_prefix_body_start + S (0) = S ((S (0)) * ff_v_ph_bd_append_prefix)) /\ exists fs_q_ph_bd_append_prefix_body_start. ff_u_ph_bd_append_prefix = fs_q_ph_bd_append_prefix_body_start * S ((S (0)) * ff_v_ph_bd_append_prefix) + (0))) /\ ((((exists fs_h_ph_bd_append_prefix_body_terminal. fs_h_ph_bd_append_prefix_body_terminal + S (h) = S ((S (l)) * ff_v_ph_bd_append_prefix)) /\ exists fs_q_ph_bd_append_prefix_body_terminal. ff_u_ph_bd_append_prefix = fs_q_ph_bd_append_prefix_body_terminal * S ((S (l)) * ff_v_ph_bd_append_prefix) + (h))) /\ forall ff_i_ph_bd_append_prefix_body_steps. (exists ph_bound_bd_append_prefix_body_steps. ph_bound_bd_append_prefix_body_steps + S ff_i_ph_bd_append_prefix_body_steps = l) -> exists ff_coefficient_ph_bd_append_prefix_body_steps ff_previous_ph_bd_append_prefix_body_steps ff_current_ph_bd_append_prefix_body_steps. ((((exists fs_h_ph_bd_append_prefix_body_steps_coefficient. fs_h_ph_bd_append_prefix_body_steps_coefficient + S (ff_coefficient_ph_bd_append_prefix_body_steps) = S ((S (ff_i_ph_bd_append_prefix_body_steps)) * x1)) /\ exists fs_q_ph_bd_append_prefix_body_steps_coefficient. x = fs_q_ph_bd_append_prefix_body_steps_coefficient * S ((S (ff_i_ph_bd_append_prefix_body_steps)) * x1) + (ff_coefficient_ph_bd_append_prefix_body_steps))) /\ ((((exists fs_h_ph_bd_append_prefix_body_steps_before. fs_h_ph_bd_append_prefix_body_steps_before + S (ff_previous_ph_bd_append_prefix_body_steps) = S ((S (ff_i_ph_bd_append_prefix_body_steps)) * ff_v_ph_bd_append_prefix)) /\ exists fs_q_ph_bd_append_prefix_body_steps_before. ff_u_ph_bd_append_prefix = fs_q_ph_bd_append_prefix_body_steps_before * S ((S (ff_i_ph_bd_append_prefix_body_steps)) * ff_v_ph_bd_append_prefix) + (ff_previous_ph_bd_append_prefix_body_steps))) /\ ((((exists fs_h_ph_bd_append_prefix_body_steps_after. fs_h_ph_bd_append_prefix_body_steps_after + S (ff_current_ph_bd_append_prefix_body_steps) = S ((S (S ff_i_ph_bd_append_prefix_body_steps)) * ff_v_ph_bd_append_prefix)) /\ exists fs_q_ph_bd_append_prefix_body_steps_after. ff_u_ph_bd_append_prefix = fs_q_ph_bd_append_prefix_body_steps_after * S ((S (S ff_i_ph_bd_append_prefix_body_steps)) * ff_v_ph_bd_append_prefix) + (ff_current_ph_bd_append_prefix_body_steps))) /\ ff_current_ph_bd_append_prefix_body_steps = ff_previous_ph_bd_append_prefix_body_steps * 2 + ff_coefficient_ph_bd_append_prefix_body_steps)))))) - 0024
specialize binary_horner_prefix_recode b - 0025
specialize binary_horner_prefix_recode c - 0026
specialize binary_horner_prefix_recode x - 0027
specialize binary_horner_prefix_recode x1 - 0028
specialize binary_horner_prefix_recode l - 0029
specialize binary_horner_prefix_recode h - 0030
apply binary_horner_prefix_recode - 0031
exact happend_witness_witness_right_right - 0032
exact hhorner - 0033
have hevaluation : exists value. (exists ff_u_ph_bd_append_evaluation ff_v_ph_bd_append_evaluation. ((((exists fs_h_ph_bd_append_evaluation_body_start. fs_h_ph_bd_append_evaluation_body_start + S (0) = S ((S (0)) * ff_v_ph_bd_append_evaluation)) /\ exists fs_q_ph_bd_append_evaluation_body_start. ff_u_ph_bd_append_evaluation = fs_q_ph_bd_append_evaluation_body_start * S ((S (0)) * ff_v_ph_bd_append_evaluation) + (0))) /\ ((((exists fs_h_ph_bd_append_evaluation_body_terminal. fs_h_ph_bd_append_evaluation_body_terminal + S (value) = S ((S (S l)) * ff_v_ph_bd_append_evaluation)) /\ exists fs_q_ph_bd_append_evaluation_body_terminal. ff_u_ph_bd_append_evaluation = fs_q_ph_bd_append_evaluation_body_terminal * S ((S (S l)) * ff_v_ph_bd_append_evaluation) + (value))) /\ forall ff_i_ph_bd_append_evaluation_body_steps. (exists ph_bound_bd_append_evaluation_body_steps. ph_bound_bd_append_evaluation_body_steps + S ff_i_ph_bd_append_evaluation_body_steps = S l) -> exists ff_coefficient_ph_bd_append_evaluation_body_steps ff_previous_ph_bd_append_evaluation_body_steps ff_current_ph_bd_append_evaluation_body_steps. ((((exists fs_h_ph_bd_append_evaluation_body_steps_coefficient. fs_h_ph_bd_append_evaluation_body_steps_coefficient + S (ff_coefficient_ph_bd_append_evaluation_body_steps) = S ((S (ff_i_ph_bd_append_evaluation_body_steps)) * x1)) /\ exists fs_q_ph_bd_append_evaluation_body_steps_coefficient. x = fs_q_ph_bd_append_evaluation_body_steps_coefficient * S ((S (ff_i_ph_bd_append_evaluation_body_steps)) * x1) + (ff_coefficient_ph_bd_append_evaluation_body_steps))) /\ ((((exists fs_h_ph_bd_append_evaluation_body_steps_before. fs_h_ph_bd_append_evaluation_body_steps_before + S (ff_previous_ph_bd_append_evaluation_body_steps) = S ((S (ff_i_ph_bd_append_evaluation_body_steps)) * ff_v_ph_bd_append_evaluation)) /\ exists fs_q_ph_bd_append_evaluation_body_steps_before. ff_u_ph_bd_append_evaluation = fs_q_ph_bd_append_evaluation_body_steps_before * S ((S (ff_i_ph_bd_append_evaluation_body_steps)) * ff_v_ph_bd_append_evaluation) + (ff_previous_ph_bd_append_evaluation_body_steps))) /\ ((((exists fs_h_ph_bd_append_evaluation_body_steps_after. fs_h_ph_bd_append_evaluation_body_steps_after + S (ff_current_ph_bd_append_evaluation_body_steps) = S ((S (S ff_i_ph_bd_append_evaluation_body_steps)) * ff_v_ph_bd_append_evaluation)) /\ exists fs_q_ph_bd_append_evaluation_body_steps_after. ff_u_ph_bd_append_evaluation = fs_q_ph_bd_append_evaluation_body_steps_after * S ((S (S ff_i_ph_bd_append_evaluation_body_steps)) * ff_v_ph_bd_append_evaluation) + (ff_current_ph_bd_append_evaluation_body_steps))) /\ ff_current_ph_bd_append_evaluation_body_steps = ff_previous_ph_bd_append_evaluation_body_steps * 2 + ff_coefficient_ph_bd_append_evaluation_body_steps)))))) - 0034
specialize beta_horner_eval_exists x - 0035
specialize beta_horner_eval_exists x1 - 0036
specialize beta_horner_eval_exists 2 - 0037
specialize beta_horner_eval_exists (S l) - 0038
exact beta_horner_eval_exists - 0039
cases hevaluation - 0040
have hdecompose : exists digit half. ((((exists ff_h_bd_bd_append_last. ff_h_bd_bd_append_last + S (digit) = S ((S (l)) * x1)) /\ exists ff_q_bd_bd_append_last. x = ff_q_bd_bd_append_last * S ((S (l)) * x1) + (digit))) /\ ((exists ff_u_ph_bd_append_half ff_v_ph_bd_append_half. ((((exists fs_h_ph_bd_append_half_body_start. fs_h_ph_bd_append_half_body_start + S (0) = S ((S (0)) * ff_v_ph_bd_append_half)) /\ exists fs_q_ph_bd_append_half_body_start. ff_u_ph_bd_append_half = fs_q_ph_bd_append_half_body_start * S ((S (0)) * ff_v_ph_bd_append_half) + (0))) /\ ((((exists fs_h_ph_bd_append_half_body_terminal. fs_h_ph_bd_append_half_body_terminal + S (half) = S ((S (l)) * ff_v_ph_bd_append_half)) /\ exists fs_q_ph_bd_append_half_body_terminal. ff_u_ph_bd_append_half = fs_q_ph_bd_append_half_body_terminal * S ((S (l)) * ff_v_ph_bd_append_half) + (half))) /\ forall ff_i_ph_bd_append_half_body_steps. (exists ph_bound_bd_append_half_body_steps. ph_bound_bd_append_half_body_steps + S ff_i_ph_bd_append_half_body_steps = l) -> exists ff_coefficient_ph_bd_append_half_body_steps ff_previous_ph_bd_append_half_body_steps ff_current_ph_bd_append_half_body_steps. ((((exists fs_h_ph_bd_append_half_body_steps_coefficient. fs_h_ph_bd_append_half_body_steps_coefficient + S (ff_coefficient_ph_bd_append_half_body_steps) = S ((S (ff_i_ph_bd_append_half_body_steps)) * x1)) /\ exists fs_q_ph_bd_append_half_body_steps_coefficient. x = fs_q_ph_bd_append_half_body_steps_coefficient * S ((S (ff_i_ph_bd_append_half_body_steps)) * x1) + (ff_coefficient_ph_bd_append_half_body_steps))) /\ ((((exists fs_h_ph_bd_append_half_body_steps_before. fs_h_ph_bd_append_half_body_steps_before + S (ff_previous_ph_bd_append_half_body_steps) = S ((S (ff_i_ph_bd_append_half_body_steps)) * ff_v_ph_bd_append_half)) /\ exists fs_q_ph_bd_append_half_body_steps_before. ff_u_ph_bd_append_half = fs_q_ph_bd_append_half_body_steps_before * S ((S (ff_i_ph_bd_append_half_body_steps)) * ff_v_ph_bd_append_half) + (ff_previous_ph_bd_append_half_body_steps))) /\ ((((exists fs_h_ph_bd_append_half_body_steps_after. fs_h_ph_bd_append_half_body_steps_after + S (ff_current_ph_bd_append_half_body_steps) = S ((S (S ff_i_ph_bd_append_half_body_steps)) * ff_v_ph_bd_append_half)) /\ exists fs_q_ph_bd_append_half_body_steps_after. ff_u_ph_bd_append_half = fs_q_ph_bd_append_half_body_steps_after * S ((S (S ff_i_ph_bd_append_half_body_steps)) * ff_v_ph_bd_append_half) + (ff_current_ph_bd_append_half_body_steps))) /\ ff_current_ph_bd_append_half_body_steps = ff_previous_ph_bd_append_half_body_steps * 2 + ff_coefficient_ph_bd_append_half_body_steps)))))) /\ x2 = half * 2 + digit)) - 0041
specialize beta_horner_eval_successor_decompose x - 0042
specialize beta_horner_eval_successor_decompose x1 - 0043
specialize beta_horner_eval_successor_decompose 2 - 0044
specialize beta_horner_eval_successor_decompose l - 0045
specialize beta_horner_eval_successor_decompose x2 - 0046
apply beta_horner_eval_successor_decompose - 0047
exact hevaluation_witness - 0048
cases hdecompose - 0049
cases hdecompose_witness - 0050
cases hdecompose_witness_witness - 0051
cases hdecompose_witness_witness_right - 0052
have hlast : x3 = d - 0053
specialize beta_at_unique x - 0054
specialize beta_at_unique x1 - 0055
specialize beta_at_unique l - 0056
specialize beta_at_unique x3 - 0057
specialize beta_at_unique d - 0058
apply beta_at_unique - 0059
exact hdecompose_witness_witness_left - 0060
exact happend_witness_witness_left - 0061
have hhalf : x4 = h - 0062
specialize beta_horner_eval_functional x - 0063
specialize beta_horner_eval_functional x1 - 0064
specialize beta_horner_eval_functional 2 - 0065
specialize beta_horner_eval_functional l - 0066
specialize beta_horner_eval_functional x4 - 0067
specialize beta_horner_eval_functional h - 0068
apply beta_horner_eval_functional - 0069
exact hdecompose_witness_witness_right_left - 0070
exact hprefix - 0071
have hdouble : h * 2 = h + h - 0072
trans 2 * h - 0073
specialize mul_comm h - 0074
specialize mul_comm 2 - 0075
exact mul_comm - 0076
specialize two_mul_eq_add_self h - 0077
exact two_mul_eq_add_self - 0078
rewrite hhalf at hdecompose_witness_witness_right_right - 0079
rewrite hlast at hdecompose_witness_witness_right_right - 0080
rewrite hdouble at hdecompose_witness_witness_right_right - 0081
have hvalue : x2 = n - 0082
trans (h + h) + d - 0083
exact hdecompose_witness_witness_right_right - 0084
symm - 0085
exact htarget - 0086
exists x - 0087
exists x1 - 0088
split - 0089
exact happend_witness_witness_right_left - 0090
rewrite <- hvalue - 0091
rewrite <- hvalue - 0092
exact hevaluation_witness
Separate complete second-wave branches: Full T13 proof · Alpha v27.