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 f p q. (exists gap. gap + S e = f) -> (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)))))))) -> (exists pa_b_bl_later_power pa_c_bl_later_power. ((forall pa_i_bl_later_power_repeat. (exists pa_lt_bl_later_power_repeat_bound. pa_lt_bl_later_power_repeat_bound + S pa_i_bl_later_power_repeat = f) -> (((exists pa_h_bl_later_power_repeat_decoded. pa_h_bl_later_power_repeat_decoded + S (2) = S ((S (pa_i_bl_later_power_repeat)) * pa_c_bl_later_power)) /\ exists pa_q_bl_later_power_repeat_decoded. pa_b_bl_later_power = pa_q_bl_later_power_repeat_decoded * S ((S (pa_i_bl_later_power_repeat)) * pa_c_bl_later_power) + (2)))) /\ (exists pa_u_bl_later_power_product pa_v_bl_later_power_product. ((((exists pa_h_bl_later_power_product_start. pa_h_bl_later_power_product_start + S (1) = S ((S (0)) * pa_v_bl_later_power_product)) /\ exists pa_q_bl_later_power_product_start. pa_u_bl_later_power_product = pa_q_bl_later_power_product_start * S ((S (0)) * pa_v_bl_later_power_product) + (1))) /\ ((((exists pa_h_bl_later_power_product_terminal. pa_h_bl_later_power_product_terminal + S (q) = S ((S (f)) * pa_v_bl_later_power_product)) /\ exists pa_q_bl_later_power_product_terminal. pa_u_bl_later_power_product = pa_q_bl_later_power_product_terminal * S ((S (f)) * pa_v_bl_later_power_product) + (q))) /\ forall pa_i_bl_later_power_product. (exists pa_lt_bl_later_power_product_bound. pa_lt_bl_later_power_product_bound + S pa_i_bl_later_power_product = f) -> exists pa_p_bl_later_power_product pa_r_bl_later_power_product pa_s_bl_later_power_product. ((((exists pa_h_bl_later_power_product_factor. pa_h_bl_later_power_product_factor + S (pa_p_bl_later_power_product) = S ((S (pa_i_bl_later_power_product)) * pa_c_bl_later_power)) /\ exists pa_q_bl_later_power_product_factor. pa_b_bl_later_power = pa_q_bl_later_power_product_factor * S ((S (pa_i_bl_later_power_product)) * pa_c_bl_later_power) + (pa_p_bl_later_power_product))) /\ ((((exists pa_h_bl_later_power_product_partial. pa_h_bl_later_power_product_partial + S (pa_r_bl_later_power_product) = S ((S (pa_i_bl_later_power_product)) * pa_v_bl_later_power_product)) /\ exists pa_q_bl_later_power_product_partial. pa_u_bl_later_power_product = pa_q_bl_later_power_product_partial * S ((S (pa_i_bl_later_power_product)) * pa_v_bl_later_power_product) + (pa_r_bl_later_power_product))) /\ ((((exists pa_h_bl_later_power_product_successor. pa_h_bl_later_power_product_successor + S (pa_s_bl_later_power_product) = S ((S (S pa_i_bl_later_power_product)) * pa_v_bl_later_power_product)) /\ exists pa_q_bl_later_power_product_successor. pa_u_bl_later_power_product = pa_q_bl_later_power_product_successor * S ((S (S pa_i_bl_later_power_product)) * pa_v_bl_later_power_product) + (pa_s_bl_later_power_product))) /\ pa_s_bl_later_power_product = pa_r_bl_later_power_product * pa_p_bl_later_power_product)))))))) -> exists gap. gap + S p = qConstructive proof overview
Generated structural guide
Strictly ordered exponents have strictly ordered powers of two.
The unchanged tactic script uses 4 declared prerequisites and contains 33 exact native proof lines.
Alpha v34 checked-use · first admitted v22 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
BL0005 binary_power_two_exists BL000A binary_power_two_strict_growth BL000B binary_power_two_exponent_monotone lt_of_lt_of_le 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–7
02Establish hnextL8–10
03Separate the logical casesL11–11
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L11
cases hnext
04Establish hfirstL12–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary power two strict growth.
05Establish hsecondL19–28
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary power two exponent monotone.
- L19
have hsecond : exists gap. gap + x = q - L20
specialize binary_power_two_exponent_monotone (S e) - L21
specialize binary_power_two_exponent_monotone f - L22
specialize binary_power_two_exponent_monotone x - L23
specialize binary_power_two_exponent_monotone q - L24
apply binary_power_two_exponent_monotone - L25
exact horder - L26
exact hnext_witness - L27
exact hq - L28
specialize lt_of_lt_of_le p
Original exact command ledger · 33 lines
- 0001
intro e - 0002
intro f - 0003
intro p - 0004
intro q - 0005
intro horder - 0006
intro hp - 0007
intro hq - 0008
have hnext : exists z. (exists pa_b_bl_strict_next pa_c_bl_strict_next. ((forall pa_i_bl_strict_next_repeat. (exists pa_lt_bl_strict_next_repeat_bound. pa_lt_bl_strict_next_repeat_bound + S pa_i_bl_strict_next_repeat = S e) -> (((exists pa_h_bl_strict_next_repeat_decoded. pa_h_bl_strict_next_repeat_decoded + S (2) = S ((S (pa_i_bl_strict_next_repeat)) * pa_c_bl_strict_next)) /\ exists pa_q_bl_strict_next_repeat_decoded. pa_b_bl_strict_next = pa_q_bl_strict_next_repeat_decoded * S ((S (pa_i_bl_strict_next_repeat)) * pa_c_bl_strict_next) + (2)))) /\ (exists pa_u_bl_strict_next_product pa_v_bl_strict_next_product. ((((exists pa_h_bl_strict_next_product_start. pa_h_bl_strict_next_product_start + S (1) = S ((S (0)) * pa_v_bl_strict_next_product)) /\ exists pa_q_bl_strict_next_product_start. pa_u_bl_strict_next_product = pa_q_bl_strict_next_product_start * S ((S (0)) * pa_v_bl_strict_next_product) + (1))) /\ ((((exists pa_h_bl_strict_next_product_terminal. pa_h_bl_strict_next_product_terminal + S (z) = S ((S (S e)) * pa_v_bl_strict_next_product)) /\ exists pa_q_bl_strict_next_product_terminal. pa_u_bl_strict_next_product = pa_q_bl_strict_next_product_terminal * S ((S (S e)) * pa_v_bl_strict_next_product) + (z))) /\ forall pa_i_bl_strict_next_product. (exists pa_lt_bl_strict_next_product_bound. pa_lt_bl_strict_next_product_bound + S pa_i_bl_strict_next_product = S e) -> exists pa_p_bl_strict_next_product pa_r_bl_strict_next_product pa_s_bl_strict_next_product. ((((exists pa_h_bl_strict_next_product_factor. pa_h_bl_strict_next_product_factor + S (pa_p_bl_strict_next_product) = S ((S (pa_i_bl_strict_next_product)) * pa_c_bl_strict_next)) /\ exists pa_q_bl_strict_next_product_factor. pa_b_bl_strict_next = pa_q_bl_strict_next_product_factor * S ((S (pa_i_bl_strict_next_product)) * pa_c_bl_strict_next) + (pa_p_bl_strict_next_product))) /\ ((((exists pa_h_bl_strict_next_product_partial. pa_h_bl_strict_next_product_partial + S (pa_r_bl_strict_next_product) = S ((S (pa_i_bl_strict_next_product)) * pa_v_bl_strict_next_product)) /\ exists pa_q_bl_strict_next_product_partial. pa_u_bl_strict_next_product = pa_q_bl_strict_next_product_partial * S ((S (pa_i_bl_strict_next_product)) * pa_v_bl_strict_next_product) + (pa_r_bl_strict_next_product))) /\ ((((exists pa_h_bl_strict_next_product_successor. pa_h_bl_strict_next_product_successor + S (pa_s_bl_strict_next_product) = S ((S (S pa_i_bl_strict_next_product)) * pa_v_bl_strict_next_product)) /\ exists pa_q_bl_strict_next_product_successor. pa_u_bl_strict_next_product = pa_q_bl_strict_next_product_successor * S ((S (S pa_i_bl_strict_next_product)) * pa_v_bl_strict_next_product) + (pa_s_bl_strict_next_product))) /\ pa_s_bl_strict_next_product = pa_r_bl_strict_next_product * pa_p_bl_strict_next_product)))))))) - 0009
specialize binary_power_two_exists (S e) - 0010
exact binary_power_two_exists - 0011
cases hnext - 0012
have hfirst : exists gap. gap + S p = x - 0013
specialize binary_power_two_strict_growth e - 0014
specialize binary_power_two_strict_growth p - 0015
specialize binary_power_two_strict_growth x - 0016
apply binary_power_two_strict_growth - 0017
exact hp - 0018
exact hnext_witness - 0019
have hsecond : exists gap. gap + x = q - 0020
specialize binary_power_two_exponent_monotone (S e) - 0021
specialize binary_power_two_exponent_monotone f - 0022
specialize binary_power_two_exponent_monotone x - 0023
specialize binary_power_two_exponent_monotone q - 0024
apply binary_power_two_exponent_monotone - 0025
exact horder - 0026
exact hnext_witness - 0027
exact hq - 0028
specialize lt_of_lt_of_le p - 0029
specialize lt_of_lt_of_le x - 0030
specialize lt_of_lt_of_le q - 0031
apply lt_of_lt_of_le - 0032
exact hfirst - 0033
exact hsecond