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 n l. ((((n) = 0 /\ (l) = 1) \/ exists ff_exponent_bl_bd_upper_length ff_lower_bl_bd_upper_length ff_upper_bl_bd_upper_length. (((l) = S ff_exponent_bl_bd_upper_length) /\ ((exists ff_positive_bl_bd_upper_length. ff_positive_bl_bd_upper_length + 1 = (n)) /\ ((exists pa_b_bl_bd_upper_length_lower pa_c_bl_bd_upper_length_lower. ((forall pa_i_bl_bd_upper_length_lower_repeat. (exists pa_lt_bl_bd_upper_length_lower_repeat_bound. pa_lt_bl_bd_upper_length_lower_repeat_bound + S pa_i_bl_bd_upper_length_lower_repeat = ff_exponent_bl_bd_upper_length) -> (((exists pa_h_bl_bd_upper_length_lower_repeat_decoded. pa_h_bl_bd_upper_length_lower_repeat_decoded + S (2) = S ((S (pa_i_bl_bd_upper_length_lower_repeat)) * pa_c_bl_bd_upper_length_lower)) /\ exists pa_q_bl_bd_upper_length_lower_repeat_decoded. pa_b_bl_bd_upper_length_lower = pa_q_bl_bd_upper_length_lower_repeat_decoded * S ((S (pa_i_bl_bd_upper_length_lower_repeat)) * pa_c_bl_bd_upper_length_lower) + (2)))) /\ (exists pa_u_bl_bd_upper_length_lower_product pa_v_bl_bd_upper_length_lower_product. ((((exists pa_h_bl_bd_upper_length_lower_product_start. pa_h_bl_bd_upper_length_lower_product_start + S (1) = S ((S (0)) * pa_v_bl_bd_upper_length_lower_product)) /\ exists pa_q_bl_bd_upper_length_lower_product_start. pa_u_bl_bd_upper_length_lower_product = pa_q_bl_bd_upper_length_lower_product_start * S ((S (0)) * pa_v_bl_bd_upper_length_lower_product) + (1))) /\ ((((exists pa_h_bl_bd_upper_length_lower_product_terminal. pa_h_bl_bd_upper_length_lower_product_terminal + S (ff_lower_bl_bd_upper_length) = S ((S (ff_exponent_bl_bd_upper_length)) * pa_v_bl_bd_upper_length_lower_product)) /\ exists pa_q_bl_bd_upper_length_lower_product_terminal. pa_u_bl_bd_upper_length_lower_product = pa_q_bl_bd_upper_length_lower_product_terminal * S ((S (ff_exponent_bl_bd_upper_length)) * pa_v_bl_bd_upper_length_lower_product) + (ff_lower_bl_bd_upper_length))) /\ forall pa_i_bl_bd_upper_length_lower_product. (exists pa_lt_bl_bd_upper_length_lower_product_bound. pa_lt_bl_bd_upper_length_lower_product_bound + S pa_i_bl_bd_upper_length_lower_product = ff_exponent_bl_bd_upper_length) -> exists pa_p_bl_bd_upper_length_lower_product pa_r_bl_bd_upper_length_lower_product pa_s_bl_bd_upper_length_lower_product. ((((exists pa_h_bl_bd_upper_length_lower_product_factor. pa_h_bl_bd_upper_length_lower_product_factor + S (pa_p_bl_bd_upper_length_lower_product) = S ((S (pa_i_bl_bd_upper_length_lower_product)) * pa_c_bl_bd_upper_length_lower)) /\ exists pa_q_bl_bd_upper_length_lower_product_factor. pa_b_bl_bd_upper_length_lower = pa_q_bl_bd_upper_length_lower_product_factor * S ((S (pa_i_bl_bd_upper_length_lower_product)) * pa_c_bl_bd_upper_length_lower) + (pa_p_bl_bd_upper_length_lower_product))) /\ ((((exists pa_h_bl_bd_upper_length_lower_product_partial. pa_h_bl_bd_upper_length_lower_product_partial + S (pa_r_bl_bd_upper_length_lower_product) = S ((S (pa_i_bl_bd_upper_length_lower_product)) * pa_v_bl_bd_upper_length_lower_product)) /\ exists pa_q_bl_bd_upper_length_lower_product_partial. pa_u_bl_bd_upper_length_lower_product = pa_q_bl_bd_upper_length_lower_product_partial * S ((S (pa_i_bl_bd_upper_length_lower_product)) * pa_v_bl_bd_upper_length_lower_product) + (pa_r_bl_bd_upper_length_lower_product))) /\ ((((exists pa_h_bl_bd_upper_length_lower_product_successor. pa_h_bl_bd_upper_length_lower_product_successor + S (pa_s_bl_bd_upper_length_lower_product) = S ((S (S pa_i_bl_bd_upper_length_lower_product)) * pa_v_bl_bd_upper_length_lower_product)) /\ exists pa_q_bl_bd_upper_length_lower_product_successor. pa_u_bl_bd_upper_length_lower_product = pa_q_bl_bd_upper_length_lower_product_successor * S ((S (S pa_i_bl_bd_upper_length_lower_product)) * pa_v_bl_bd_upper_length_lower_product) + (pa_s_bl_bd_upper_length_lower_product))) /\ pa_s_bl_bd_upper_length_lower_product = pa_r_bl_bd_upper_length_lower_product * pa_p_bl_bd_upper_length_lower_product)))))))) /\ ((exists pa_b_bl_bd_upper_length_upper pa_c_bl_bd_upper_length_upper. ((forall pa_i_bl_bd_upper_length_upper_repeat. (exists pa_lt_bl_bd_upper_length_upper_repeat_bound. pa_lt_bl_bd_upper_length_upper_repeat_bound + S pa_i_bl_bd_upper_length_upper_repeat = l) -> (((exists pa_h_bl_bd_upper_length_upper_repeat_decoded. pa_h_bl_bd_upper_length_upper_repeat_decoded + S (2) = S ((S (pa_i_bl_bd_upper_length_upper_repeat)) * pa_c_bl_bd_upper_length_upper)) /\ exists pa_q_bl_bd_upper_length_upper_repeat_decoded. pa_b_bl_bd_upper_length_upper = pa_q_bl_bd_upper_length_upper_repeat_decoded * S ((S (pa_i_bl_bd_upper_length_upper_repeat)) * pa_c_bl_bd_upper_length_upper) + (2)))) /\ (exists pa_u_bl_bd_upper_length_upper_product pa_v_bl_bd_upper_length_upper_product. ((((exists pa_h_bl_bd_upper_length_upper_product_start. pa_h_bl_bd_upper_length_upper_product_start + S (1) = S ((S (0)) * pa_v_bl_bd_upper_length_upper_product)) /\ exists pa_q_bl_bd_upper_length_upper_product_start. pa_u_bl_bd_upper_length_upper_product = pa_q_bl_bd_upper_length_upper_product_start * S ((S (0)) * pa_v_bl_bd_upper_length_upper_product) + (1))) /\ ((((exists pa_h_bl_bd_upper_length_upper_product_terminal. pa_h_bl_bd_upper_length_upper_product_terminal + S (ff_upper_bl_bd_upper_length) = S ((S (l)) * pa_v_bl_bd_upper_length_upper_product)) /\ exists pa_q_bl_bd_upper_length_upper_product_terminal. pa_u_bl_bd_upper_length_upper_product = pa_q_bl_bd_upper_length_upper_product_terminal * S ((S (l)) * pa_v_bl_bd_upper_length_upper_product) + (ff_upper_bl_bd_upper_length))) /\ forall pa_i_bl_bd_upper_length_upper_product. (exists pa_lt_bl_bd_upper_length_upper_product_bound. pa_lt_bl_bd_upper_length_upper_product_bound + S pa_i_bl_bd_upper_length_upper_product = l) -> exists pa_p_bl_bd_upper_length_upper_product pa_r_bl_bd_upper_length_upper_product pa_s_bl_bd_upper_length_upper_product. ((((exists pa_h_bl_bd_upper_length_upper_product_factor. pa_h_bl_bd_upper_length_upper_product_factor + S (pa_p_bl_bd_upper_length_upper_product) = S ((S (pa_i_bl_bd_upper_length_upper_product)) * pa_c_bl_bd_upper_length_upper)) /\ exists pa_q_bl_bd_upper_length_upper_product_factor. pa_b_bl_bd_upper_length_upper = pa_q_bl_bd_upper_length_upper_product_factor * S ((S (pa_i_bl_bd_upper_length_upper_product)) * pa_c_bl_bd_upper_length_upper) + (pa_p_bl_bd_upper_length_upper_product))) /\ ((((exists pa_h_bl_bd_upper_length_upper_product_partial. pa_h_bl_bd_upper_length_upper_product_partial + S (pa_r_bl_bd_upper_length_upper_product) = S ((S (pa_i_bl_bd_upper_length_upper_product)) * pa_v_bl_bd_upper_length_upper_product)) /\ exists pa_q_bl_bd_upper_length_upper_product_partial. pa_u_bl_bd_upper_length_upper_product = pa_q_bl_bd_upper_length_upper_product_partial * S ((S (pa_i_bl_bd_upper_length_upper_product)) * pa_v_bl_bd_upper_length_upper_product) + (pa_r_bl_bd_upper_length_upper_product))) /\ ((((exists pa_h_bl_bd_upper_length_upper_product_successor. pa_h_bl_bd_upper_length_upper_product_successor + S (pa_s_bl_bd_upper_length_upper_product) = S ((S (S pa_i_bl_bd_upper_length_upper_product)) * pa_v_bl_bd_upper_length_upper_product)) /\ exists pa_q_bl_bd_upper_length_upper_product_successor. pa_u_bl_bd_upper_length_upper_product = pa_q_bl_bd_upper_length_upper_product_successor * S ((S (S pa_i_bl_bd_upper_length_upper_product)) * pa_v_bl_bd_upper_length_upper_product) + (pa_s_bl_bd_upper_length_upper_product))) /\ pa_s_bl_bd_upper_length_upper_product = pa_r_bl_bd_upper_length_upper_product * pa_p_bl_bd_upper_length_upper_product)))))))) /\ ((exists ff_lower_gap_bl_bd_upper_length. ff_lower_gap_bl_bd_upper_length + (ff_lower_bl_bd_upper_length) = (n)) /\ (exists ff_upper_gap_bl_bd_upper_length. ff_upper_gap_bl_bd_upper_length + S (n) = (ff_upper_bl_bd_upper_length))))))))) -> exists p. ((exists pa_b_bl_bd_upper_power pa_c_bl_bd_upper_power. ((forall pa_i_bl_bd_upper_power_repeat. (exists pa_lt_bl_bd_upper_power_repeat_bound. pa_lt_bl_bd_upper_power_repeat_bound + S pa_i_bl_bd_upper_power_repeat = l) -> (((exists pa_h_bl_bd_upper_power_repeat_decoded. pa_h_bl_bd_upper_power_repeat_decoded + S (2) = S ((S (pa_i_bl_bd_upper_power_repeat)) * pa_c_bl_bd_upper_power)) /\ exists pa_q_bl_bd_upper_power_repeat_decoded. pa_b_bl_bd_upper_power = pa_q_bl_bd_upper_power_repeat_decoded * S ((S (pa_i_bl_bd_upper_power_repeat)) * pa_c_bl_bd_upper_power) + (2)))) /\ (exists pa_u_bl_bd_upper_power_product pa_v_bl_bd_upper_power_product. ((((exists pa_h_bl_bd_upper_power_product_start. pa_h_bl_bd_upper_power_product_start + S (1) = S ((S (0)) * pa_v_bl_bd_upper_power_product)) /\ exists pa_q_bl_bd_upper_power_product_start. pa_u_bl_bd_upper_power_product = pa_q_bl_bd_upper_power_product_start * S ((S (0)) * pa_v_bl_bd_upper_power_product) + (1))) /\ ((((exists pa_h_bl_bd_upper_power_product_terminal. pa_h_bl_bd_upper_power_product_terminal + S (p) = S ((S (l)) * pa_v_bl_bd_upper_power_product)) /\ exists pa_q_bl_bd_upper_power_product_terminal. pa_u_bl_bd_upper_power_product = pa_q_bl_bd_upper_power_product_terminal * S ((S (l)) * pa_v_bl_bd_upper_power_product) + (p))) /\ forall pa_i_bl_bd_upper_power_product. (exists pa_lt_bl_bd_upper_power_product_bound. pa_lt_bl_bd_upper_power_product_bound + S pa_i_bl_bd_upper_power_product = l) -> exists pa_p_bl_bd_upper_power_product pa_r_bl_bd_upper_power_product pa_s_bl_bd_upper_power_product. ((((exists pa_h_bl_bd_upper_power_product_factor. pa_h_bl_bd_upper_power_product_factor + S (pa_p_bl_bd_upper_power_product) = S ((S (pa_i_bl_bd_upper_power_product)) * pa_c_bl_bd_upper_power)) /\ exists pa_q_bl_bd_upper_power_product_factor. pa_b_bl_bd_upper_power = pa_q_bl_bd_upper_power_product_factor * S ((S (pa_i_bl_bd_upper_power_product)) * pa_c_bl_bd_upper_power) + (pa_p_bl_bd_upper_power_product))) /\ ((((exists pa_h_bl_bd_upper_power_product_partial. pa_h_bl_bd_upper_power_product_partial + S (pa_r_bl_bd_upper_power_product) = S ((S (pa_i_bl_bd_upper_power_product)) * pa_v_bl_bd_upper_power_product)) /\ exists pa_q_bl_bd_upper_power_product_partial. pa_u_bl_bd_upper_power_product = pa_q_bl_bd_upper_power_product_partial * S ((S (pa_i_bl_bd_upper_power_product)) * pa_v_bl_bd_upper_power_product) + (pa_r_bl_bd_upper_power_product))) /\ ((((exists pa_h_bl_bd_upper_power_product_successor. pa_h_bl_bd_upper_power_product_successor + S (pa_s_bl_bd_upper_power_product) = S ((S (S pa_i_bl_bd_upper_power_product)) * pa_v_bl_bd_upper_power_product)) /\ exists pa_q_bl_bd_upper_power_product_successor. pa_u_bl_bd_upper_power_product = pa_q_bl_bd_upper_power_product_successor * S ((S (S pa_i_bl_bd_upper_power_product)) * pa_v_bl_bd_upper_power_product) + (pa_s_bl_bd_upper_power_product))) /\ pa_s_bl_bd_upper_power_product = pa_r_bl_bd_upper_power_product * pa_p_bl_bd_upper_power_product)))))))) /\ (exists gap. gap + S n = p))Constructive proof overview
Generated structural guide
Every actual BitLen witness supplies the exact beta-coded upper power 2^l and the strict inequality n < 2^l, including zero.
The unchanged tactic script uses 3 declared prerequisites and contains 35 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_exists Alpha theorem; checked-use authorized binary_power_two_nonzero Alpha theorem; checked-use authorized one_le_of_ne_zero Stable 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.
01Fix variables and assumptionsL1–3
02Separate the logical casesL4–5
03Establish hpowerL6–8
04Separate the logical casesL9–9
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L9
cases hpower
05Construct an explicit witnessL10–10
Supply the displayed value, then prove that it has the required property.
- L10
exists x
06Separate the logical casesL11–11
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L11
split
07Use earlier factsL12–12
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L12
exact hpower_witness
08Establish hnonzeroL13–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary power two nonzero.
09Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact hnonzero
10Separate the logical casesL24–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases hlength_right - L25
cases hlength_right_witness - L26
cases hlength_right_witness_witness - L27
cases hlength_right_witness_witness_witness - L28
cases hlength_right_witness_witness_witness_right - L29
cases hlength_right_witness_witness_witness_right_right - L30
cases hlength_right_witness_witness_witness_right_right_right - L31
cases hlength_right_witness_witness_witness_right_right_right_right
11Construct an explicit witnessL32–32
Supply the displayed value, then prove that it has the required property.
- L32
exists x2
12Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
split
Original exact command ledger · 35 lines
- 0001
intro n - 0002
intro l - 0003
intro hlength - 0004
cases hlength - 0005
cases hlength_left - 0006
have hpower : exists value. (exists pa_b_bl_bd_zero_upper pa_c_bl_bd_zero_upper. ((forall pa_i_bl_bd_zero_upper_repeat. (exists pa_lt_bl_bd_zero_upper_repeat_bound. pa_lt_bl_bd_zero_upper_repeat_bound + S pa_i_bl_bd_zero_upper_repeat = l) -> (((exists pa_h_bl_bd_zero_upper_repeat_decoded. pa_h_bl_bd_zero_upper_repeat_decoded + S (2) = S ((S (pa_i_bl_bd_zero_upper_repeat)) * pa_c_bl_bd_zero_upper)) /\ exists pa_q_bl_bd_zero_upper_repeat_decoded. pa_b_bl_bd_zero_upper = pa_q_bl_bd_zero_upper_repeat_decoded * S ((S (pa_i_bl_bd_zero_upper_repeat)) * pa_c_bl_bd_zero_upper) + (2)))) /\ (exists pa_u_bl_bd_zero_upper_product pa_v_bl_bd_zero_upper_product. ((((exists pa_h_bl_bd_zero_upper_product_start. pa_h_bl_bd_zero_upper_product_start + S (1) = S ((S (0)) * pa_v_bl_bd_zero_upper_product)) /\ exists pa_q_bl_bd_zero_upper_product_start. pa_u_bl_bd_zero_upper_product = pa_q_bl_bd_zero_upper_product_start * S ((S (0)) * pa_v_bl_bd_zero_upper_product) + (1))) /\ ((((exists pa_h_bl_bd_zero_upper_product_terminal. pa_h_bl_bd_zero_upper_product_terminal + S (value) = S ((S (l)) * pa_v_bl_bd_zero_upper_product)) /\ exists pa_q_bl_bd_zero_upper_product_terminal. pa_u_bl_bd_zero_upper_product = pa_q_bl_bd_zero_upper_product_terminal * S ((S (l)) * pa_v_bl_bd_zero_upper_product) + (value))) /\ forall pa_i_bl_bd_zero_upper_product. (exists pa_lt_bl_bd_zero_upper_product_bound. pa_lt_bl_bd_zero_upper_product_bound + S pa_i_bl_bd_zero_upper_product = l) -> exists pa_p_bl_bd_zero_upper_product pa_r_bl_bd_zero_upper_product pa_s_bl_bd_zero_upper_product. ((((exists pa_h_bl_bd_zero_upper_product_factor. pa_h_bl_bd_zero_upper_product_factor + S (pa_p_bl_bd_zero_upper_product) = S ((S (pa_i_bl_bd_zero_upper_product)) * pa_c_bl_bd_zero_upper)) /\ exists pa_q_bl_bd_zero_upper_product_factor. pa_b_bl_bd_zero_upper = pa_q_bl_bd_zero_upper_product_factor * S ((S (pa_i_bl_bd_zero_upper_product)) * pa_c_bl_bd_zero_upper) + (pa_p_bl_bd_zero_upper_product))) /\ ((((exists pa_h_bl_bd_zero_upper_product_partial. pa_h_bl_bd_zero_upper_product_partial + S (pa_r_bl_bd_zero_upper_product) = S ((S (pa_i_bl_bd_zero_upper_product)) * pa_v_bl_bd_zero_upper_product)) /\ exists pa_q_bl_bd_zero_upper_product_partial. pa_u_bl_bd_zero_upper_product = pa_q_bl_bd_zero_upper_product_partial * S ((S (pa_i_bl_bd_zero_upper_product)) * pa_v_bl_bd_zero_upper_product) + (pa_r_bl_bd_zero_upper_product))) /\ ((((exists pa_h_bl_bd_zero_upper_product_successor. pa_h_bl_bd_zero_upper_product_successor + S (pa_s_bl_bd_zero_upper_product) = S ((S (S pa_i_bl_bd_zero_upper_product)) * pa_v_bl_bd_zero_upper_product)) /\ exists pa_q_bl_bd_zero_upper_product_successor. pa_u_bl_bd_zero_upper_product = pa_q_bl_bd_zero_upper_product_successor * S ((S (S pa_i_bl_bd_zero_upper_product)) * pa_v_bl_bd_zero_upper_product) + (pa_s_bl_bd_zero_upper_product))) /\ pa_s_bl_bd_zero_upper_product = pa_r_bl_bd_zero_upper_product * pa_p_bl_bd_zero_upper_product)))))))) - 0007
specialize binary_power_two_exists l - 0008
exact binary_power_two_exists - 0009
cases hpower - 0010
exists x - 0011
split - 0012
exact hpower_witness - 0013
have hnonzero : ~(x = 0) - 0014
intro hzero - 0015
specialize binary_power_two_nonzero l - 0016
specialize binary_power_two_nonzero x - 0017
apply binary_power_two_nonzero - 0018
exact hpower_witness - 0019
exact hzero - 0020
rewrite hlength_left_left - 0021
specialize one_le_of_ne_zero x - 0022
apply one_le_of_ne_zero - 0023
exact hnonzero - 0024
cases hlength_right - 0025
cases hlength_right_witness - 0026
cases hlength_right_witness_witness - 0027
cases hlength_right_witness_witness_witness - 0028
cases hlength_right_witness_witness_witness_right - 0029
cases hlength_right_witness_witness_witness_right_right - 0030
cases hlength_right_witness_witness_witness_right_right_right - 0031
cases hlength_right_witness_witness_witness_right_right_right_right - 0032
exists x2 - 0033
split - 0034
exact hlength_right_witness_witness_witness_right_right_right_left - 0035
exact hlength_right_witness_witness_witness_right_right_right_right_right
Separate complete second-wave branches: Full T13 proof · Alpha v27.