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.
G101 and G102 were OPEN when these BitLen foundations were first admitted in Alpha v22. Both are now CLOSED in Alpha v23: complete canonical exponent digits and both exact logarithmic execution bounds are proved.
Exact theorem in conservative defined notation
∀ n. ∀ h. ∀ b. ∀ k. ∀ c. BinaryExponentSplit(n,h,b) → BinaryExponentSplit(n,k,c) → h = k ∧ b = c
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 42 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
02Separate the logical casesL8–9
03Establish hboundL10–13
04Establish kboundL14–17
05Establish hequationL18–24
06Establish kequationL25–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply two mul eq add self.
07Use earlier factsL35–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 42 lines
- 0001
intro n - 0002
intro h - 0003
intro b - 0004
intro k - 0005
intro c - 0006
intro hfirst - 0007
intro hsecond - 0008
cases hfirst - 0009
cases hsecond - 0010
have hbound : exists gap. gap + S b = 2 - 0011
specialize binary_length_digit_bounded b - 0012
apply binary_length_digit_bounded - 0013
exact hfirst_left - 0014
have kbound : exists gap. gap + S c = 2 - 0015
specialize binary_length_digit_bounded c - 0016
apply binary_length_digit_bounded - 0017
exact hsecond_left - 0018
have hequation : n = 2 * h + b - 0019
trans (h + h) + b - 0020
exact hfirst_right - 0021
congr - 0022
symm - 0023
apply two_mul_eq_add_self - 0024
refl - 0025
have kequation : n = 2 * k + c - 0026
trans (k + k) + c - 0027
exact hsecond_right - 0028
congr - 0029
symm - 0030
apply two_mul_eq_add_self - 0031
refl - 0032
specialize division_remainder_unique 2 - 0033
specialize division_remainder_unique n - 0034
specialize division_remainder_unique h - 0035
specialize division_remainder_unique b - 0036
specialize division_remainder_unique k - 0037
specialize division_remainder_unique c - 0038
apply division_remainder_unique - 0039
exact hequation - 0040
exact hbound - 0041
exact kequation - 0042
exact kbound