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 r. (exists ff_trace_code_be_successor ff_trace_scale_be_successor. ((((((exists ff_h_be_successor_trace_start. ff_h_be_successor_trace_start + S (1) = S ((S (0)) * ff_trace_scale_be_successor)) /\ exists ff_q_be_successor_trace_start. ff_trace_code_be_successor = ff_q_be_successor_trace_start * S ((S (0)) * ff_trace_scale_be_successor) + (1))) /\ forall ff_index_be_successor_trace. (exists ff_lt_be_successor_trace_bound. ff_lt_be_successor_trace_bound + S ff_index_be_successor_trace = S l) -> exists ff_digit_be_successor_trace ff_previous_be_successor_trace ff_current_be_successor_trace. ((((exists ff_h_be_successor_trace_source. ff_h_be_successor_trace_source + S (ff_digit_be_successor_trace) = S ((S (ff_index_be_successor_trace)) * c)) /\ exists ff_q_be_successor_trace_source. b = ff_q_be_successor_trace_source * S ((S (ff_index_be_successor_trace)) * c) + (ff_digit_be_successor_trace))) /\ ((((exists ff_h_be_successor_trace_before. ff_h_be_successor_trace_before + S (ff_previous_be_successor_trace) = S ((S (ff_index_be_successor_trace)) * ff_trace_scale_be_successor)) /\ exists ff_q_be_successor_trace_before. ff_trace_code_be_successor = ff_q_be_successor_trace_before * S ((S (ff_index_be_successor_trace)) * ff_trace_scale_be_successor) + (ff_previous_be_successor_trace))) /\ ((((exists ff_h_be_successor_trace_after. ff_h_be_successor_trace_after + S (ff_current_be_successor_trace) = S ((S (S ff_index_be_successor_trace)) * ff_trace_scale_be_successor)) /\ exists ff_q_be_successor_trace_after. ff_trace_code_be_successor = ff_q_be_successor_trace_after * S ((S (S ff_index_be_successor_trace)) * ff_trace_scale_be_successor) + (ff_current_be_successor_trace))) /\ ((((ff_digit_be_successor_trace = 0) /\ (((exists ff_gap_binary_be_successor_trace_transition_square. ff_gap_binary_be_successor_trace_transition_square + S (ff_current_be_successor_trace) = m) /\ (exists ff_left_binary_be_successor_trace_transition_square_congruence ff_right_binary_be_successor_trace_transition_square_congruence. (ff_previous_be_successor_trace * ff_previous_be_successor_trace) + m * ff_left_binary_be_successor_trace_transition_square_congruence = (ff_current_be_successor_trace) + m * ff_right_binary_be_successor_trace_transition_square_congruence)))) \/ ((ff_digit_be_successor_trace = 1) /\ (((exists ff_gap_binary_be_successor_trace_transition_multiply. ff_gap_binary_be_successor_trace_transition_multiply + S (ff_current_be_successor_trace) = m) /\ (exists ff_left_binary_be_successor_trace_transition_multiply_congruence ff_right_binary_be_successor_trace_transition_multiply_congruence. ((ff_previous_be_successor_trace * ff_previous_be_successor_trace) * a) + m * ff_left_binary_be_successor_trace_transition_multiply_congruence = (ff_current_be_successor_trace) + m * ff_right_binary_be_successor_trace_transition_multiply_congruence))))))))))) /\ (((exists ff_h_be_successor_terminal. ff_h_be_successor_terminal + S (r) = S ((S (S l)) * ff_trace_scale_be_successor)) /\ exists ff_q_be_successor_terminal. ff_trace_code_be_successor = ff_q_be_successor_terminal * S ((S (S l)) * ff_trace_scale_be_successor) + (r))))) -> exists d s. ((((exists ff_h_be_successor_digit. ff_h_be_successor_digit + S (d) = S ((S (l)) * c)) /\ exists ff_q_be_successor_digit. b = ff_q_be_successor_digit * S ((S (l)) * c) + (d))) /\ ((exists ff_trace_code_be_prefix_result ff_trace_scale_be_prefix_result. ((((((exists ff_h_be_prefix_result_trace_start. ff_h_be_prefix_result_trace_start + S (1) = S ((S (0)) * ff_trace_scale_be_prefix_result)) /\ exists ff_q_be_prefix_result_trace_start. ff_trace_code_be_prefix_result = ff_q_be_prefix_result_trace_start * S ((S (0)) * ff_trace_scale_be_prefix_result) + (1))) /\ forall ff_index_be_prefix_result_trace. (exists ff_lt_be_prefix_result_trace_bound. ff_lt_be_prefix_result_trace_bound + S ff_index_be_prefix_result_trace = l) -> exists ff_digit_be_prefix_result_trace ff_previous_be_prefix_result_trace ff_current_be_prefix_result_trace. ((((exists ff_h_be_prefix_result_trace_source. ff_h_be_prefix_result_trace_source + S (ff_digit_be_prefix_result_trace) = S ((S (ff_index_be_prefix_result_trace)) * c)) /\ exists ff_q_be_prefix_result_trace_source. b = ff_q_be_prefix_result_trace_source * S ((S (ff_index_be_prefix_result_trace)) * c) + (ff_digit_be_prefix_result_trace))) /\ ((((exists ff_h_be_prefix_result_trace_before. ff_h_be_prefix_result_trace_before + S (ff_previous_be_prefix_result_trace) = S ((S (ff_index_be_prefix_result_trace)) * ff_trace_scale_be_prefix_result)) /\ exists ff_q_be_prefix_result_trace_before. ff_trace_code_be_prefix_result = ff_q_be_prefix_result_trace_before * S ((S (ff_index_be_prefix_result_trace)) * ff_trace_scale_be_prefix_result) + (ff_previous_be_prefix_result_trace))) /\ ((((exists ff_h_be_prefix_result_trace_after. ff_h_be_prefix_result_trace_after + S (ff_current_be_prefix_result_trace) = S ((S (S ff_index_be_prefix_result_trace)) * ff_trace_scale_be_prefix_result)) /\ exists ff_q_be_prefix_result_trace_after. ff_trace_code_be_prefix_result = ff_q_be_prefix_result_trace_after * S ((S (S ff_index_be_prefix_result_trace)) * ff_trace_scale_be_prefix_result) + (ff_current_be_prefix_result_trace))) /\ ((((ff_digit_be_prefix_result_trace = 0) /\ (((exists ff_gap_binary_be_prefix_result_trace_transition_square. ff_gap_binary_be_prefix_result_trace_transition_square + S (ff_current_be_prefix_result_trace) = m) /\ (exists ff_left_binary_be_prefix_result_trace_transition_square_congruence ff_right_binary_be_prefix_result_trace_transition_square_congruence. (ff_previous_be_prefix_result_trace * ff_previous_be_prefix_result_trace) + m * ff_left_binary_be_prefix_result_trace_transition_square_congruence = (ff_current_be_prefix_result_trace) + m * ff_right_binary_be_prefix_result_trace_transition_square_congruence)))) \/ ((ff_digit_be_prefix_result_trace = 1) /\ (((exists ff_gap_binary_be_prefix_result_trace_transition_multiply. ff_gap_binary_be_prefix_result_trace_transition_multiply + S (ff_current_be_prefix_result_trace) = m) /\ (exists ff_left_binary_be_prefix_result_trace_transition_multiply_congruence ff_right_binary_be_prefix_result_trace_transition_multiply_congruence. ((ff_previous_be_prefix_result_trace * ff_previous_be_prefix_result_trace) * a) + m * ff_left_binary_be_prefix_result_trace_transition_multiply_congruence = (ff_current_be_prefix_result_trace) + m * ff_right_binary_be_prefix_result_trace_transition_multiply_congruence))))))))))) /\ (((exists ff_h_be_prefix_result_terminal. ff_h_be_prefix_result_terminal + S (s) = S ((S (l)) * ff_trace_scale_be_prefix_result)) /\ exists ff_q_be_prefix_result_terminal. ff_trace_code_be_prefix_result = ff_q_be_prefix_result_terminal * S ((S (l)) * ff_trace_scale_be_prefix_result) + (s))))) /\ ((((d = 0) /\ (((exists ff_gap_binary_successor_step_square. ff_gap_binary_successor_step_square + S (r) = m) /\ (exists ff_left_binary_successor_step_square_congruence ff_right_binary_successor_step_square_congruence. (s * s) + m * ff_left_binary_successor_step_square_congruence = (r) + m * ff_right_binary_successor_step_square_congruence)))) \/ ((d = 1) /\ (((exists ff_gap_binary_successor_step_multiply. ff_gap_binary_successor_step_multiply + S (r) = m) /\ (exists ff_left_binary_successor_step_multiply_congruence ff_right_binary_successor_step_multiply_congruence. ((s * s) * a) + m * ff_left_binary_successor_step_multiply_congruence = (r) + m * ff_right_binary_successor_step_multiply_congruence))))))))Constructive proof overview
Generated structural guide
Every nonempty actual binary execution decomposes into its exact valid predecessor and final modular transition.
The unchanged tactic script uses 3 declared prerequisites and contains 55 exact native proof lines.
Alpha v34 checked-use · first admitted v22 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
le_refl Stable theorem; checked-use authorized le_succ Stable theorem; checked-use authorized beta_at_unique Stable theorem; checked-use authorizedDirect 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.
01Fix variables and assumptionsL1–7
02Separate the logical casesL8–11
03Establish hlastL12–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hexecution witness witness left right.
04Separate the logical casesL17–22
05Establish hterminalL23–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L23
have hterminal : x4 = r - L24
specialize beta_at_unique x - L25
specialize beta_at_unique x1 - L26
specialize beta_at_unique (S l) - L27
specialize beta_at_unique x4 - L28
specialize beta_at_unique r - L29
apply beta_at_unique - L30
exact hlast_witness_witness_witness_right_right_left - L31
exact hexecution_witness_witness_right
06Construct an explicit witnessL32–33
07Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
split
08Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
exact hlast_witness_witness_witness_left
09Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
split
10Construct an explicit witnessL37–38
11Separate the logical casesL39–40
12Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
exact hexecution_witness_witness_left_left
13Fix variables and assumptionsL42–43
14Use earlier factsL44–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
15Calculate and transport equalitiesL51–54
16Use earlier factsL55–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L55
exact hlast_witness_witness_witness_right_right_right
Original exact command ledger · 55 lines
- 0001
intro b - 0002
intro c - 0003
intro a - 0004
intro m - 0005
intro l - 0006
intro r - 0007
intro hexecution - 0008
cases hexecution - 0009
cases hexecution_witness - 0010
cases hexecution_witness_witness - 0011
cases hexecution_witness_witness_left - 0012
have hlast : exists d s t. ((((exists ff_h_be_successor_last_digit. ff_h_be_successor_last_digit + S (d) = S ((S (l)) * c)) /\ exists ff_q_be_successor_last_digit. b = ff_q_be_successor_last_digit * S ((S (l)) * c) + (d))) /\ ((((exists ff_h_be_successor_last_previous. ff_h_be_successor_last_previous + S (s) = S ((S (l)) * x1)) /\ exists ff_q_be_successor_last_previous. x = ff_q_be_successor_last_previous * S ((S (l)) * x1) + (s))) /\ ((((exists ff_h_be_successor_last_current. ff_h_be_successor_last_current + S (t) = S ((S (S l)) * x1)) /\ exists ff_q_be_successor_last_current. x = ff_q_be_successor_last_current * S ((S (S l)) * x1) + (t))) /\ ((((d = 0) /\ (((exists ff_gap_binary_successor_last_step_square. ff_gap_binary_successor_last_step_square + S (t) = m) /\ (exists ff_left_binary_successor_last_step_square_congruence ff_right_binary_successor_last_step_square_congruence. (s * s) + m * ff_left_binary_successor_last_step_square_congruence = (t) + m * ff_right_binary_successor_last_step_square_congruence)))) \/ ((d = 1) /\ (((exists ff_gap_binary_successor_last_step_multiply. ff_gap_binary_successor_last_step_multiply + S (t) = m) /\ (exists ff_left_binary_successor_last_step_multiply_congruence ff_right_binary_successor_last_step_multiply_congruence. ((s * s) * a) + m * ff_left_binary_successor_last_step_multiply_congruence = (t) + m * ff_right_binary_successor_last_step_multiply_congruence))))))))) - 0013
specialize hexecution_witness_witness_left_right l - 0014
apply hexecution_witness_witness_left_right - 0015
specialize le_refl (S l) - 0016
exact le_refl - 0017
cases hlast - 0018
cases hlast_witness - 0019
cases hlast_witness_witness - 0020
cases hlast_witness_witness_witness - 0021
cases hlast_witness_witness_witness_right - 0022
cases hlast_witness_witness_witness_right_right - 0023
have hterminal : x4 = r - 0024
specialize beta_at_unique x - 0025
specialize beta_at_unique x1 - 0026
specialize beta_at_unique (S l) - 0027
specialize beta_at_unique x4 - 0028
specialize beta_at_unique r - 0029
apply beta_at_unique - 0030
exact hlast_witness_witness_witness_right_right_left - 0031
exact hexecution_witness_witness_right - 0032
exists x2 - 0033
exists x3 - 0034
split - 0035
exact hlast_witness_witness_witness_left - 0036
split - 0037
exists x - 0038
exists x1 - 0039
split - 0040
split - 0041
exact hexecution_witness_witness_left_left - 0042
intro i - 0043
intro hi - 0044
specialize hexecution_witness_witness_left_right i - 0045
apply hexecution_witness_witness_left_right - 0046
specialize le_succ (S i) - 0047
specialize le_succ l - 0048
apply le_succ - 0049
exact hi - 0050
exact hlast_witness_witness_witness_right_left - 0051
rewrite <- hterminal - 0052
rewrite <- hterminal - 0053
rewrite <- hterminal - 0054
rewrite <- hterminal - 0055
exact hlast_witness_witness_witness_right_right_right