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
∀ b. ∀ c. ∀ a. ∀ m. ∀ l. ∀ r. ∀ s. BinaryModulus(m) → BinaryModularExecution(b,c,a,m,l,r) → BinaryModularExecution(b,c,a,m,l,s) → r = s
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 49 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–10
02Establish hhornerL11–16
Establish this local claim before using it. It is not an additional assumption.
03Separate the logical casesL17–17
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L17
cases hhorner
04Establish hfirstL18–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary modular execution power correct.
- L18
have hfirst : BinaryModularPower(a,x,m,r)Definitions: BinaryModularPowerOriginal native command in the exact edition - L19
specialize binary_modular_execution_power_correct b - L20
specialize binary_modular_execution_power_correct c - L21
specialize binary_modular_execution_power_correct a - L22
specialize binary_modular_execution_power_correct m - L23
specialize binary_modular_execution_power_correct l - L24
specialize binary_modular_execution_power_correct x - L25
specialize binary_modular_execution_power_correct r - L26
apply binary_modular_execution_power_correct - L27
exact hmodulus
05Use earlier factsL28–29
06Establish hsecondL30–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary modular execution power correct.
- L30
have hsecond : BinaryModularPower(a,x,m,s)Definitions: BinaryModularPowerOriginal native command in the exact edition - L31
specialize binary_modular_execution_power_correct b - L32
specialize binary_modular_execution_power_correct c - L33
specialize binary_modular_execution_power_correct a - L34
specialize binary_modular_execution_power_correct m - L35
specialize binary_modular_execution_power_correct l - L36
specialize binary_modular_execution_power_correct x - L37
specialize binary_modular_execution_power_correct s - L38
apply binary_modular_execution_power_correct - L39
exact hmodulus
07Use earlier factsL40–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hhorner_witness - L41
exact hright - L42
specialize binary_modular_exponentiation_result_functional a - L43
specialize binary_modular_exponentiation_result_functional x - L44
specialize binary_modular_exponentiation_result_functional m - L45
specialize binary_modular_exponentiation_result_functional r - L46
specialize binary_modular_exponentiation_result_functional s - L47
apply binary_modular_exponentiation_result_functional - L48
exact hfirst - L49
exact hsecond
Original defined command ledger · 49 lines
- 0001
intro b - 0002
intro c - 0003
intro a - 0004
intro m - 0005
intro l - 0006
intro r - 0007
intro s - 0008
intro hmodulus - 0009
intro hleft - 0010
intro hright - 0011
have hhorner : exists e. (exists ff_u_ph_be_exponent ff_v_ph_be_exponent. ((((exists fs_h_ph_be_exponent_body_start. fs_h_ph_be_exponent_body_start + S (0) = S ((S (0)) * ff_v_ph_be_exponent)) /\ exists fs_q_ph_be_exponent_body_start. ff_u_ph_be_exponent = fs_q_ph_be_exponent_body_start * S ((S (0)) * ff_v_ph_be_exponent) + (0))) /\ ((((exists fs_h_ph_be_exponent_body_terminal. fs_h_ph_be_exponent_body_terminal + S (e) = S ((S (l)) * ff_v_ph_be_exponent)) /\ exists fs_q_ph_be_exponent_body_terminal. ff_u_ph_be_exponent = fs_q_ph_be_exponent_body_terminal * S ((S (l)) * ff_v_ph_be_exponent) + (e))) /\ forall ff_i_ph_be_exponent_body_steps. (exists ph_bound_be_exponent_body_steps. ph_bound_be_exponent_body_steps + S ff_i_ph_be_exponent_body_steps = l) -> exists ff_coefficient_ph_be_exponent_body_steps ff_previous_ph_be_exponent_body_steps ff_current_ph_be_exponent_body_steps. ((((exists fs_h_ph_be_exponent_body_steps_coefficient. fs_h_ph_be_exponent_body_steps_coefficient + S (ff_coefficient_ph_be_exponent_body_steps) = S ((S (ff_i_ph_be_exponent_body_steps)) * c)) /\ exists fs_q_ph_be_exponent_body_steps_coefficient. b = fs_q_ph_be_exponent_body_steps_coefficient * S ((S (ff_i_ph_be_exponent_body_steps)) * c) + (ff_coefficient_ph_be_exponent_body_steps))) /\ ((((exists fs_h_ph_be_exponent_body_steps_before. fs_h_ph_be_exponent_body_steps_before + S (ff_previous_ph_be_exponent_body_steps) = S ((S (ff_i_ph_be_exponent_body_steps)) * ff_v_ph_be_exponent)) /\ exists fs_q_ph_be_exponent_body_steps_before. ff_u_ph_be_exponent = fs_q_ph_be_exponent_body_steps_before * S ((S (ff_i_ph_be_exponent_body_steps)) * ff_v_ph_be_exponent) + (ff_previous_ph_be_exponent_body_steps))) /\ ((((exists fs_h_ph_be_exponent_body_steps_after. fs_h_ph_be_exponent_body_steps_after + S (ff_current_ph_be_exponent_body_steps) = S ((S (S ff_i_ph_be_exponent_body_steps)) * ff_v_ph_be_exponent)) /\ exists fs_q_ph_be_exponent_body_steps_after. ff_u_ph_be_exponent = fs_q_ph_be_exponent_body_steps_after * S ((S (S ff_i_ph_be_exponent_body_steps)) * ff_v_ph_be_exponent) + (ff_current_ph_be_exponent_body_steps))) /\ ff_current_ph_be_exponent_body_steps = ff_previous_ph_be_exponent_body_steps * 2 + ff_coefficient_ph_be_exponent_body_steps)))))) - 0012
specialize beta_horner_eval_exists b - 0013
specialize beta_horner_eval_exists c - 0014
specialize beta_horner_eval_exists 2 - 0015
specialize beta_horner_eval_exists l - 0016
exact beta_horner_eval_exists - 0017
cases hhorner - 0018
have hfirst : (exists ff_power_binary_functional_left. ((exists ff_b_binary_functional_left_value ff_c_binary_functional_left_value. ((forall ff_i_binary_functional_left_value_repeat. (exists ff_lt_binary_functional_left_value_repeat_bound. ff_lt_binary_functional_left_value_repeat_bound + S ff_i_binary_functional_left_value_repeat = x) -> (((exists ff_h_binary_functional_left_value_repeat_decoded. ff_h_binary_functional_left_value_repeat_decoded + S (a) = S ((S (ff_i_binary_functional_left_value_repeat)) * ff_c_binary_functional_left_value)) /\ exists ff_q_binary_functional_left_value_repeat_decoded. ff_b_binary_functional_left_value = ff_q_binary_functional_left_value_repeat_decoded * S ((S (ff_i_binary_functional_left_value_repeat)) * ff_c_binary_functional_left_value) + (a)))) /\ (exists ff_u_binary_functional_left_value_product ff_v_binary_functional_left_value_product. ((((exists ff_h_binary_functional_left_value_product_start. ff_h_binary_functional_left_value_product_start + S (1) = S ((S (0)) * ff_v_binary_functional_left_value_product)) /\ exists ff_q_binary_functional_left_value_product_start. ff_u_binary_functional_left_value_product = ff_q_binary_functional_left_value_product_start * S ((S (0)) * ff_v_binary_functional_left_value_product) + (1))) /\ ((((exists ff_h_binary_functional_left_value_product_terminal. ff_h_binary_functional_left_value_product_terminal + S (ff_power_binary_functional_left) = S ((S (x)) * ff_v_binary_functional_left_value_product)) /\ exists ff_q_binary_functional_left_value_product_terminal. ff_u_binary_functional_left_value_product = ff_q_binary_functional_left_value_product_terminal * S ((S (x)) * ff_v_binary_functional_left_value_product) + (ff_power_binary_functional_left))) /\ forall ff_i_binary_functional_left_value_product. (exists ff_lt_binary_functional_left_value_product_bound. ff_lt_binary_functional_left_value_product_bound + S ff_i_binary_functional_left_value_product = x) -> exists ff_p_binary_functional_left_value_product ff_r_binary_functional_left_value_product ff_s_binary_functional_left_value_product. ((((exists ff_h_binary_functional_left_value_product_factor. ff_h_binary_functional_left_value_product_factor + S (ff_p_binary_functional_left_value_product) = S ((S (ff_i_binary_functional_left_value_product)) * ff_c_binary_functional_left_value)) /\ exists ff_q_binary_functional_left_value_product_factor. ff_b_binary_functional_left_value = ff_q_binary_functional_left_value_product_factor * S ((S (ff_i_binary_functional_left_value_product)) * ff_c_binary_functional_left_value) + (ff_p_binary_functional_left_value_product))) /\ ((((exists ff_h_binary_functional_left_value_product_partial. ff_h_binary_functional_left_value_product_partial + S (ff_r_binary_functional_left_value_product) = S ((S (ff_i_binary_functional_left_value_product)) * ff_v_binary_functional_left_value_product)) /\ exists ff_q_binary_functional_left_value_product_partial. ff_u_binary_functional_left_value_product = ff_q_binary_functional_left_value_product_partial * S ((S (ff_i_binary_functional_left_value_product)) * ff_v_binary_functional_left_value_product) + (ff_r_binary_functional_left_value_product))) /\ ((((exists ff_h_binary_functional_left_value_product_successor. ff_h_binary_functional_left_value_product_successor + S (ff_s_binary_functional_left_value_product) = S ((S (S ff_i_binary_functional_left_value_product)) * ff_v_binary_functional_left_value_product)) /\ exists ff_q_binary_functional_left_value_product_successor. ff_u_binary_functional_left_value_product = ff_q_binary_functional_left_value_product_successor * S ((S (S ff_i_binary_functional_left_value_product)) * ff_v_binary_functional_left_value_product) + (ff_s_binary_functional_left_value_product))) /\ ff_s_binary_functional_left_value_product = ff_r_binary_functional_left_value_product * ff_p_binary_functional_left_value_product)))))))) /\ (((exists ff_gap_binary_functional_left_residue. ff_gap_binary_functional_left_residue + S (r) = m) /\ (exists ff_left_binary_functional_left_residue_congruence ff_right_binary_functional_left_residue_congruence. (ff_power_binary_functional_left) + m * ff_left_binary_functional_left_residue_congruence = (r) + m * ff_right_binary_functional_left_residue_congruence))))) - 0019
specialize binary_modular_execution_power_correct b - 0020
specialize binary_modular_execution_power_correct c - 0021
specialize binary_modular_execution_power_correct a - 0022
specialize binary_modular_execution_power_correct m - 0023
specialize binary_modular_execution_power_correct l - 0024
specialize binary_modular_execution_power_correct x - 0025
specialize binary_modular_execution_power_correct r - 0026
apply binary_modular_execution_power_correct - 0027
exact hmodulus - 0028
exact hhorner_witness - 0029
exact hleft - 0030
have hsecond : (exists ff_power_binary_functional_right. ((exists ff_b_binary_functional_right_value ff_c_binary_functional_right_value. ((forall ff_i_binary_functional_right_value_repeat. (exists ff_lt_binary_functional_right_value_repeat_bound. ff_lt_binary_functional_right_value_repeat_bound + S ff_i_binary_functional_right_value_repeat = x) -> (((exists ff_h_binary_functional_right_value_repeat_decoded. ff_h_binary_functional_right_value_repeat_decoded + S (a) = S ((S (ff_i_binary_functional_right_value_repeat)) * ff_c_binary_functional_right_value)) /\ exists ff_q_binary_functional_right_value_repeat_decoded. ff_b_binary_functional_right_value = ff_q_binary_functional_right_value_repeat_decoded * S ((S (ff_i_binary_functional_right_value_repeat)) * ff_c_binary_functional_right_value) + (a)))) /\ (exists ff_u_binary_functional_right_value_product ff_v_binary_functional_right_value_product. ((((exists ff_h_binary_functional_right_value_product_start. ff_h_binary_functional_right_value_product_start + S (1) = S ((S (0)) * ff_v_binary_functional_right_value_product)) /\ exists ff_q_binary_functional_right_value_product_start. ff_u_binary_functional_right_value_product = ff_q_binary_functional_right_value_product_start * S ((S (0)) * ff_v_binary_functional_right_value_product) + (1))) /\ ((((exists ff_h_binary_functional_right_value_product_terminal. ff_h_binary_functional_right_value_product_terminal + S (ff_power_binary_functional_right) = S ((S (x)) * ff_v_binary_functional_right_value_product)) /\ exists ff_q_binary_functional_right_value_product_terminal. ff_u_binary_functional_right_value_product = ff_q_binary_functional_right_value_product_terminal * S ((S (x)) * ff_v_binary_functional_right_value_product) + (ff_power_binary_functional_right))) /\ forall ff_i_binary_functional_right_value_product. (exists ff_lt_binary_functional_right_value_product_bound. ff_lt_binary_functional_right_value_product_bound + S ff_i_binary_functional_right_value_product = x) -> exists ff_p_binary_functional_right_value_product ff_r_binary_functional_right_value_product ff_s_binary_functional_right_value_product. ((((exists ff_h_binary_functional_right_value_product_factor. ff_h_binary_functional_right_value_product_factor + S (ff_p_binary_functional_right_value_product) = S ((S (ff_i_binary_functional_right_value_product)) * ff_c_binary_functional_right_value)) /\ exists ff_q_binary_functional_right_value_product_factor. ff_b_binary_functional_right_value = ff_q_binary_functional_right_value_product_factor * S ((S (ff_i_binary_functional_right_value_product)) * ff_c_binary_functional_right_value) + (ff_p_binary_functional_right_value_product))) /\ ((((exists ff_h_binary_functional_right_value_product_partial. ff_h_binary_functional_right_value_product_partial + S (ff_r_binary_functional_right_value_product) = S ((S (ff_i_binary_functional_right_value_product)) * ff_v_binary_functional_right_value_product)) /\ exists ff_q_binary_functional_right_value_product_partial. ff_u_binary_functional_right_value_product = ff_q_binary_functional_right_value_product_partial * S ((S (ff_i_binary_functional_right_value_product)) * ff_v_binary_functional_right_value_product) + (ff_r_binary_functional_right_value_product))) /\ ((((exists ff_h_binary_functional_right_value_product_successor. ff_h_binary_functional_right_value_product_successor + S (ff_s_binary_functional_right_value_product) = S ((S (S ff_i_binary_functional_right_value_product)) * ff_v_binary_functional_right_value_product)) /\ exists ff_q_binary_functional_right_value_product_successor. ff_u_binary_functional_right_value_product = ff_q_binary_functional_right_value_product_successor * S ((S (S ff_i_binary_functional_right_value_product)) * ff_v_binary_functional_right_value_product) + (ff_s_binary_functional_right_value_product))) /\ ff_s_binary_functional_right_value_product = ff_r_binary_functional_right_value_product * ff_p_binary_functional_right_value_product)))))))) /\ (((exists ff_gap_binary_functional_right_residue. ff_gap_binary_functional_right_residue + S (s) = m) /\ (exists ff_left_binary_functional_right_residue_congruence ff_right_binary_functional_right_residue_congruence. (ff_power_binary_functional_right) + m * ff_left_binary_functional_right_residue_congruence = (s) + m * ff_right_binary_functional_right_residue_congruence))))) - 0031
specialize binary_modular_execution_power_correct b - 0032
specialize binary_modular_execution_power_correct c - 0033
specialize binary_modular_execution_power_correct a - 0034
specialize binary_modular_execution_power_correct m - 0035
specialize binary_modular_execution_power_correct l - 0036
specialize binary_modular_execution_power_correct x - 0037
specialize binary_modular_execution_power_correct s - 0038
apply binary_modular_execution_power_correct - 0039
exact hmodulus - 0040
exact hhorner_witness - 0041
exact hright - 0042
specialize binary_modular_exponentiation_result_functional a - 0043
specialize binary_modular_exponentiation_result_functional x - 0044
specialize binary_modular_exponentiation_result_functional m - 0045
specialize binary_modular_exponentiation_result_functional r - 0046
specialize binary_modular_exponentiation_result_functional s - 0047
apply binary_modular_exponentiation_result_functional - 0048
exact hfirst - 0049
exact hsecond