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. BinaryModulus(m) → BinaryDigitPrefix(b,c,l) → ∃ x. BinaryModularExecution(b,c,a,m,l,x)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 30 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–7
02Establish htraceL8–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary execution prefix exists.
- L8
have htrace : ∃ u. ∃ v. BinaryExecutionTrace(b,c,a,m,l,u,v)Definitions: BinaryExecutionTraceOriginal native command in the exact edition - L9
specialize binary_execution_prefix_exists b - L10
specialize binary_execution_prefix_exists c - L11
specialize binary_execution_prefix_exists a - L12
specialize binary_execution_prefix_exists m - L13
specialize binary_execution_prefix_exists l - L14
apply binary_execution_prefix_exists - L15
exact hmodulus - L16
exact hdigits
03Separate the logical casesL17–18
04Establish hterminalL19–23
Establish this local claim before using it. It is not an additional assumption.
- L19
have hterminal : exists r. (((exists ff_h_be_execution_terminal. ff_h_be_execution_terminal + S (r) = S ((S (l)) * x1)) /\ exists ff_q_be_execution_terminal. x = ff_q_be_execution_terminal * S ((S (l)) * x1) + (r))) - L20
specialize beta_at_exists x - L21
specialize beta_at_exists x1 - L22
specialize beta_at_exists l - L23
exact beta_at_exists
05Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases hterminal
06Construct an explicit witnessL25–27
07Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
split
Original defined command ledger · 30 lines
- 0001
intro b - 0002
intro c - 0003
intro a - 0004
intro m - 0005
intro l - 0006
intro hmodulus - 0007
intro hdigits - 0008
have htrace : exists u v. (((((exists ff_h_be_trace_start. ff_h_be_trace_start + S (1) = S ((S (0)) * v)) /\ exists ff_q_be_trace_start. u = ff_q_be_trace_start * S ((S (0)) * v) + (1))) /\ forall ff_index_be_trace. (exists ff_lt_be_trace_bound. ff_lt_be_trace_bound + S ff_index_be_trace = l) -> exists ff_digit_be_trace ff_previous_be_trace ff_current_be_trace. ((((exists ff_h_be_trace_source. ff_h_be_trace_source + S (ff_digit_be_trace) = S ((S (ff_index_be_trace)) * c)) /\ exists ff_q_be_trace_source. b = ff_q_be_trace_source * S ((S (ff_index_be_trace)) * c) + (ff_digit_be_trace))) /\ ((((exists ff_h_be_trace_before. ff_h_be_trace_before + S (ff_previous_be_trace) = S ((S (ff_index_be_trace)) * v)) /\ exists ff_q_be_trace_before. u = ff_q_be_trace_before * S ((S (ff_index_be_trace)) * v) + (ff_previous_be_trace))) /\ ((((exists ff_h_be_trace_after. ff_h_be_trace_after + S (ff_current_be_trace) = S ((S (S ff_index_be_trace)) * v)) /\ exists ff_q_be_trace_after. u = ff_q_be_trace_after * S ((S (S ff_index_be_trace)) * v) + (ff_current_be_trace))) /\ ((((ff_digit_be_trace = 0) /\ (((exists ff_gap_binary_be_trace_transition_square. ff_gap_binary_be_trace_transition_square + S (ff_current_be_trace) = m) /\ (exists ff_left_binary_be_trace_transition_square_congruence ff_right_binary_be_trace_transition_square_congruence. (ff_previous_be_trace * ff_previous_be_trace) + m * ff_left_binary_be_trace_transition_square_congruence = (ff_current_be_trace) + m * ff_right_binary_be_trace_transition_square_congruence)))) \/ ((ff_digit_be_trace = 1) /\ (((exists ff_gap_binary_be_trace_transition_multiply. ff_gap_binary_be_trace_transition_multiply + S (ff_current_be_trace) = m) /\ (exists ff_left_binary_be_trace_transition_multiply_congruence ff_right_binary_be_trace_transition_multiply_congruence. ((ff_previous_be_trace * ff_previous_be_trace) * a) + m * ff_left_binary_be_trace_transition_multiply_congruence = (ff_current_be_trace) + m * ff_right_binary_be_trace_transition_multiply_congruence))))))))))) - 0009
specialize binary_execution_prefix_exists b - 0010
specialize binary_execution_prefix_exists c - 0011
specialize binary_execution_prefix_exists a - 0012
specialize binary_execution_prefix_exists m - 0013
specialize binary_execution_prefix_exists l - 0014
apply binary_execution_prefix_exists - 0015
exact hmodulus - 0016
exact hdigits - 0017
cases htrace - 0018
cases htrace_witness - 0019
have hterminal : exists r. (((exists ff_h_be_execution_terminal. ff_h_be_execution_terminal + S (r) = S ((S (l)) * x1)) /\ exists ff_q_be_execution_terminal. x = ff_q_be_execution_terminal * S ((S (l)) * x1) + (r))) - 0020
specialize beta_at_exists x - 0021
specialize beta_at_exists x1 - 0022
specialize beta_at_exists l - 0023
exact beta_at_exists - 0024
cases hterminal - 0025
exists x2 - 0026
exists x - 0027
exists x1 - 0028
split - 0029
exact htrace_witness_witness - 0030
exact hterminal_witness