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. ∀ u. ∀ v. ∀ q. BinaryModulus(m) → q = 0 ∨ q = 1 → Beta(b,c,l,q) → BinaryExecutionTrace(b,c,a,m,l,u,v) → ∃ x. ∃ y. BinaryExecutionTrace(b,c,a,m,S l,x,y)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 109 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.
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: BinaryModularStepOriginal native command in the exact edition - 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.
- L29
have hext : ∃ z. ∃ e. Beta(z,e,S l,x1) ∧ (∀ x. ∀ y. Lt(x,S l) → Beta(u,v,x,y) → Beta(z,e,x,y))Definitions: BetaLtOriginal native command in the exact edition - L30
specialize beta_prefix_extend (S l) - L31
specialize beta_prefix_extend u - L32
specialize beta_prefix_extend v - L33
specialize beta_prefix_extend x1 - L34
exact beta_prefix_extend
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.
- L79
have hold : ∃ digit. ∃ previous. ∃ current. Beta(b,c,i,digit) ∧ (Beta(u,v,i,previous) ∧ (Beta(u,v,S i,current) ∧ BinaryModularStep(m,previous,a,digit,current)))Definitions: BetaBinaryModularStepOriginal native command in the exact edition - L80
specialize htrace_right i - L81
apply htrace_right - L82
exact hsplit_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 defined 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