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 u v q. (exists ff_modulus_gap_binary_execution_guard. ff_modulus_gap_binary_execution_guard + S 1 = m) -> (q = 0 \/ q = 1) -> (((exists ff_h_be_extend_digit. ff_h_be_extend_digit + S (q) = S ((S (l)) * c)) /\ exists ff_q_be_extend_digit. b = ff_q_be_extend_digit * S ((S (l)) * c) + (q))) -> (((((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))))))))))) -> exists z e. (((((exists ff_h_be_extend_trace_start. ff_h_be_extend_trace_start + S (1) = S ((S (0)) * e)) /\ exists ff_q_be_extend_trace_start. z = ff_q_be_extend_trace_start * S ((S (0)) * e) + (1))) /\ forall ff_index_be_extend_trace. (exists ff_lt_be_extend_trace_bound. ff_lt_be_extend_trace_bound + S ff_index_be_extend_trace = S l) -> exists ff_digit_be_extend_trace ff_previous_be_extend_trace ff_current_be_extend_trace. ((((exists ff_h_be_extend_trace_source. ff_h_be_extend_trace_source + S (ff_digit_be_extend_trace) = S ((S (ff_index_be_extend_trace)) * c)) /\ exists ff_q_be_extend_trace_source. b = ff_q_be_extend_trace_source * S ((S (ff_index_be_extend_trace)) * c) + (ff_digit_be_extend_trace))) /\ ((((exists ff_h_be_extend_trace_before. ff_h_be_extend_trace_before + S (ff_previous_be_extend_trace) = S ((S (ff_index_be_extend_trace)) * e)) /\ exists ff_q_be_extend_trace_before. z = ff_q_be_extend_trace_before * S ((S (ff_index_be_extend_trace)) * e) + (ff_previous_be_extend_trace))) /\ ((((exists ff_h_be_extend_trace_after. ff_h_be_extend_trace_after + S (ff_current_be_extend_trace) = S ((S (S ff_index_be_extend_trace)) * e)) /\ exists ff_q_be_extend_trace_after. z = ff_q_be_extend_trace_after * S ((S (S ff_index_be_extend_trace)) * e) + (ff_current_be_extend_trace))) /\ ((((ff_digit_be_extend_trace = 0) /\ (((exists ff_gap_binary_be_extend_trace_transition_square. ff_gap_binary_be_extend_trace_transition_square + S (ff_current_be_extend_trace) = m) /\ (exists ff_left_binary_be_extend_trace_transition_square_congruence ff_right_binary_be_extend_trace_transition_square_congruence. (ff_previous_be_extend_trace * ff_previous_be_extend_trace) + m * ff_left_binary_be_extend_trace_transition_square_congruence = (ff_current_be_extend_trace) + m * ff_right_binary_be_extend_trace_transition_square_congruence)))) \/ ((ff_digit_be_extend_trace = 1) /\ (((exists ff_gap_binary_be_extend_trace_transition_multiply. ff_gap_binary_be_extend_trace_transition_multiply + S (ff_current_be_extend_trace) = m) /\ (exists ff_left_binary_be_extend_trace_transition_multiply_congruence ff_right_binary_be_extend_trace_transition_multiply_congruence. ((ff_previous_be_extend_trace * ff_previous_be_extend_trace) * a) + m * ff_left_binary_be_extend_trace_transition_multiply_congruence = (ff_current_be_extend_trace) + m * ff_right_binary_be_extend_trace_transition_multiply_congruence)))))))))))Constructive proof overview
Generated structural guide
Append one genuine beta-coded binary digit and canonical modular transition while preserving every previous execution state.
The unchanged tactic script uses 7 declared prerequisites and contains 109 exact native proof lines.
Alpha v34 checked-use · first admitted v22 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_at_exists Stable theorem; checked-use authorized binary_modular_step_exists Alpha theorem; checked-use authorized beta_prefix_extend Stable theorem; checked-use authorized finite_lt_succ_eq_or_lt Stable theorem; checked-use authorized zero_le Stable theorem; checked-use authorized succ_le_succ Stable theorem; checked-use authorized le_refl 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–10
02Fix variables and assumptionsL11–12
03Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
cases htrace
04Establish hlastL14–18
Establish this local claim before using it. It is not an additional assumption.
05Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
cases hlast
06Establish hstepL20–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply binary modular step exists.
- L20
have hstep : ∃ s. BinaryModularStep(m,x,a,q,s)Definitions: BinaryModularStep - L21
specialize binary_modular_step_exists m - L22
specialize binary_modular_step_exists x - L23
specialize binary_modular_step_exists a - L24
specialize binary_modular_step_exists q - L25
apply binary_modular_step_exists - L26
exact hmodulus - L27
exact hbit
07Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
cases hstep
08Establish hextL29–34
Establish this local claim before using it. It is not an additional assumption.
09Separate the logical casesL35–37
10Construct an explicit witnessL38–39
11Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
split
12Use earlier factsL41–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
13Fix variables and assumptionsL50–51
14Establish hsplitL52–56
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
15Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
cases hsplit
16Construct an explicit witnessL58–60
17Separate the logical casesL61–61
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L61
split
18Calculate and transport equalitiesL62–63
19Use earlier factsL64–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L64
exact hdigit
20Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
21Calculate and transport equalitiesL66–67
22Use earlier factsL68–73
23Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
split
24Calculate and transport equalitiesL75–76
25Use earlier factsL77–78
26Establish holdL79–82
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply htrace right.
27Separate the logical casesL83–88
28Construct an explicit witnessL89–91
29Separate the logical casesL92–92
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L92
split
30Use earlier factsL93–93
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L93
exact hold_witness_witness_witness_left
31Separate the logical casesL94–94
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L94
split
32Use earlier factsL95–99
33Separate the logical casesL100–100
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L100
split
34Use earlier factsL101–109
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L101
specialize hext_witness_witness_right (S i) - L102
specialize hext_witness_witness_right x6 - L103
apply hext_witness_witness_right - L104
specialize succ_le_succ (S i) - L105
specialize succ_le_succ l - L106
apply succ_le_succ - L107
exact hsplit_right - L108
exact hold_witness_witness_witness_right_right_left - L109
exact hold_witness_witness_witness_right_right_right
Original exact command ledger · 109 lines
- 0001
intro b - 0002
intro c - 0003
intro a - 0004
intro m - 0005
intro l - 0006
intro u - 0007
intro v - 0008
intro q - 0009
intro hmodulus - 0010
intro hbit - 0011
intro hdigit - 0012
intro htrace - 0013
cases htrace - 0014
have hlast : exists r. (((exists ff_h_be_extend_last. ff_h_be_extend_last + S (r) = S ((S (l)) * v)) /\ exists ff_q_be_extend_last. u = ff_q_be_extend_last * S ((S (l)) * v) + (r))) - 0015
specialize beta_at_exists u - 0016
specialize beta_at_exists v - 0017
specialize beta_at_exists l - 0018
exact beta_at_exists - 0019
cases hlast - 0020
have hstep : exists s. ((((q = 0) /\ (((exists ff_gap_binary_extend_step_square. ff_gap_binary_extend_step_square + S (s) = m) /\ (exists ff_left_binary_extend_step_square_congruence ff_right_binary_extend_step_square_congruence. (x * x) + m * ff_left_binary_extend_step_square_congruence = (s) + m * ff_right_binary_extend_step_square_congruence)))) \/ ((q = 1) /\ (((exists ff_gap_binary_extend_step_multiply. ff_gap_binary_extend_step_multiply + S (s) = m) /\ (exists ff_left_binary_extend_step_multiply_congruence ff_right_binary_extend_step_multiply_congruence. ((x * x) * a) + m * ff_left_binary_extend_step_multiply_congruence = (s) + m * ff_right_binary_extend_step_multiply_congruence)))))) - 0021
specialize binary_modular_step_exists m - 0022
specialize binary_modular_step_exists x - 0023
specialize binary_modular_step_exists a - 0024
specialize binary_modular_step_exists q - 0025
apply binary_modular_step_exists - 0026
exact hmodulus - 0027
exact hbit - 0028
cases hstep - 0029
have hext : exists z e. ((((exists ff_h_be_extend_new_terminal. ff_h_be_extend_new_terminal + S (x1) = S ((S (S l)) * e)) /\ exists ff_q_be_extend_new_terminal. z = ff_q_be_extend_new_terminal * S ((S (S l)) * e) + (x1))) /\ forall i y. (exists gap. gap + S i = S l) -> (((exists ff_h_be_extend_old_entry. ff_h_be_extend_old_entry + S (y) = S ((S (i)) * v)) /\ exists ff_q_be_extend_old_entry. u = ff_q_be_extend_old_entry * S ((S (i)) * v) + (y))) -> (((exists ff_h_be_extend_new_entry. ff_h_be_extend_new_entry + S (y) = S ((S (i)) * e)) /\ exists ff_q_be_extend_new_entry. z = ff_q_be_extend_new_entry * S ((S (i)) * e) + (y)))) - 0030
specialize beta_prefix_extend (S l) - 0031
specialize beta_prefix_extend u - 0032
specialize beta_prefix_extend v - 0033
specialize beta_prefix_extend x1 - 0034
exact beta_prefix_extend - 0035
cases hext - 0036
cases hext_witness - 0037
cases hext_witness_witness - 0038
exists x2 - 0039
exists x3 - 0040
split - 0041
specialize hext_witness_witness_right 0 - 0042
specialize hext_witness_witness_right 1 - 0043
apply hext_witness_witness_right - 0044
specialize succ_le_succ 0 - 0045
specialize succ_le_succ l - 0046
apply succ_le_succ - 0047
specialize zero_le l - 0048
exact zero_le - 0049
exact htrace_left - 0050
intro i - 0051
intro hi - 0052
have hsplit : i = l \/ exists gap. gap + S i = l - 0053
specialize finite_lt_succ_eq_or_lt l - 0054
specialize finite_lt_succ_eq_or_lt i - 0055
apply finite_lt_succ_eq_or_lt - 0056
exact hi - 0057
cases hsplit - 0058
exists q - 0059
exists x - 0060
exists x1 - 0061
split - 0062
rewrite hsplit_left - 0063
rewrite hsplit_left - 0064
exact hdigit - 0065
split - 0066
rewrite hsplit_left - 0067
rewrite hsplit_left - 0068
specialize hext_witness_witness_right l - 0069
specialize hext_witness_witness_right x - 0070
apply hext_witness_witness_right - 0071
specialize le_refl (S l) - 0072
exact le_refl - 0073
exact hlast_witness - 0074
split - 0075
rewrite hsplit_left - 0076
rewrite hsplit_left - 0077
exact hext_witness_witness_left - 0078
exact hstep_witness - 0079
have hold : exists digit previous current. ((((exists ff_h_be_extend_hold_digit. ff_h_be_extend_hold_digit + S (digit) = S ((S (i)) * c)) /\ exists ff_q_be_extend_hold_digit. b = ff_q_be_extend_hold_digit * S ((S (i)) * c) + (digit))) /\ ((((exists ff_h_be_extend_hold_previous. ff_h_be_extend_hold_previous + S (previous) = S ((S (i)) * v)) /\ exists ff_q_be_extend_hold_previous. u = ff_q_be_extend_hold_previous * S ((S (i)) * v) + (previous))) /\ ((((exists ff_h_be_extend_hold_current. ff_h_be_extend_hold_current + S (current) = S ((S (S i)) * v)) /\ exists ff_q_be_extend_hold_current. u = ff_q_be_extend_hold_current * S ((S (S i)) * v) + (current))) /\ ((((digit = 0) /\ (((exists ff_gap_binary_extend_hold_step_square. ff_gap_binary_extend_hold_step_square + S (current) = m) /\ (exists ff_left_binary_extend_hold_step_square_congruence ff_right_binary_extend_hold_step_square_congruence. (previous * previous) + m * ff_left_binary_extend_hold_step_square_congruence = (current) + m * ff_right_binary_extend_hold_step_square_congruence)))) \/ ((digit = 1) /\ (((exists ff_gap_binary_extend_hold_step_multiply. ff_gap_binary_extend_hold_step_multiply + S (current) = m) /\ (exists ff_left_binary_extend_hold_step_multiply_congruence ff_right_binary_extend_hold_step_multiply_congruence. ((previous * previous) * a) + m * ff_left_binary_extend_hold_step_multiply_congruence = (current) + m * ff_right_binary_extend_hold_step_multiply_congruence))))))))) - 0080
specialize htrace_right i - 0081
apply htrace_right - 0082
exact hsplit_right - 0083
cases hold - 0084
cases hold_witness - 0085
cases hold_witness_witness - 0086
cases hold_witness_witness_witness - 0087
cases hold_witness_witness_witness_right - 0088
cases hold_witness_witness_witness_right_right - 0089
exists x4 - 0090
exists x5 - 0091
exists x6 - 0092
split - 0093
exact hold_witness_witness_witness_left - 0094
split - 0095
specialize hext_witness_witness_right i - 0096
specialize hext_witness_witness_right x5 - 0097
apply hext_witness_witness_right - 0098
exact hi - 0099
exact hold_witness_witness_witness_right_left - 0100
split - 0101
specialize hext_witness_witness_right (S i) - 0102
specialize hext_witness_witness_right x6 - 0103
apply hext_witness_witness_right - 0104
specialize succ_le_succ (S i) - 0105
specialize succ_le_succ l - 0106
apply succ_le_succ - 0107
exact hsplit_right - 0108
exact hold_witness_witness_witness_right_right_left - 0109
exact hold_witness_witness_witness_right_right_right