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 b c a m l. (exists ff_modulus_gap_binary_execution_guard. ff_modulus_gap_binary_execution_guard + S 1 = m) -> (forall ff_index_be_prefix ff_digit_be_prefix. (exists ff_lt_be_prefix_bound. ff_lt_be_prefix_bound + S ff_index_be_prefix = l) -> (((exists ff_h_be_prefix_digit. ff_h_be_prefix_digit + S (ff_digit_be_prefix) = S ((S (ff_index_be_prefix)) * c)) /\ exists ff_q_be_prefix_digit. b = ff_q_be_prefix_digit * S ((S (ff_index_be_prefix)) * c) + (ff_digit_be_prefix))) -> (ff_digit_be_prefix = 0 \/ ff_digit_be_prefix = 1)) -> exists r. ((exists ff_trace_code_be_execution ff_trace_scale_be_execution. ((((((exists ff_h_be_execution_trace_start. ff_h_be_execution_trace_start + S (1) = S ((S (0)) * ff_trace_scale_be_execution)) /\ exists ff_q_be_execution_trace_start. ff_trace_code_be_execution = ff_q_be_execution_trace_start * S ((S (0)) * ff_trace_scale_be_execution) + (1))) /\ forall ff_index_be_execution_trace. (exists ff_lt_be_execution_trace_bound. ff_lt_be_execution_trace_bound + S ff_index_be_execution_trace = l) -> exists ff_digit_be_execution_trace ff_previous_be_execution_trace ff_current_be_execution_trace. ((((exists ff_h_be_execution_trace_source. ff_h_be_execution_trace_source + S (ff_digit_be_execution_trace) = S ((S (ff_index_be_execution_trace)) * c)) /\ exists ff_q_be_execution_trace_source. b = ff_q_be_execution_trace_source * S ((S (ff_index_be_execution_trace)) * c) + (ff_digit_be_execution_trace))) /\ ((((exists ff_h_be_execution_trace_before. ff_h_be_execution_trace_before + S (ff_previous_be_execution_trace) = S ((S (ff_index_be_execution_trace)) * ff_trace_scale_be_execution)) /\ exists ff_q_be_execution_trace_before. ff_trace_code_be_execution = ff_q_be_execution_trace_before * S ((S (ff_index_be_execution_trace)) * ff_trace_scale_be_execution) + (ff_previous_be_execution_trace))) /\ ((((exists ff_h_be_execution_trace_after. ff_h_be_execution_trace_after + S (ff_current_be_execution_trace) = S ((S (S ff_index_be_execution_trace)) * ff_trace_scale_be_execution)) /\ exists ff_q_be_execution_trace_after. ff_trace_code_be_execution = ff_q_be_execution_trace_after * S ((S (S ff_index_be_execution_trace)) * ff_trace_scale_be_execution) + (ff_current_be_execution_trace))) /\ ((((ff_digit_be_execution_trace = 0) /\ (((exists ff_gap_binary_be_execution_trace_transition_square. ff_gap_binary_be_execution_trace_transition_square + S (ff_current_be_execution_trace) = m) /\ (exists ff_left_binary_be_execution_trace_transition_square_congruence ff_right_binary_be_execution_trace_transition_square_congruence. (ff_previous_be_execution_trace * ff_previous_be_execution_trace) + m * ff_left_binary_be_execution_trace_transition_square_congruence = (ff_current_be_execution_trace) + m * ff_right_binary_be_execution_trace_transition_square_congruence)))) \/ ((ff_digit_be_execution_trace = 1) /\ (((exists ff_gap_binary_be_execution_trace_transition_multiply. ff_gap_binary_be_execution_trace_transition_multiply + S (ff_current_be_execution_trace) = m) /\ (exists ff_left_binary_be_execution_trace_transition_multiply_congruence ff_right_binary_be_execution_trace_transition_multiply_congruence. ((ff_previous_be_execution_trace * ff_previous_be_execution_trace) * a) + m * ff_left_binary_be_execution_trace_transition_multiply_congruence = (ff_current_be_execution_trace) + m * ff_right_binary_be_execution_trace_transition_multiply_congruence))))))))))) /\ (((exists ff_h_be_execution_terminal. ff_h_be_execution_terminal + S (r) = S ((S (l)) * ff_trace_scale_be_execution)) /\ exists ff_q_be_execution_terminal. ff_trace_code_be_execution = ff_q_be_execution_terminal * S ((S (l)) * ff_trace_scale_be_execution) + (r))))) /\ forall s. (exists ff_trace_code_be_other_execution ff_trace_scale_be_other_execution. ((((((exists ff_h_be_other_execution_trace_start. ff_h_be_other_execution_trace_start + S (1) = S ((S (0)) * ff_trace_scale_be_other_execution)) /\ exists ff_q_be_other_execution_trace_start. ff_trace_code_be_other_execution = ff_q_be_other_execution_trace_start * S ((S (0)) * ff_trace_scale_be_other_execution) + (1))) /\ forall ff_index_be_other_execution_trace. (exists ff_lt_be_other_execution_trace_bound. ff_lt_be_other_execution_trace_bound + S ff_index_be_other_execution_trace = l) -> exists ff_digit_be_other_execution_trace ff_previous_be_other_execution_trace ff_current_be_other_execution_trace. ((((exists ff_h_be_other_execution_trace_source. ff_h_be_other_execution_trace_source + S (ff_digit_be_other_execution_trace) = S ((S (ff_index_be_other_execution_trace)) * c)) /\ exists ff_q_be_other_execution_trace_source. b = ff_q_be_other_execution_trace_source * S ((S (ff_index_be_other_execution_trace)) * c) + (ff_digit_be_other_execution_trace))) /\ ((((exists ff_h_be_other_execution_trace_before. ff_h_be_other_execution_trace_before + S (ff_previous_be_other_execution_trace) = S ((S (ff_index_be_other_execution_trace)) * ff_trace_scale_be_other_execution)) /\ exists ff_q_be_other_execution_trace_before. ff_trace_code_be_other_execution = ff_q_be_other_execution_trace_before * S ((S (ff_index_be_other_execution_trace)) * ff_trace_scale_be_other_execution) + (ff_previous_be_other_execution_trace))) /\ ((((exists ff_h_be_other_execution_trace_after. ff_h_be_other_execution_trace_after + S (ff_current_be_other_execution_trace) = S ((S (S ff_index_be_other_execution_trace)) * ff_trace_scale_be_other_execution)) /\ exists ff_q_be_other_execution_trace_after. ff_trace_code_be_other_execution = ff_q_be_other_execution_trace_after * S ((S (S ff_index_be_other_execution_trace)) * ff_trace_scale_be_other_execution) + (ff_current_be_other_execution_trace))) /\ ((((ff_digit_be_other_execution_trace = 0) /\ (((exists ff_gap_binary_be_other_execution_trace_transition_square. ff_gap_binary_be_other_execution_trace_transition_square + S (ff_current_be_other_execution_trace) = m) /\ (exists ff_left_binary_be_other_execution_trace_transition_square_congruence ff_right_binary_be_other_execution_trace_transition_square_congruence. (ff_previous_be_other_execution_trace * ff_previous_be_other_execution_trace) + m * ff_left_binary_be_other_execution_trace_transition_square_congruence = (ff_current_be_other_execution_trace) + m * ff_right_binary_be_other_execution_trace_transition_square_congruence)))) \/ ((ff_digit_be_other_execution_trace = 1) /\ (((exists ff_gap_binary_be_other_execution_trace_transition_multiply. ff_gap_binary_be_other_execution_trace_transition_multiply + S (ff_current_be_other_execution_trace) = m) /\ (exists ff_left_binary_be_other_execution_trace_transition_multiply_congruence ff_right_binary_be_other_execution_trace_transition_multiply_congruence. ((ff_previous_be_other_execution_trace * ff_previous_be_other_execution_trace) * a) + m * ff_left_binary_be_other_execution_trace_transition_multiply_congruence = (ff_current_be_other_execution_trace) + m * ff_right_binary_be_other_execution_trace_transition_multiply_congruence))))))))))) /\ (((exists ff_h_be_other_execution_terminal. ff_h_be_other_execution_terminal + S (s) = S ((S (l)) * ff_trace_scale_be_other_execution)) /\ exists ff_q_be_other_execution_terminal. ff_trace_code_be_other_execution = ff_q_be_other_execution_terminal * S ((S (l)) * ff_trace_scale_be_other_execution) + (s))))) -> r = s)Constructive proof overview
Generated structural guide
Every supplied valid beta-coded binary prefix has exactly one genuine guarded square-and-multiply execution result.
The unchanged tactic script uses 2 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
Direct 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 (2)
01Fix variables and assumptionsL1–7
02Establish hrunL8–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary modular execution exists.
- L8
have hrun : ∃ r. BinaryModularExecution(b,c,a,m,l,r)Definitions: BinaryModularExecution - L9
specialize binary_modular_execution_exists b - L10
specialize binary_modular_execution_exists c - L11
specialize binary_modular_execution_exists a - L12
specialize binary_modular_execution_exists m - L13
specialize binary_modular_execution_exists l - L14
apply binary_modular_execution_exists - L15
exact hmodulus - L16
exact hdigits
03Separate the logical casesL17–17
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L17
cases hrun
04Construct an explicit witnessL18–18
Supply the displayed value, then prove that it has the required property.
- L18
exists x
05Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
split
06Use earlier factsL20–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L20
exact hrun_witness
07Fix variables and assumptionsL21–22
08Use earlier factsL23–32
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
specialize binary_modular_execution_result_functional b - L24
specialize binary_modular_execution_result_functional c - L25
specialize binary_modular_execution_result_functional a - L26
specialize binary_modular_execution_result_functional m - L27
specialize binary_modular_execution_result_functional l - L28
specialize binary_modular_execution_result_functional x - L29
specialize binary_modular_execution_result_functional s - L30
apply binary_modular_execution_result_functional - L31
exact hmodulus - L32
exact hrun_witness
09Use earlier factsL33–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
exact hother
Original exact command ledger · 33 lines
- 0001
intro b - 0002
intro c - 0003
intro a - 0004
intro m - 0005
intro l - 0006
intro hmodulus - 0007
intro hdigits - 0008
have hrun : exists r. (exists ff_trace_code_be_execution ff_trace_scale_be_execution. ((((((exists ff_h_be_execution_trace_start. ff_h_be_execution_trace_start + S (1) = S ((S (0)) * ff_trace_scale_be_execution)) /\ exists ff_q_be_execution_trace_start. ff_trace_code_be_execution = ff_q_be_execution_trace_start * S ((S (0)) * ff_trace_scale_be_execution) + (1))) /\ forall ff_index_be_execution_trace. (exists ff_lt_be_execution_trace_bound. ff_lt_be_execution_trace_bound + S ff_index_be_execution_trace = l) -> exists ff_digit_be_execution_trace ff_previous_be_execution_trace ff_current_be_execution_trace. ((((exists ff_h_be_execution_trace_source. ff_h_be_execution_trace_source + S (ff_digit_be_execution_trace) = S ((S (ff_index_be_execution_trace)) * c)) /\ exists ff_q_be_execution_trace_source. b = ff_q_be_execution_trace_source * S ((S (ff_index_be_execution_trace)) * c) + (ff_digit_be_execution_trace))) /\ ((((exists ff_h_be_execution_trace_before. ff_h_be_execution_trace_before + S (ff_previous_be_execution_trace) = S ((S (ff_index_be_execution_trace)) * ff_trace_scale_be_execution)) /\ exists ff_q_be_execution_trace_before. ff_trace_code_be_execution = ff_q_be_execution_trace_before * S ((S (ff_index_be_execution_trace)) * ff_trace_scale_be_execution) + (ff_previous_be_execution_trace))) /\ ((((exists ff_h_be_execution_trace_after. ff_h_be_execution_trace_after + S (ff_current_be_execution_trace) = S ((S (S ff_index_be_execution_trace)) * ff_trace_scale_be_execution)) /\ exists ff_q_be_execution_trace_after. ff_trace_code_be_execution = ff_q_be_execution_trace_after * S ((S (S ff_index_be_execution_trace)) * ff_trace_scale_be_execution) + (ff_current_be_execution_trace))) /\ ((((ff_digit_be_execution_trace = 0) /\ (((exists ff_gap_binary_be_execution_trace_transition_square. ff_gap_binary_be_execution_trace_transition_square + S (ff_current_be_execution_trace) = m) /\ (exists ff_left_binary_be_execution_trace_transition_square_congruence ff_right_binary_be_execution_trace_transition_square_congruence. (ff_previous_be_execution_trace * ff_previous_be_execution_trace) + m * ff_left_binary_be_execution_trace_transition_square_congruence = (ff_current_be_execution_trace) + m * ff_right_binary_be_execution_trace_transition_square_congruence)))) \/ ((ff_digit_be_execution_trace = 1) /\ (((exists ff_gap_binary_be_execution_trace_transition_multiply. ff_gap_binary_be_execution_trace_transition_multiply + S (ff_current_be_execution_trace) = m) /\ (exists ff_left_binary_be_execution_trace_transition_multiply_congruence ff_right_binary_be_execution_trace_transition_multiply_congruence. ((ff_previous_be_execution_trace * ff_previous_be_execution_trace) * a) + m * ff_left_binary_be_execution_trace_transition_multiply_congruence = (ff_current_be_execution_trace) + m * ff_right_binary_be_execution_trace_transition_multiply_congruence))))))))))) /\ (((exists ff_h_be_execution_terminal. ff_h_be_execution_terminal + S (r) = S ((S (l)) * ff_trace_scale_be_execution)) /\ exists ff_q_be_execution_terminal. ff_trace_code_be_execution = ff_q_be_execution_terminal * S ((S (l)) * ff_trace_scale_be_execution) + (r))))) - 0009
specialize binary_modular_execution_exists b - 0010
specialize binary_modular_execution_exists c - 0011
specialize binary_modular_execution_exists a - 0012
specialize binary_modular_execution_exists m - 0013
specialize binary_modular_execution_exists l - 0014
apply binary_modular_execution_exists - 0015
exact hmodulus - 0016
exact hdigits - 0017
cases hrun - 0018
exists x - 0019
split - 0020
exact hrun_witness - 0021
intro s - 0022
intro hother - 0023
specialize binary_modular_execution_result_functional b - 0024
specialize binary_modular_execution_result_functional c - 0025
specialize binary_modular_execution_result_functional a - 0026
specialize binary_modular_execution_result_functional m - 0027
specialize binary_modular_execution_result_functional l - 0028
specialize binary_modular_execution_result_functional x - 0029
specialize binary_modular_execution_result_functional s - 0030
apply binary_modular_execution_result_functional - 0031
exact hmodulus - 0032
exact hrun_witness - 0033
exact hother