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 e p. (exists pa_b_bl_power pa_c_bl_power. ((forall pa_i_bl_power_repeat. (exists pa_lt_bl_power_repeat_bound. pa_lt_bl_power_repeat_bound + S pa_i_bl_power_repeat = e) -> (((exists pa_h_bl_power_repeat_decoded. pa_h_bl_power_repeat_decoded + S (2) = S ((S (pa_i_bl_power_repeat)) * pa_c_bl_power)) /\ exists pa_q_bl_power_repeat_decoded. pa_b_bl_power = pa_q_bl_power_repeat_decoded * S ((S (pa_i_bl_power_repeat)) * pa_c_bl_power) + (2)))) /\ (exists pa_u_bl_power_product pa_v_bl_power_product. ((((exists pa_h_bl_power_product_start. pa_h_bl_power_product_start + S (1) = S ((S (0)) * pa_v_bl_power_product)) /\ exists pa_q_bl_power_product_start. pa_u_bl_power_product = pa_q_bl_power_product_start * S ((S (0)) * pa_v_bl_power_product) + (1))) /\ ((((exists pa_h_bl_power_product_terminal. pa_h_bl_power_product_terminal + S (p) = S ((S (e)) * pa_v_bl_power_product)) /\ exists pa_q_bl_power_product_terminal. pa_u_bl_power_product = pa_q_bl_power_product_terminal * S ((S (e)) * pa_v_bl_power_product) + (p))) /\ forall pa_i_bl_power_product. (exists pa_lt_bl_power_product_bound. pa_lt_bl_power_product_bound + S pa_i_bl_power_product = e) -> exists pa_p_bl_power_product pa_r_bl_power_product pa_s_bl_power_product. ((((exists pa_h_bl_power_product_factor. pa_h_bl_power_product_factor + S (pa_p_bl_power_product) = S ((S (pa_i_bl_power_product)) * pa_c_bl_power)) /\ exists pa_q_bl_power_product_factor. pa_b_bl_power = pa_q_bl_power_product_factor * S ((S (pa_i_bl_power_product)) * pa_c_bl_power) + (pa_p_bl_power_product))) /\ ((((exists pa_h_bl_power_product_partial. pa_h_bl_power_product_partial + S (pa_r_bl_power_product) = S ((S (pa_i_bl_power_product)) * pa_v_bl_power_product)) /\ exists pa_q_bl_power_product_partial. pa_u_bl_power_product = pa_q_bl_power_product_partial * S ((S (pa_i_bl_power_product)) * pa_v_bl_power_product) + (pa_r_bl_power_product))) /\ ((((exists pa_h_bl_power_product_successor. pa_h_bl_power_product_successor + S (pa_s_bl_power_product) = S ((S (S pa_i_bl_power_product)) * pa_v_bl_power_product)) /\ exists pa_q_bl_power_product_successor. pa_u_bl_power_product = pa_q_bl_power_product_successor * S ((S (S pa_i_bl_power_product)) * pa_v_bl_power_product) + (pa_s_bl_power_product))) /\ pa_s_bl_power_product = pa_r_bl_power_product * pa_p_bl_power_product)))))))) -> ((((p) = 0 /\ (S e) = 1) \/ exists ff_exponent_bl_exact ff_lower_bl_exact ff_upper_bl_exact. (((S e) = S ff_exponent_bl_exact) /\ ((exists ff_positive_bl_exact. ff_positive_bl_exact + 1 = (p)) /\ ((exists pa_b_bl_exact_lower pa_c_bl_exact_lower. ((forall pa_i_bl_exact_lower_repeat. (exists pa_lt_bl_exact_lower_repeat_bound. pa_lt_bl_exact_lower_repeat_bound + S pa_i_bl_exact_lower_repeat = ff_exponent_bl_exact) -> (((exists pa_h_bl_exact_lower_repeat_decoded. pa_h_bl_exact_lower_repeat_decoded + S (2) = S ((S (pa_i_bl_exact_lower_repeat)) * pa_c_bl_exact_lower)) /\ exists pa_q_bl_exact_lower_repeat_decoded. pa_b_bl_exact_lower = pa_q_bl_exact_lower_repeat_decoded * S ((S (pa_i_bl_exact_lower_repeat)) * pa_c_bl_exact_lower) + (2)))) /\ (exists pa_u_bl_exact_lower_product pa_v_bl_exact_lower_product. ((((exists pa_h_bl_exact_lower_product_start. pa_h_bl_exact_lower_product_start + S (1) = S ((S (0)) * pa_v_bl_exact_lower_product)) /\ exists pa_q_bl_exact_lower_product_start. pa_u_bl_exact_lower_product = pa_q_bl_exact_lower_product_start * S ((S (0)) * pa_v_bl_exact_lower_product) + (1))) /\ ((((exists pa_h_bl_exact_lower_product_terminal. pa_h_bl_exact_lower_product_terminal + S (ff_lower_bl_exact) = S ((S (ff_exponent_bl_exact)) * pa_v_bl_exact_lower_product)) /\ exists pa_q_bl_exact_lower_product_terminal. pa_u_bl_exact_lower_product = pa_q_bl_exact_lower_product_terminal * S ((S (ff_exponent_bl_exact)) * pa_v_bl_exact_lower_product) + (ff_lower_bl_exact))) /\ forall pa_i_bl_exact_lower_product. (exists pa_lt_bl_exact_lower_product_bound. pa_lt_bl_exact_lower_product_bound + S pa_i_bl_exact_lower_product = ff_exponent_bl_exact) -> exists pa_p_bl_exact_lower_product pa_r_bl_exact_lower_product pa_s_bl_exact_lower_product. ((((exists pa_h_bl_exact_lower_product_factor. pa_h_bl_exact_lower_product_factor + S (pa_p_bl_exact_lower_product) = S ((S (pa_i_bl_exact_lower_product)) * pa_c_bl_exact_lower)) /\ exists pa_q_bl_exact_lower_product_factor. pa_b_bl_exact_lower = pa_q_bl_exact_lower_product_factor * S ((S (pa_i_bl_exact_lower_product)) * pa_c_bl_exact_lower) + (pa_p_bl_exact_lower_product))) /\ ((((exists pa_h_bl_exact_lower_product_partial. pa_h_bl_exact_lower_product_partial + S (pa_r_bl_exact_lower_product) = S ((S (pa_i_bl_exact_lower_product)) * pa_v_bl_exact_lower_product)) /\ exists pa_q_bl_exact_lower_product_partial. pa_u_bl_exact_lower_product = pa_q_bl_exact_lower_product_partial * S ((S (pa_i_bl_exact_lower_product)) * pa_v_bl_exact_lower_product) + (pa_r_bl_exact_lower_product))) /\ ((((exists pa_h_bl_exact_lower_product_successor. pa_h_bl_exact_lower_product_successor + S (pa_s_bl_exact_lower_product) = S ((S (S pa_i_bl_exact_lower_product)) * pa_v_bl_exact_lower_product)) /\ exists pa_q_bl_exact_lower_product_successor. pa_u_bl_exact_lower_product = pa_q_bl_exact_lower_product_successor * S ((S (S pa_i_bl_exact_lower_product)) * pa_v_bl_exact_lower_product) + (pa_s_bl_exact_lower_product))) /\ pa_s_bl_exact_lower_product = pa_r_bl_exact_lower_product * pa_p_bl_exact_lower_product)))))))) /\ ((exists pa_b_bl_exact_upper pa_c_bl_exact_upper. ((forall pa_i_bl_exact_upper_repeat. (exists pa_lt_bl_exact_upper_repeat_bound. pa_lt_bl_exact_upper_repeat_bound + S pa_i_bl_exact_upper_repeat = S e) -> (((exists pa_h_bl_exact_upper_repeat_decoded. pa_h_bl_exact_upper_repeat_decoded + S (2) = S ((S (pa_i_bl_exact_upper_repeat)) * pa_c_bl_exact_upper)) /\ exists pa_q_bl_exact_upper_repeat_decoded. pa_b_bl_exact_upper = pa_q_bl_exact_upper_repeat_decoded * S ((S (pa_i_bl_exact_upper_repeat)) * pa_c_bl_exact_upper) + (2)))) /\ (exists pa_u_bl_exact_upper_product pa_v_bl_exact_upper_product. ((((exists pa_h_bl_exact_upper_product_start. pa_h_bl_exact_upper_product_start + S (1) = S ((S (0)) * pa_v_bl_exact_upper_product)) /\ exists pa_q_bl_exact_upper_product_start. pa_u_bl_exact_upper_product = pa_q_bl_exact_upper_product_start * S ((S (0)) * pa_v_bl_exact_upper_product) + (1))) /\ ((((exists pa_h_bl_exact_upper_product_terminal. pa_h_bl_exact_upper_product_terminal + S (ff_upper_bl_exact) = S ((S (S e)) * pa_v_bl_exact_upper_product)) /\ exists pa_q_bl_exact_upper_product_terminal. pa_u_bl_exact_upper_product = pa_q_bl_exact_upper_product_terminal * S ((S (S e)) * pa_v_bl_exact_upper_product) + (ff_upper_bl_exact))) /\ forall pa_i_bl_exact_upper_product. (exists pa_lt_bl_exact_upper_product_bound. pa_lt_bl_exact_upper_product_bound + S pa_i_bl_exact_upper_product = S e) -> exists pa_p_bl_exact_upper_product pa_r_bl_exact_upper_product pa_s_bl_exact_upper_product. ((((exists pa_h_bl_exact_upper_product_factor. pa_h_bl_exact_upper_product_factor + S (pa_p_bl_exact_upper_product) = S ((S (pa_i_bl_exact_upper_product)) * pa_c_bl_exact_upper)) /\ exists pa_q_bl_exact_upper_product_factor. pa_b_bl_exact_upper = pa_q_bl_exact_upper_product_factor * S ((S (pa_i_bl_exact_upper_product)) * pa_c_bl_exact_upper) + (pa_p_bl_exact_upper_product))) /\ ((((exists pa_h_bl_exact_upper_product_partial. pa_h_bl_exact_upper_product_partial + S (pa_r_bl_exact_upper_product) = S ((S (pa_i_bl_exact_upper_product)) * pa_v_bl_exact_upper_product)) /\ exists pa_q_bl_exact_upper_product_partial. pa_u_bl_exact_upper_product = pa_q_bl_exact_upper_product_partial * S ((S (pa_i_bl_exact_upper_product)) * pa_v_bl_exact_upper_product) + (pa_r_bl_exact_upper_product))) /\ ((((exists pa_h_bl_exact_upper_product_successor. pa_h_bl_exact_upper_product_successor + S (pa_s_bl_exact_upper_product) = S ((S (S pa_i_bl_exact_upper_product)) * pa_v_bl_exact_upper_product)) /\ exists pa_q_bl_exact_upper_product_successor. pa_u_bl_exact_upper_product = pa_q_bl_exact_upper_product_successor * S ((S (S pa_i_bl_exact_upper_product)) * pa_v_bl_exact_upper_product) + (pa_s_bl_exact_upper_product))) /\ pa_s_bl_exact_upper_product = pa_r_bl_exact_upper_product * pa_p_bl_exact_upper_product)))))))) /\ ((exists ff_lower_gap_bl_exact. ff_lower_gap_bl_exact + (ff_lower_bl_exact) = (p)) /\ (exists ff_upper_gap_bl_exact. ff_upper_gap_bl_exact + S (p) = (ff_upper_bl_exact)))))))))Constructive proof overview
Generated structural guide
The exact beta-coded power 2^e has canonical binary length e+1.
The unchanged tactic script uses 5 declared prerequisites and contains 40 exact native proof lines.
Alpha v34 checked-use · first admitted v22 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
BL0008 binary_power_two_nonzero BL0005 binary_power_two_exists BL000A binary_power_two_strict_growth one_le_of_ne_zero Stable theorem; checked-use authorized le_refl 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.
Named ingredients (3)
01Fix variables and assumptionsL1–3
02Establish hnonzeroL4–10
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary power two nonzero.
03Establish hpositiveL11–14
04Establish hnextL15–17
05Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
cases hnext
06Establish hstrictL19–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary power two strict growth.
07Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
right
08Construct an explicit witnessL27–29
09Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
split
10Calculate and transport equalitiesL31–31
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L31
refl
11Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
split
12Use earlier factsL33–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
exact hpositive
13Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
split
14Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
exact hp
15Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
split
16Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
exact hnext_witness
17Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
split
Original exact command ledger · 40 lines
- 0001
intro e - 0002
intro p - 0003
intro hp - 0004
have hnonzero : ~(p = 0) - 0005
intro hzero - 0006
specialize binary_power_two_nonzero e - 0007
specialize binary_power_two_nonzero p - 0008
apply binary_power_two_nonzero - 0009
exact hp - 0010
exact hzero - 0011
have hpositive : exists gap. gap + 1 = p - 0012
specialize one_le_of_ne_zero p - 0013
apply one_le_of_ne_zero - 0014
exact hnonzero - 0015
have hnext : exists q. (exists pa_b_bl_exact_next pa_c_bl_exact_next. ((forall pa_i_bl_exact_next_repeat. (exists pa_lt_bl_exact_next_repeat_bound. pa_lt_bl_exact_next_repeat_bound + S pa_i_bl_exact_next_repeat = S e) -> (((exists pa_h_bl_exact_next_repeat_decoded. pa_h_bl_exact_next_repeat_decoded + S (2) = S ((S (pa_i_bl_exact_next_repeat)) * pa_c_bl_exact_next)) /\ exists pa_q_bl_exact_next_repeat_decoded. pa_b_bl_exact_next = pa_q_bl_exact_next_repeat_decoded * S ((S (pa_i_bl_exact_next_repeat)) * pa_c_bl_exact_next) + (2)))) /\ (exists pa_u_bl_exact_next_product pa_v_bl_exact_next_product. ((((exists pa_h_bl_exact_next_product_start. pa_h_bl_exact_next_product_start + S (1) = S ((S (0)) * pa_v_bl_exact_next_product)) /\ exists pa_q_bl_exact_next_product_start. pa_u_bl_exact_next_product = pa_q_bl_exact_next_product_start * S ((S (0)) * pa_v_bl_exact_next_product) + (1))) /\ ((((exists pa_h_bl_exact_next_product_terminal. pa_h_bl_exact_next_product_terminal + S (q) = S ((S (S e)) * pa_v_bl_exact_next_product)) /\ exists pa_q_bl_exact_next_product_terminal. pa_u_bl_exact_next_product = pa_q_bl_exact_next_product_terminal * S ((S (S e)) * pa_v_bl_exact_next_product) + (q))) /\ forall pa_i_bl_exact_next_product. (exists pa_lt_bl_exact_next_product_bound. pa_lt_bl_exact_next_product_bound + S pa_i_bl_exact_next_product = S e) -> exists pa_p_bl_exact_next_product pa_r_bl_exact_next_product pa_s_bl_exact_next_product. ((((exists pa_h_bl_exact_next_product_factor. pa_h_bl_exact_next_product_factor + S (pa_p_bl_exact_next_product) = S ((S (pa_i_bl_exact_next_product)) * pa_c_bl_exact_next)) /\ exists pa_q_bl_exact_next_product_factor. pa_b_bl_exact_next = pa_q_bl_exact_next_product_factor * S ((S (pa_i_bl_exact_next_product)) * pa_c_bl_exact_next) + (pa_p_bl_exact_next_product))) /\ ((((exists pa_h_bl_exact_next_product_partial. pa_h_bl_exact_next_product_partial + S (pa_r_bl_exact_next_product) = S ((S (pa_i_bl_exact_next_product)) * pa_v_bl_exact_next_product)) /\ exists pa_q_bl_exact_next_product_partial. pa_u_bl_exact_next_product = pa_q_bl_exact_next_product_partial * S ((S (pa_i_bl_exact_next_product)) * pa_v_bl_exact_next_product) + (pa_r_bl_exact_next_product))) /\ ((((exists pa_h_bl_exact_next_product_successor. pa_h_bl_exact_next_product_successor + S (pa_s_bl_exact_next_product) = S ((S (S pa_i_bl_exact_next_product)) * pa_v_bl_exact_next_product)) /\ exists pa_q_bl_exact_next_product_successor. pa_u_bl_exact_next_product = pa_q_bl_exact_next_product_successor * S ((S (S pa_i_bl_exact_next_product)) * pa_v_bl_exact_next_product) + (pa_s_bl_exact_next_product))) /\ pa_s_bl_exact_next_product = pa_r_bl_exact_next_product * pa_p_bl_exact_next_product)))))))) - 0016
specialize binary_power_two_exists (S e) - 0017
exact binary_power_two_exists - 0018
cases hnext - 0019
have hstrict : exists gap. gap + S p = x - 0020
specialize binary_power_two_strict_growth e - 0021
specialize binary_power_two_strict_growth p - 0022
specialize binary_power_two_strict_growth x - 0023
apply binary_power_two_strict_growth - 0024
exact hp - 0025
exact hnext_witness - 0026
right - 0027
exists e - 0028
exists p - 0029
exists x - 0030
split - 0031
refl - 0032
split - 0033
exact hpositive - 0034
split - 0035
exact hp - 0036
split - 0037
exact hnext_witness - 0038
split - 0039
apply le_refl - 0040
exact hstrict