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. ∀ l. BinaryDigitPrefix(b,c,S l) → ∃ x. Beta(b,c,l,x) ∧ (x = 0 ∨ x = 1)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 19 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–4
02Establish hdigitL5–9
Establish this local claim before using it. It is not an additional assumption.
- L5
have hdigit : exists x. (((exists ff_h_be_terminal_digit. ff_h_be_terminal_digit + S (x) = S ((S (l)) * c)) /\ exists ff_q_be_terminal_digit. b = ff_q_be_terminal_digit * S ((S (l)) * c) + (x))) - L6
specialize beta_at_exists b - L7
specialize beta_at_exists c - L8
specialize beta_at_exists l - L9
exact beta_at_exists
03Separate the logical casesL10–10
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L10
cases hdigit
04Construct an explicit witnessL11–11
Supply the displayed value, then prove that it has the required property.
- L11
exists x
05Separate the logical casesL12–12
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L12
split
Original defined command ledger · 19 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro hdigits - 0005
have hdigit : exists x. (((exists ff_h_be_terminal_digit. ff_h_be_terminal_digit + S (x) = S ((S (l)) * c)) /\ exists ff_q_be_terminal_digit. b = ff_q_be_terminal_digit * S ((S (l)) * c) + (x))) - 0006
specialize beta_at_exists b - 0007
specialize beta_at_exists c - 0008
specialize beta_at_exists l - 0009
exact beta_at_exists - 0010
cases hdigit - 0011
exists x - 0012
split - 0013
exact hdigit_witness - 0014
specialize hdigits l - 0015
specialize hdigits x - 0016
apply hdigits - 0017
specialize le_refl (S l) - 0018
exact le_refl - 0019
exact hdigit_witness