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.
The exact G102 milestone is fully proved for every natural exponent and every modulus greater than one, including actual canonical digits, a beta-coded accumulator execution, modular-power correctness, and the formal bound k≤3·BitLen(e)+2. The independent T13 determinant/rank/integer-span substrate is now closed in the separate Alpha-v27 integer-linear-algebra branch. Full T13 proof · Alpha v27
Exact theorem in conservative defined notation
∀ n. ∀ l. BitLen(n,l) → ∃ x. PowTwo(l,x) ∧ Lt(n,x)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 35 lines are the exact independently kernel-checked original script.
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
Establish this local claim before using it. It is not an additional assumption.
- L6
have hpower : ∃ value. PowTwo(l,value)Definitions: PowTwoOriginal native command in the exact edition - L7
specialize binary_power_two_exists l - L8
exact binary_power_two_exists
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 defined 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