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 l p n. (exists pa_b_bl_bd_bounded_power pa_c_bl_bd_bounded_power. ((forall pa_i_bl_bd_bounded_power_repeat. (exists pa_lt_bl_bd_bounded_power_repeat_bound. pa_lt_bl_bd_bounded_power_repeat_bound + S pa_i_bl_bd_bounded_power_repeat = l) -> (((exists pa_h_bl_bd_bounded_power_repeat_decoded. pa_h_bl_bd_bounded_power_repeat_decoded + S (2) = S ((S (pa_i_bl_bd_bounded_power_repeat)) * pa_c_bl_bd_bounded_power)) /\ exists pa_q_bl_bd_bounded_power_repeat_decoded. pa_b_bl_bd_bounded_power = pa_q_bl_bd_bounded_power_repeat_decoded * S ((S (pa_i_bl_bd_bounded_power_repeat)) * pa_c_bl_bd_bounded_power) + (2)))) /\ (exists pa_u_bl_bd_bounded_power_product pa_v_bl_bd_bounded_power_product. ((((exists pa_h_bl_bd_bounded_power_product_start. pa_h_bl_bd_bounded_power_product_start + S (1) = S ((S (0)) * pa_v_bl_bd_bounded_power_product)) /\ exists pa_q_bl_bd_bounded_power_product_start. pa_u_bl_bd_bounded_power_product = pa_q_bl_bd_bounded_power_product_start * S ((S (0)) * pa_v_bl_bd_bounded_power_product) + (1))) /\ ((((exists pa_h_bl_bd_bounded_power_product_terminal. pa_h_bl_bd_bounded_power_product_terminal + S (p) = S ((S (l)) * pa_v_bl_bd_bounded_power_product)) /\ exists pa_q_bl_bd_bounded_power_product_terminal. pa_u_bl_bd_bounded_power_product = pa_q_bl_bd_bounded_power_product_terminal * S ((S (l)) * pa_v_bl_bd_bounded_power_product) + (p))) /\ forall pa_i_bl_bd_bounded_power_product. (exists pa_lt_bl_bd_bounded_power_product_bound. pa_lt_bl_bd_bounded_power_product_bound + S pa_i_bl_bd_bounded_power_product = l) -> exists pa_p_bl_bd_bounded_power_product pa_r_bl_bd_bounded_power_product pa_s_bl_bd_bounded_power_product. ((((exists pa_h_bl_bd_bounded_power_product_factor. pa_h_bl_bd_bounded_power_product_factor + S (pa_p_bl_bd_bounded_power_product) = S ((S (pa_i_bl_bd_bounded_power_product)) * pa_c_bl_bd_bounded_power)) /\ exists pa_q_bl_bd_bounded_power_product_factor. pa_b_bl_bd_bounded_power = pa_q_bl_bd_bounded_power_product_factor * S ((S (pa_i_bl_bd_bounded_power_product)) * pa_c_bl_bd_bounded_power) + (pa_p_bl_bd_bounded_power_product))) /\ ((((exists pa_h_bl_bd_bounded_power_product_partial. pa_h_bl_bd_bounded_power_product_partial + S (pa_r_bl_bd_bounded_power_product) = S ((S (pa_i_bl_bd_bounded_power_product)) * pa_v_bl_bd_bounded_power_product)) /\ exists pa_q_bl_bd_bounded_power_product_partial. pa_u_bl_bd_bounded_power_product = pa_q_bl_bd_bounded_power_product_partial * S ((S (pa_i_bl_bd_bounded_power_product)) * pa_v_bl_bd_bounded_power_product) + (pa_r_bl_bd_bounded_power_product))) /\ ((((exists pa_h_bl_bd_bounded_power_product_successor. pa_h_bl_bd_bounded_power_product_successor + S (pa_s_bl_bd_bounded_power_product) = S ((S (S pa_i_bl_bd_bounded_power_product)) * pa_v_bl_bd_bounded_power_product)) /\ exists pa_q_bl_bd_bounded_power_product_successor. pa_u_bl_bd_bounded_power_product = pa_q_bl_bd_bounded_power_product_successor * S ((S (S pa_i_bl_bd_bounded_power_product)) * pa_v_bl_bd_bounded_power_product) + (pa_s_bl_bd_bounded_power_product))) /\ pa_s_bl_bd_bounded_power_product = pa_r_bl_bd_bounded_power_product * pa_p_bl_bd_bounded_power_product)))))))) -> (exists gap. gap + S n = p) -> exists b c. (((forall ff_index_be_bd_bounded_result_digits ff_digit_be_bd_bounded_result_digits. (exists ff_lt_be_bd_bounded_result_digits_bound. ff_lt_be_bd_bounded_result_digits_bound + S ff_index_be_bd_bounded_result_digits = l) -> (((exists ff_h_be_bd_bounded_result_digits_digit. ff_h_be_bd_bounded_result_digits_digit + S (ff_digit_be_bd_bounded_result_digits) = S ((S (ff_index_be_bd_bounded_result_digits)) * c)) /\ exists ff_q_be_bd_bounded_result_digits_digit. b = ff_q_be_bd_bounded_result_digits_digit * S ((S (ff_index_be_bd_bounded_result_digits)) * c) + (ff_digit_be_bd_bounded_result_digits))) -> (ff_digit_be_bd_bounded_result_digits = 0 \/ ff_digit_be_bd_bounded_result_digits = 1)) /\ (exists ff_u_ph_bd_bounded_result_horner ff_v_ph_bd_bounded_result_horner. ((((exists fs_h_ph_bd_bounded_result_horner_body_start. fs_h_ph_bd_bounded_result_horner_body_start + S (0) = S ((S (0)) * ff_v_ph_bd_bounded_result_horner)) /\ exists fs_q_ph_bd_bounded_result_horner_body_start. ff_u_ph_bd_bounded_result_horner = fs_q_ph_bd_bounded_result_horner_body_start * S ((S (0)) * ff_v_ph_bd_bounded_result_horner) + (0))) /\ ((((exists fs_h_ph_bd_bounded_result_horner_body_terminal. fs_h_ph_bd_bounded_result_horner_body_terminal + S (n) = S ((S (l)) * ff_v_ph_bd_bounded_result_horner)) /\ exists fs_q_ph_bd_bounded_result_horner_body_terminal. ff_u_ph_bd_bounded_result_horner = fs_q_ph_bd_bounded_result_horner_body_terminal * S ((S (l)) * ff_v_ph_bd_bounded_result_horner) + (n))) /\ forall ff_i_ph_bd_bounded_result_horner_body_steps. (exists ph_bound_bd_bounded_result_horner_body_steps. ph_bound_bd_bounded_result_horner_body_steps + S ff_i_ph_bd_bounded_result_horner_body_steps = l) -> exists ff_coefficient_ph_bd_bounded_result_horner_body_steps ff_previous_ph_bd_bounded_result_horner_body_steps ff_current_ph_bd_bounded_result_horner_body_steps. ((((exists fs_h_ph_bd_bounded_result_horner_body_steps_coefficient. fs_h_ph_bd_bounded_result_horner_body_steps_coefficient + S (ff_coefficient_ph_bd_bounded_result_horner_body_steps) = S ((S (ff_i_ph_bd_bounded_result_horner_body_steps)) * c)) /\ exists fs_q_ph_bd_bounded_result_horner_body_steps_coefficient. b = fs_q_ph_bd_bounded_result_horner_body_steps_coefficient * S ((S (ff_i_ph_bd_bounded_result_horner_body_steps)) * c) + (ff_coefficient_ph_bd_bounded_result_horner_body_steps))) /\ ((((exists fs_h_ph_bd_bounded_result_horner_body_steps_before. fs_h_ph_bd_bounded_result_horner_body_steps_before + S (ff_previous_ph_bd_bounded_result_horner_body_steps) = S ((S (ff_i_ph_bd_bounded_result_horner_body_steps)) * ff_v_ph_bd_bounded_result_horner)) /\ exists fs_q_ph_bd_bounded_result_horner_body_steps_before. ff_u_ph_bd_bounded_result_horner = fs_q_ph_bd_bounded_result_horner_body_steps_before * S ((S (ff_i_ph_bd_bounded_result_horner_body_steps)) * ff_v_ph_bd_bounded_result_horner) + (ff_previous_ph_bd_bounded_result_horner_body_steps))) /\ ((((exists fs_h_ph_bd_bounded_result_horner_body_steps_after. fs_h_ph_bd_bounded_result_horner_body_steps_after + S (ff_current_ph_bd_bounded_result_horner_body_steps) = S ((S (S ff_i_ph_bd_bounded_result_horner_body_steps)) * ff_v_ph_bd_bounded_result_horner)) /\ exists fs_q_ph_bd_bounded_result_horner_body_steps_after. ff_u_ph_bd_bounded_result_horner = fs_q_ph_bd_bounded_result_horner_body_steps_after * S ((S (S ff_i_ph_bd_bounded_result_horner_body_steps)) * ff_v_ph_bd_bounded_result_horner) + (ff_current_ph_bd_bounded_result_horner_body_steps))) /\ ff_current_ph_bd_bounded_result_horner_body_steps = ff_previous_ph_bd_bounded_result_horner_body_steps * 2 + ff_coefficient_ph_bd_bounded_result_horner_body_steps))))))))Constructive proof overview
Generated structural guide
Induction on the exact power exponent constructs a genuine length-l beta-coded binary representation of every natural strictly below 2^l.
The unchanged tactic script uses 11 declared prerequisites and contains 97 exact native proof lines.
Alpha v34 checked-use · first admitted v23 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
binary_power_two_zero_value Alpha theorem; checked-use authorized le_of_succ_le_succ Stable theorem; checked-use authorized le_zero Stable theorem; checked-use authorized beta_horner_eval_exists Alpha theorem; checked-use authorized beta_horner_eval_empty Alpha theorem; checked-use authorized binary_digit_prefix_empty Alpha theorem; checked-use authorized binary_power_two_exists Alpha theorem; checked-use authorized binary_power_two_successor_double Alpha theorem; checked-use authorized binary_length_digit_split_exists Alpha theorem; checked-use authorized BD0006 binary_digit_half_below_double BD0005 binary_digit_horner_appendDirect 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)
01Induction on lL1–5
02Establish honeL6–10
03Establish hleL11–15
04Establish hzeroL16–19
05Establish hvalueL20–25
Establish this local claim before using it. It is not an additional assumption.
06Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
cases hvalue
07Establish hevalzeroL27–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner eval empty.
08Establish hequalL34–38
09Construct an explicit witnessL39–40
10Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
split
11Use earlier factsL42–44
12Calculate and transport equalitiesL45–46
13Use earlier factsL47–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
exact hvalue_witness
14Fix variables and assumptionsL48–51
15Establish hpreviousL52–54
16Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
cases hprevious
17Establish hdoubleL56–62
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary power two successor double.
18Establish hsplitL63–65
19Separate the logical casesL66–67
20Establish hhalfL68–76
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary digit half below double.
- L68
have hhalf : exists gap. gap + S x1 = x - L69
specialize binary_digit_half_below_double n - L70
specialize binary_digit_half_below_double x1 - L71
specialize binary_digit_half_below_double x2 - L72
specialize binary_digit_half_below_double x - L73
apply binary_digit_half_below_double - L74
exact hsplit_witness_witness - L75
rewrite hdouble at hbound - L76
exact hbound
21Establish hprefixL77–82
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
22Separate the logical casesL83–86
23Use earlier factsL87–96
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L87
specialize binary_digit_horner_append x3 - L88
specialize binary_digit_horner_append x4 - L89
specialize binary_digit_horner_append l - L90
specialize binary_digit_horner_append x1 - L91
specialize binary_digit_horner_append x2 - L92
specialize binary_digit_horner_append n - L93
apply binary_digit_horner_append - L94
exact hprefix_witness_witness_left - L95
exact hprefix_witness_witness_right - L96
exact hsplit_witness_witness_left
24Use earlier factsL97–97
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L97
exact hsplit_witness_witness_right
Original exact command ledger · 97 lines
- 0001
induction l - 0002
intro p - 0003
intro n - 0004
intro hpower - 0005
intro hbound - 0006
have hone : p = 1 - 0007
specialize binary_power_two_zero_value p - 0008
apply binary_power_two_zero_value - 0009
exact hpower - 0010
rewrite hone at hbound - 0011
have hle : exists gap. gap + n = 0 - 0012
specialize le_of_succ_le_succ n - 0013
specialize le_of_succ_le_succ 0 - 0014
apply le_of_succ_le_succ - 0015
exact hbound - 0016
have hzero : n = 0 - 0017
specialize le_zero n - 0018
apply le_zero - 0019
exact hle - 0020
have hvalue : exists value. (exists ff_u_ph_bd_empty_value ff_v_ph_bd_empty_value. ((((exists fs_h_ph_bd_empty_value_body_start. fs_h_ph_bd_empty_value_body_start + S (0) = S ((S (0)) * ff_v_ph_bd_empty_value)) /\ exists fs_q_ph_bd_empty_value_body_start. ff_u_ph_bd_empty_value = fs_q_ph_bd_empty_value_body_start * S ((S (0)) * ff_v_ph_bd_empty_value) + (0))) /\ ((((exists fs_h_ph_bd_empty_value_body_terminal. fs_h_ph_bd_empty_value_body_terminal + S (value) = S ((S (0)) * ff_v_ph_bd_empty_value)) /\ exists fs_q_ph_bd_empty_value_body_terminal. ff_u_ph_bd_empty_value = fs_q_ph_bd_empty_value_body_terminal * S ((S (0)) * ff_v_ph_bd_empty_value) + (value))) /\ forall ff_i_ph_bd_empty_value_body_steps. (exists ph_bound_bd_empty_value_body_steps. ph_bound_bd_empty_value_body_steps + S ff_i_ph_bd_empty_value_body_steps = 0) -> exists ff_coefficient_ph_bd_empty_value_body_steps ff_previous_ph_bd_empty_value_body_steps ff_current_ph_bd_empty_value_body_steps. ((((exists fs_h_ph_bd_empty_value_body_steps_coefficient. fs_h_ph_bd_empty_value_body_steps_coefficient + S (ff_coefficient_ph_bd_empty_value_body_steps) = S ((S (ff_i_ph_bd_empty_value_body_steps)) * 0)) /\ exists fs_q_ph_bd_empty_value_body_steps_coefficient. 0 = fs_q_ph_bd_empty_value_body_steps_coefficient * S ((S (ff_i_ph_bd_empty_value_body_steps)) * 0) + (ff_coefficient_ph_bd_empty_value_body_steps))) /\ ((((exists fs_h_ph_bd_empty_value_body_steps_before. fs_h_ph_bd_empty_value_body_steps_before + S (ff_previous_ph_bd_empty_value_body_steps) = S ((S (ff_i_ph_bd_empty_value_body_steps)) * ff_v_ph_bd_empty_value)) /\ exists fs_q_ph_bd_empty_value_body_steps_before. ff_u_ph_bd_empty_value = fs_q_ph_bd_empty_value_body_steps_before * S ((S (ff_i_ph_bd_empty_value_body_steps)) * ff_v_ph_bd_empty_value) + (ff_previous_ph_bd_empty_value_body_steps))) /\ ((((exists fs_h_ph_bd_empty_value_body_steps_after. fs_h_ph_bd_empty_value_body_steps_after + S (ff_current_ph_bd_empty_value_body_steps) = S ((S (S ff_i_ph_bd_empty_value_body_steps)) * ff_v_ph_bd_empty_value)) /\ exists fs_q_ph_bd_empty_value_body_steps_after. ff_u_ph_bd_empty_value = fs_q_ph_bd_empty_value_body_steps_after * S ((S (S ff_i_ph_bd_empty_value_body_steps)) * ff_v_ph_bd_empty_value) + (ff_current_ph_bd_empty_value_body_steps))) /\ ff_current_ph_bd_empty_value_body_steps = ff_previous_ph_bd_empty_value_body_steps * 2 + ff_coefficient_ph_bd_empty_value_body_steps)))))) - 0021
specialize beta_horner_eval_exists 0 - 0022
specialize beta_horner_eval_exists 0 - 0023
specialize beta_horner_eval_exists 2 - 0024
specialize beta_horner_eval_exists 0 - 0025
exact beta_horner_eval_exists - 0026
cases hvalue - 0027
have hevalzero : x = 0 - 0028
specialize beta_horner_eval_empty 0 - 0029
specialize beta_horner_eval_empty 0 - 0030
specialize beta_horner_eval_empty 2 - 0031
specialize beta_horner_eval_empty x - 0032
apply beta_horner_eval_empty - 0033
exact hvalue_witness - 0034
have hequal : x = n - 0035
trans 0 - 0036
exact hevalzero - 0037
symm - 0038
exact hzero - 0039
exists 0 - 0040
exists 0 - 0041
split - 0042
specialize binary_digit_prefix_empty 0 - 0043
specialize binary_digit_prefix_empty 0 - 0044
exact binary_digit_prefix_empty - 0045
rewrite <- hequal - 0046
rewrite <- hequal - 0047
exact hvalue_witness - 0048
intro p - 0049
intro n - 0050
intro hpower - 0051
intro hbound - 0052
have hprevious : exists value. (exists pa_b_bl_bd_previous_power pa_c_bl_bd_previous_power. ((forall pa_i_bl_bd_previous_power_repeat. (exists pa_lt_bl_bd_previous_power_repeat_bound. pa_lt_bl_bd_previous_power_repeat_bound + S pa_i_bl_bd_previous_power_repeat = l) -> (((exists pa_h_bl_bd_previous_power_repeat_decoded. pa_h_bl_bd_previous_power_repeat_decoded + S (2) = S ((S (pa_i_bl_bd_previous_power_repeat)) * pa_c_bl_bd_previous_power)) /\ exists pa_q_bl_bd_previous_power_repeat_decoded. pa_b_bl_bd_previous_power = pa_q_bl_bd_previous_power_repeat_decoded * S ((S (pa_i_bl_bd_previous_power_repeat)) * pa_c_bl_bd_previous_power) + (2)))) /\ (exists pa_u_bl_bd_previous_power_product pa_v_bl_bd_previous_power_product. ((((exists pa_h_bl_bd_previous_power_product_start. pa_h_bl_bd_previous_power_product_start + S (1) = S ((S (0)) * pa_v_bl_bd_previous_power_product)) /\ exists pa_q_bl_bd_previous_power_product_start. pa_u_bl_bd_previous_power_product = pa_q_bl_bd_previous_power_product_start * S ((S (0)) * pa_v_bl_bd_previous_power_product) + (1))) /\ ((((exists pa_h_bl_bd_previous_power_product_terminal. pa_h_bl_bd_previous_power_product_terminal + S (value) = S ((S (l)) * pa_v_bl_bd_previous_power_product)) /\ exists pa_q_bl_bd_previous_power_product_terminal. pa_u_bl_bd_previous_power_product = pa_q_bl_bd_previous_power_product_terminal * S ((S (l)) * pa_v_bl_bd_previous_power_product) + (value))) /\ forall pa_i_bl_bd_previous_power_product. (exists pa_lt_bl_bd_previous_power_product_bound. pa_lt_bl_bd_previous_power_product_bound + S pa_i_bl_bd_previous_power_product = l) -> exists pa_p_bl_bd_previous_power_product pa_r_bl_bd_previous_power_product pa_s_bl_bd_previous_power_product. ((((exists pa_h_bl_bd_previous_power_product_factor. pa_h_bl_bd_previous_power_product_factor + S (pa_p_bl_bd_previous_power_product) = S ((S (pa_i_bl_bd_previous_power_product)) * pa_c_bl_bd_previous_power)) /\ exists pa_q_bl_bd_previous_power_product_factor. pa_b_bl_bd_previous_power = pa_q_bl_bd_previous_power_product_factor * S ((S (pa_i_bl_bd_previous_power_product)) * pa_c_bl_bd_previous_power) + (pa_p_bl_bd_previous_power_product))) /\ ((((exists pa_h_bl_bd_previous_power_product_partial. pa_h_bl_bd_previous_power_product_partial + S (pa_r_bl_bd_previous_power_product) = S ((S (pa_i_bl_bd_previous_power_product)) * pa_v_bl_bd_previous_power_product)) /\ exists pa_q_bl_bd_previous_power_product_partial. pa_u_bl_bd_previous_power_product = pa_q_bl_bd_previous_power_product_partial * S ((S (pa_i_bl_bd_previous_power_product)) * pa_v_bl_bd_previous_power_product) + (pa_r_bl_bd_previous_power_product))) /\ ((((exists pa_h_bl_bd_previous_power_product_successor. pa_h_bl_bd_previous_power_product_successor + S (pa_s_bl_bd_previous_power_product) = S ((S (S pa_i_bl_bd_previous_power_product)) * pa_v_bl_bd_previous_power_product)) /\ exists pa_q_bl_bd_previous_power_product_successor. pa_u_bl_bd_previous_power_product = pa_q_bl_bd_previous_power_product_successor * S ((S (S pa_i_bl_bd_previous_power_product)) * pa_v_bl_bd_previous_power_product) + (pa_s_bl_bd_previous_power_product))) /\ pa_s_bl_bd_previous_power_product = pa_r_bl_bd_previous_power_product * pa_p_bl_bd_previous_power_product)))))))) - 0053
specialize binary_power_two_exists l - 0054
exact binary_power_two_exists - 0055
cases hprevious - 0056
have hdouble : p = x + x - 0057
specialize binary_power_two_successor_double l - 0058
specialize binary_power_two_successor_double x - 0059
specialize binary_power_two_successor_double p - 0060
apply binary_power_two_successor_double - 0061
exact hprevious_witness - 0062
exact hpower - 0063
have hsplit : exists half digit. ((((digit = 0) \/ (digit = 1)) /\ n = (half + half) + digit)) - 0064
specialize binary_length_digit_split_exists n - 0065
exact binary_length_digit_split_exists - 0066
cases hsplit - 0067
cases hsplit_witness - 0068
have hhalf : exists gap. gap + S x1 = x - 0069
specialize binary_digit_half_below_double n - 0070
specialize binary_digit_half_below_double x1 - 0071
specialize binary_digit_half_below_double x2 - 0072
specialize binary_digit_half_below_double x - 0073
apply binary_digit_half_below_double - 0074
exact hsplit_witness_witness - 0075
rewrite hdouble at hbound - 0076
exact hbound - 0077
have hprefix : exists b c. (((forall ff_index_be_bd_bounded_predecessor_digits ff_digit_be_bd_bounded_predecessor_digits. (exists ff_lt_be_bd_bounded_predecessor_digits_bound. ff_lt_be_bd_bounded_predecessor_digits_bound + S ff_index_be_bd_bounded_predecessor_digits = l) -> (((exists ff_h_be_bd_bounded_predecessor_digits_digit. ff_h_be_bd_bounded_predecessor_digits_digit + S (ff_digit_be_bd_bounded_predecessor_digits) = S ((S (ff_index_be_bd_bounded_predecessor_digits)) * c)) /\ exists ff_q_be_bd_bounded_predecessor_digits_digit. b = ff_q_be_bd_bounded_predecessor_digits_digit * S ((S (ff_index_be_bd_bounded_predecessor_digits)) * c) + (ff_digit_be_bd_bounded_predecessor_digits))) -> (ff_digit_be_bd_bounded_predecessor_digits = 0 \/ ff_digit_be_bd_bounded_predecessor_digits = 1)) /\ (exists ff_u_ph_bd_bounded_predecessor_horner ff_v_ph_bd_bounded_predecessor_horner. ((((exists fs_h_ph_bd_bounded_predecessor_horner_body_start. fs_h_ph_bd_bounded_predecessor_horner_body_start + S (0) = S ((S (0)) * ff_v_ph_bd_bounded_predecessor_horner)) /\ exists fs_q_ph_bd_bounded_predecessor_horner_body_start. ff_u_ph_bd_bounded_predecessor_horner = fs_q_ph_bd_bounded_predecessor_horner_body_start * S ((S (0)) * ff_v_ph_bd_bounded_predecessor_horner) + (0))) /\ ((((exists fs_h_ph_bd_bounded_predecessor_horner_body_terminal. fs_h_ph_bd_bounded_predecessor_horner_body_terminal + S (x1) = S ((S (l)) * ff_v_ph_bd_bounded_predecessor_horner)) /\ exists fs_q_ph_bd_bounded_predecessor_horner_body_terminal. ff_u_ph_bd_bounded_predecessor_horner = fs_q_ph_bd_bounded_predecessor_horner_body_terminal * S ((S (l)) * ff_v_ph_bd_bounded_predecessor_horner) + (x1))) /\ forall ff_i_ph_bd_bounded_predecessor_horner_body_steps. (exists ph_bound_bd_bounded_predecessor_horner_body_steps. ph_bound_bd_bounded_predecessor_horner_body_steps + S ff_i_ph_bd_bounded_predecessor_horner_body_steps = l) -> exists ff_coefficient_ph_bd_bounded_predecessor_horner_body_steps ff_previous_ph_bd_bounded_predecessor_horner_body_steps ff_current_ph_bd_bounded_predecessor_horner_body_steps. ((((exists fs_h_ph_bd_bounded_predecessor_horner_body_steps_coefficient. fs_h_ph_bd_bounded_predecessor_horner_body_steps_coefficient + S (ff_coefficient_ph_bd_bounded_predecessor_horner_body_steps) = S ((S (ff_i_ph_bd_bounded_predecessor_horner_body_steps)) * c)) /\ exists fs_q_ph_bd_bounded_predecessor_horner_body_steps_coefficient. b = fs_q_ph_bd_bounded_predecessor_horner_body_steps_coefficient * S ((S (ff_i_ph_bd_bounded_predecessor_horner_body_steps)) * c) + (ff_coefficient_ph_bd_bounded_predecessor_horner_body_steps))) /\ ((((exists fs_h_ph_bd_bounded_predecessor_horner_body_steps_before. fs_h_ph_bd_bounded_predecessor_horner_body_steps_before + S (ff_previous_ph_bd_bounded_predecessor_horner_body_steps) = S ((S (ff_i_ph_bd_bounded_predecessor_horner_body_steps)) * ff_v_ph_bd_bounded_predecessor_horner)) /\ exists fs_q_ph_bd_bounded_predecessor_horner_body_steps_before. ff_u_ph_bd_bounded_predecessor_horner = fs_q_ph_bd_bounded_predecessor_horner_body_steps_before * S ((S (ff_i_ph_bd_bounded_predecessor_horner_body_steps)) * ff_v_ph_bd_bounded_predecessor_horner) + (ff_previous_ph_bd_bounded_predecessor_horner_body_steps))) /\ ((((exists fs_h_ph_bd_bounded_predecessor_horner_body_steps_after. fs_h_ph_bd_bounded_predecessor_horner_body_steps_after + S (ff_current_ph_bd_bounded_predecessor_horner_body_steps) = S ((S (S ff_i_ph_bd_bounded_predecessor_horner_body_steps)) * ff_v_ph_bd_bounded_predecessor_horner)) /\ exists fs_q_ph_bd_bounded_predecessor_horner_body_steps_after. ff_u_ph_bd_bounded_predecessor_horner = fs_q_ph_bd_bounded_predecessor_horner_body_steps_after * S ((S (S ff_i_ph_bd_bounded_predecessor_horner_body_steps)) * ff_v_ph_bd_bounded_predecessor_horner) + (ff_current_ph_bd_bounded_predecessor_horner_body_steps))) /\ ff_current_ph_bd_bounded_predecessor_horner_body_steps = ff_previous_ph_bd_bounded_predecessor_horner_body_steps * 2 + ff_coefficient_ph_bd_bounded_predecessor_horner_body_steps)))))))) - 0078
specialize IH x - 0079
specialize IH x1 - 0080
apply IH - 0081
exact hprevious_witness - 0082
exact hhalf - 0083
cases hprefix - 0084
cases hprefix_witness - 0085
cases hprefix_witness_witness - 0086
cases hsplit_witness_witness - 0087
specialize binary_digit_horner_append x3 - 0088
specialize binary_digit_horner_append x4 - 0089
specialize binary_digit_horner_append l - 0090
specialize binary_digit_horner_append x1 - 0091
specialize binary_digit_horner_append x2 - 0092
specialize binary_digit_horner_append n - 0093
apply binary_digit_horner_append - 0094
exact hprefix_witness_witness_left - 0095
exact hprefix_witness_witness_right - 0096
exact hsplit_witness_witness_left - 0097
exact hsplit_witness_witness_right
Separate complete second-wave branches: Full T13 proof · Alpha v27.