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.
G102 was OPEN when this family was first admitted in Alpha v21. It is now CLOSED in Alpha v23: every arbitrary exponent has actual canonical beta-coded digits, a complete modular execution, and exact counted bound operations≤3*BitLen(e)+2.
Exact theorem in conservative defined notation
∀ a. ∀ h. ∀ e. ∀ x. ∀ z. BinaryOddPower(a,h,e,x,z) → z = x · x · a
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 40 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.
Named ingredients (1)
01Fix variables and assumptionsL1–6
02Separate the logical casesL7–8
03Establish hdoubleL9–12
04Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
cases hdouble
05Establish hsquareL14–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary exponent doubled power.
06Separate the logical casesL21–21
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L21
split
07Calculate and transport equalitiesL22–22
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L22
refl
08Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
split
09Use earlier factsL24–25
10Establish hsuccessorL26–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pow successor pair mul.
- L26
have hsuccessor : z = x1 * a - L27
specialize pow_successor_pair_mul a - L28
specialize pow_successor_pair_mul (h + h) - L29
specialize pow_successor_pair_mul e - L30
specialize pow_successor_pair_mul x1 - L31
specialize pow_successor_pair_mul z - L32
apply pow_successor_pair_mul - L33
exact hodd_left - L34
exact hdouble_witness - L35
exact hodd_right_right
11Calculate and transport equalitiesL36–36
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L36
trans x1 * a
12Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
exact hsuccessor
13Calculate and transport equalitiesL38–38
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L38
congr
14Use earlier factsL39–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
exact hsquare
15Calculate and transport equalitiesL40–40
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L40
refl
Original defined command ledger · 40 lines
- 0001
intro a - 0002
intro h - 0003
intro e - 0004
intro x - 0005
intro z - 0006
intro hodd - 0007
cases hodd - 0008
cases hodd_right - 0009
have hdouble : exists y. (exists pa_b_binary_odd_double pa_c_binary_odd_double. ((forall pa_i_binary_odd_double_repeat. (exists pa_lt_binary_odd_double_repeat_bound. pa_lt_binary_odd_double_repeat_bound + S pa_i_binary_odd_double_repeat = h + h) -> (((exists pa_h_binary_odd_double_repeat_decoded. pa_h_binary_odd_double_repeat_decoded + S (a) = S ((S (pa_i_binary_odd_double_repeat)) * pa_c_binary_odd_double)) /\ exists pa_q_binary_odd_double_repeat_decoded. pa_b_binary_odd_double = pa_q_binary_odd_double_repeat_decoded * S ((S (pa_i_binary_odd_double_repeat)) * pa_c_binary_odd_double) + (a)))) /\ (exists pa_u_binary_odd_double_product pa_v_binary_odd_double_product. ((((exists pa_h_binary_odd_double_product_start. pa_h_binary_odd_double_product_start + S (1) = S ((S (0)) * pa_v_binary_odd_double_product)) /\ exists pa_q_binary_odd_double_product_start. pa_u_binary_odd_double_product = pa_q_binary_odd_double_product_start * S ((S (0)) * pa_v_binary_odd_double_product) + (1))) /\ ((((exists pa_h_binary_odd_double_product_terminal. pa_h_binary_odd_double_product_terminal + S (y) = S ((S (h + h)) * pa_v_binary_odd_double_product)) /\ exists pa_q_binary_odd_double_product_terminal. pa_u_binary_odd_double_product = pa_q_binary_odd_double_product_terminal * S ((S (h + h)) * pa_v_binary_odd_double_product) + (y))) /\ forall pa_i_binary_odd_double_product. (exists pa_lt_binary_odd_double_product_bound. pa_lt_binary_odd_double_product_bound + S pa_i_binary_odd_double_product = h + h) -> exists pa_p_binary_odd_double_product pa_r_binary_odd_double_product pa_s_binary_odd_double_product. ((((exists pa_h_binary_odd_double_product_factor. pa_h_binary_odd_double_product_factor + S (pa_p_binary_odd_double_product) = S ((S (pa_i_binary_odd_double_product)) * pa_c_binary_odd_double)) /\ exists pa_q_binary_odd_double_product_factor. pa_b_binary_odd_double = pa_q_binary_odd_double_product_factor * S ((S (pa_i_binary_odd_double_product)) * pa_c_binary_odd_double) + (pa_p_binary_odd_double_product))) /\ ((((exists pa_h_binary_odd_double_product_partial. pa_h_binary_odd_double_product_partial + S (pa_r_binary_odd_double_product) = S ((S (pa_i_binary_odd_double_product)) * pa_v_binary_odd_double_product)) /\ exists pa_q_binary_odd_double_product_partial. pa_u_binary_odd_double_product = pa_q_binary_odd_double_product_partial * S ((S (pa_i_binary_odd_double_product)) * pa_v_binary_odd_double_product) + (pa_r_binary_odd_double_product))) /\ ((((exists pa_h_binary_odd_double_product_successor. pa_h_binary_odd_double_product_successor + S (pa_s_binary_odd_double_product) = S ((S (S pa_i_binary_odd_double_product)) * pa_v_binary_odd_double_product)) /\ exists pa_q_binary_odd_double_product_successor. pa_u_binary_odd_double_product = pa_q_binary_odd_double_product_successor * S ((S (S pa_i_binary_odd_double_product)) * pa_v_binary_odd_double_product) + (pa_s_binary_odd_double_product))) /\ pa_s_binary_odd_double_product = pa_r_binary_odd_double_product * pa_p_binary_odd_double_product)))))))) - 0010
specialize pow_exists a - 0011
specialize pow_exists (h + h) - 0012
exact pow_exists - 0013
cases hdouble - 0014
have hsquare : x1 = x * x - 0015
specialize binary_exponent_doubled_power a - 0016
specialize binary_exponent_doubled_power h - 0017
specialize binary_exponent_doubled_power (h + h) - 0018
specialize binary_exponent_doubled_power x - 0019
specialize binary_exponent_doubled_power x1 - 0020
apply binary_exponent_doubled_power - 0021
split - 0022
refl - 0023
split - 0024
exact hodd_right_left - 0025
exact hdouble_witness - 0026
have hsuccessor : z = x1 * a - 0027
specialize pow_successor_pair_mul a - 0028
specialize pow_successor_pair_mul (h + h) - 0029
specialize pow_successor_pair_mul e - 0030
specialize pow_successor_pair_mul x1 - 0031
specialize pow_successor_pair_mul z - 0032
apply pow_successor_pair_mul - 0033
exact hodd_left - 0034
exact hdouble_witness - 0035
exact hodd_right_right - 0036
trans x1 * a - 0037
exact hsuccessor - 0038
congr - 0039
exact hsquare - 0040
refl