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 at this family's Alpha-v22 first admission: complete execution was proved only for a supplied valid beta-coded digit prefix. G102 is now CLOSED in Alpha v23 for every arbitrary exponent, with actual canonical digits and operations≤3*BitLen(e)+2.
Exact theorem in conservative defined notation
∀ a. ∀ h. ∀ e. ∀ m. ∀ r. ∀ s. e = h + h → BinaryModularPower(a,h,m,r) → CanonicalModularResidue(m,r · r,s) → BinaryModularPower(a,e,m,s)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 51 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–9
02Separate the logical casesL10–13
03Establish hpowerL14–17
04Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
cases hpower
05Establish hsquareL19–25
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 casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
split
07Use earlier factsL27–27
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L27
exact he
08Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
split
09Use earlier factsL29–30
10Establish hsquare_congruenceL31–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary modular square congruence.
- L31
have hsquare_congruence : exists ff_left_binary_execution_square ff_right_binary_execution_square. (x * x) + m * ff_left_binary_execution_square = (r * r) + m * ff_right_binary_execution_square - L32
specialize binary_modular_square_congruence m - L33
specialize binary_modular_square_congruence x - L34
specialize binary_modular_square_congruence r - L35
apply binary_modular_square_congruence - L36
exact hprevious_witness_right_right
11Establish htotalL37–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
- L37
have htotal : exists ff_left_binary_execution_square_total ff_right_binary_execution_square_total. (x * x) + m * ff_left_binary_execution_square_total = (s) + m * ff_right_binary_execution_square_total - L38
specialize mod_eq_trans m - L39
specialize mod_eq_trans (x * x) - L40
specialize mod_eq_trans (r * r) - L41
specialize mod_eq_trans s - L42
apply mod_eq_trans - L43
exact hsquare_congruence - L44
exact hresidue_right
12Construct an explicit witnessL45–45
Supply the displayed value, then prove that it has the required property.
- L45
exists x1
13Separate the logical casesL46–46
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L46
split
14Use earlier factsL47–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
exact hpower_witness
15Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
16Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hresidue_left
17Calculate and transport equalitiesL50–50
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L50
rewrite hsquare
18Use earlier factsL51–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
exact htotal
Original defined command ledger · 51 lines
- 0001
intro a - 0002
intro h - 0003
intro e - 0004
intro m - 0005
intro r - 0006
intro s - 0007
intro he - 0008
intro hprevious - 0009
intro hresidue - 0010
cases hprevious - 0011
cases hprevious_witness - 0012
cases hprevious_witness_right - 0013
cases hresidue - 0014
have hpower : exists y. (exists ff_b_be_even_full ff_c_be_even_full. ((forall ff_i_be_even_full_repeat. (exists ff_lt_be_even_full_repeat_bound. ff_lt_be_even_full_repeat_bound + S ff_i_be_even_full_repeat = e) -> (((exists ff_h_be_even_full_repeat_decoded. ff_h_be_even_full_repeat_decoded + S (a) = S ((S (ff_i_be_even_full_repeat)) * ff_c_be_even_full)) /\ exists ff_q_be_even_full_repeat_decoded. ff_b_be_even_full = ff_q_be_even_full_repeat_decoded * S ((S (ff_i_be_even_full_repeat)) * ff_c_be_even_full) + (a)))) /\ (exists ff_u_be_even_full_product ff_v_be_even_full_product. ((((exists ff_h_be_even_full_product_start. ff_h_be_even_full_product_start + S (1) = S ((S (0)) * ff_v_be_even_full_product)) /\ exists ff_q_be_even_full_product_start. ff_u_be_even_full_product = ff_q_be_even_full_product_start * S ((S (0)) * ff_v_be_even_full_product) + (1))) /\ ((((exists ff_h_be_even_full_product_terminal. ff_h_be_even_full_product_terminal + S (y) = S ((S (e)) * ff_v_be_even_full_product)) /\ exists ff_q_be_even_full_product_terminal. ff_u_be_even_full_product = ff_q_be_even_full_product_terminal * S ((S (e)) * ff_v_be_even_full_product) + (y))) /\ forall ff_i_be_even_full_product. (exists ff_lt_be_even_full_product_bound. ff_lt_be_even_full_product_bound + S ff_i_be_even_full_product = e) -> exists ff_p_be_even_full_product ff_r_be_even_full_product ff_s_be_even_full_product. ((((exists ff_h_be_even_full_product_factor. ff_h_be_even_full_product_factor + S (ff_p_be_even_full_product) = S ((S (ff_i_be_even_full_product)) * ff_c_be_even_full)) /\ exists ff_q_be_even_full_product_factor. ff_b_be_even_full = ff_q_be_even_full_product_factor * S ((S (ff_i_be_even_full_product)) * ff_c_be_even_full) + (ff_p_be_even_full_product))) /\ ((((exists ff_h_be_even_full_product_partial. ff_h_be_even_full_product_partial + S (ff_r_be_even_full_product) = S ((S (ff_i_be_even_full_product)) * ff_v_be_even_full_product)) /\ exists ff_q_be_even_full_product_partial. ff_u_be_even_full_product = ff_q_be_even_full_product_partial * S ((S (ff_i_be_even_full_product)) * ff_v_be_even_full_product) + (ff_r_be_even_full_product))) /\ ((((exists ff_h_be_even_full_product_successor. ff_h_be_even_full_product_successor + S (ff_s_be_even_full_product) = S ((S (S ff_i_be_even_full_product)) * ff_v_be_even_full_product)) /\ exists ff_q_be_even_full_product_successor. ff_u_be_even_full_product = ff_q_be_even_full_product_successor * S ((S (S ff_i_be_even_full_product)) * ff_v_be_even_full_product) + (ff_s_be_even_full_product))) /\ ff_s_be_even_full_product = ff_r_be_even_full_product * ff_p_be_even_full_product)))))))) - 0015
specialize pow_exists a - 0016
specialize pow_exists e - 0017
exact pow_exists - 0018
cases hpower - 0019
have hsquare : x1 = x * x - 0020
specialize binary_exponent_doubled_power a - 0021
specialize binary_exponent_doubled_power h - 0022
specialize binary_exponent_doubled_power e - 0023
specialize binary_exponent_doubled_power x - 0024
specialize binary_exponent_doubled_power x1 - 0025
apply binary_exponent_doubled_power - 0026
split - 0027
exact he - 0028
split - 0029
exact hprevious_witness_left - 0030
exact hpower_witness - 0031
have hsquare_congruence : exists ff_left_binary_execution_square ff_right_binary_execution_square. (x * x) + m * ff_left_binary_execution_square = (r * r) + m * ff_right_binary_execution_square - 0032
specialize binary_modular_square_congruence m - 0033
specialize binary_modular_square_congruence x - 0034
specialize binary_modular_square_congruence r - 0035
apply binary_modular_square_congruence - 0036
exact hprevious_witness_right_right - 0037
have htotal : exists ff_left_binary_execution_square_total ff_right_binary_execution_square_total. (x * x) + m * ff_left_binary_execution_square_total = (s) + m * ff_right_binary_execution_square_total - 0038
specialize mod_eq_trans m - 0039
specialize mod_eq_trans (x * x) - 0040
specialize mod_eq_trans (r * r) - 0041
specialize mod_eq_trans s - 0042
apply mod_eq_trans - 0043
exact hsquare_congruence - 0044
exact hresidue_right - 0045
exists x1 - 0046
split - 0047
exact hpower_witness - 0048
split - 0049
exact hresidue_left - 0050
rewrite hsquare - 0051
exact htotal