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.
These are the exact finite integer inequalities with constant 8, for every N≥2. The proof uses constructive binomial and primorial infrastructure; it does not assume logarithms, asymptotic estimates, the prime number theorem, or a factorization oracle.
Exact theorem in conservative defined notation
∀ N. ∀ ell. ∀ k. ∀ h. ∀ U. ∀ L. Le(k,U + L) → Le(U · U,N) → Le(ell,2 · U) → Le(ell,3 · h) → Le(h · L,N + N) → Le(k · ell,8 · N)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 101 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay 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–11
Work with arbitrary variables or the premises of the current implication.
- L11
intro he
03Establish hsmall0L12–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul left.
- L12
have hsmall0 : Le(U · ell,U · (2 · U))Definitions: Le(U · ell,U · (2 · U))Original native command in the exact edition - L13
specialize mul_le_mul_left ell - L14
specialize mul_le_mul_left (2 * U) - L15
specialize mul_le_mul_left U - L16
apply mul_le_mul_left - L17
exact hs
04Establish hsmall1L18–22
05Establish hsmallL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
- L23
have hsmall : Le(U · ell,2 · N)Definitions: Le(U · ell,2 · N)Original native command in the exact edition - L24
specialize le_trans (U * ell) - L25
specialize le_trans (2 * (U * U)) - L26
specialize le_trans (2 * N) - L27
apply le_trans - L28
exact hsmall0 - L29
specialize mul_le_mul_left (U * U) - L30
specialize mul_le_mul_left N - L31
specialize mul_le_mul_left 2 - L32
apply mul_le_mul_left
06Use earlier factsL33–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
exact hsq
07Establish hlarge0L34–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul left.
- L34
have hlarge0 : Le(L · ell,L · (3 · h))Definitions: Le(L · ell,L · (3 · h))Original native command in the exact edition - L35
specialize mul_le_mul_left ell - L36
specialize mul_le_mul_left (3 * h) - L37
specialize mul_le_mul_left L - L38
apply mul_le_mul_left - L39
exact hl
08Establish hlarge1L40–44
09Establish hlarge2L45–54
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
- L45
have hlarge2 : Le(L · ell,3 · (N + N))Definitions: Le(L · ell,3 · (N + N))Original native command in the exact edition - L46
specialize le_trans (L * ell) - L47
specialize le_trans (3 * (h * L)) - L48
specialize le_trans (3 * (N + N)) - L49
apply le_trans - L50
exact hlarge0 - L51
specialize mul_le_mul_left (h * L) - L52
specialize mul_le_mul_left (N + N) - L53
specialize mul_le_mul_left 3 - L54
apply mul_le_mul_left
10Use earlier factsL55–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L55
exact he
11Establish hsixL56–59
12Establish hsixnumL60–64
13Establish hsum0L65–70
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add le add right.
- L65
have hsum0 : Le(U · ell + L · ell,2 · N + L · ell)Definitions: Le(U · ell + L · ell,2 · N + L · ell)Original native command in the exact edition - L66
specialize add_le_add_right (U * ell) - L67
specialize add_le_add_right (2 * N) - L68
specialize add_le_add_right (L * ell) - L69
apply add_le_add_right - L70
exact hsmall
14Establish hsumL71–80
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
- L71
have hsum : Le(U · ell + L · ell,2 · N + 6 · N)Definitions: Le(U · ell + L · ell,2 · N + 6 · N)Original native command in the exact edition - L72
specialize le_trans (U * ell + L * ell) - L73
specialize le_trans (2 * N + L * ell) - L74
specialize le_trans (2 * N + 6 * N) - L75
apply le_trans - L76
exact hsum0 - L77
specialize add_le_add_left (L * ell) - L78
specialize add_le_add_left (6 * N) - L79
specialize add_le_add_left (2 * N) - L80
apply add_le_add_left
15Use earlier factsL81–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L81
exact hlarge2
16Establish hproductL82–84
17Establish heightL85–86
18Establish heightnumL87–96
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add mul.
Original defined command ledger · 101 lines
- 0001
intro N - 0002
intro ell - 0003
intro k - 0004
intro h - 0005
intro U - 0006
intro L - 0007
intro hk - 0008
intro hsq - 0009
intro hs - 0010
intro hl - 0011
intro he - 0012
have hsmall0 : Le(U · ell,U · (2 · U)) - 0013
specialize mul_le_mul_left ell - 0014
specialize mul_le_mul_left (2 * U) - 0015
specialize mul_le_mul_left U - 0016
apply mul_le_mul_left - 0017
exact hs - 0018
have hsmall1 : U * (2 * U) = 2 * (U * U) - 0019
trans (2 * U) * U - 0020
apply mul_comm - 0021
apply mul_assoc - 0022
rewrite hsmall1 at hsmall0 - 0023
have hsmall : Le(U · ell,2 · N) - 0024
specialize le_trans (U * ell) - 0025
specialize le_trans (2 * (U * U)) - 0026
specialize le_trans (2 * N) - 0027
apply le_trans - 0028
exact hsmall0 - 0029
specialize mul_le_mul_left (U * U) - 0030
specialize mul_le_mul_left N - 0031
specialize mul_le_mul_left 2 - 0032
apply mul_le_mul_left - 0033
exact hsq - 0034
have hlarge0 : Le(L · ell,L · (3 · h)) - 0035
specialize mul_le_mul_left ell - 0036
specialize mul_le_mul_left (3 * h) - 0037
specialize mul_le_mul_left L - 0038
apply mul_le_mul_left - 0039
exact hl - 0040
have hlarge1 : L * (3 * h) = 3 * (h * L) - 0041
trans (3 * h) * L - 0042
apply mul_comm - 0043
apply mul_assoc - 0044
rewrite hlarge1 at hlarge0 - 0045
have hlarge2 : Le(L · ell,3 · (N + N)) - 0046
specialize le_trans (L * ell) - 0047
specialize le_trans (3 * (h * L)) - 0048
specialize le_trans (3 * (N + N)) - 0049
apply le_trans - 0050
exact hlarge0 - 0051
specialize mul_le_mul_left (h * L) - 0052
specialize mul_le_mul_left (N + N) - 0053
specialize mul_le_mul_left 3 - 0054
apply mul_le_mul_left - 0055
exact he - 0056
have hsix : 3 * (N + N) = 6 * N - 0057
trans 3 * N + 3 * N - 0058
apply mul_add - 0059
symm - 0060
have hsixnum : 6 = 3 + 3 - 0061
norm_num - 0062
rewrite hsixnum - 0063
apply add_mul - 0064
rewrite hsix at hlarge2 - 0065
have hsum0 : Le(U · ell + L · ell,2 · N + L · ell) - 0066
specialize add_le_add_right (U * ell) - 0067
specialize add_le_add_right (2 * N) - 0068
specialize add_le_add_right (L * ell) - 0069
apply add_le_add_right - 0070
exact hsmall - 0071
have hsum : Le(U · ell + L · ell,2 · N + 6 · N) - 0072
specialize le_trans (U * ell + L * ell) - 0073
specialize le_trans (2 * N + L * ell) - 0074
specialize le_trans (2 * N + 6 * N) - 0075
apply le_trans - 0076
exact hsum0 - 0077
specialize add_le_add_left (L * ell) - 0078
specialize add_le_add_left (6 * N) - 0079
specialize add_le_add_left (2 * N) - 0080
apply add_le_add_left - 0081
exact hlarge2 - 0082
have hproduct : (U + L) * ell = U * ell + L * ell - 0083
apply add_mul - 0084
rewrite <- hproduct at hsum - 0085
have height : 2 * N + 6 * N = 8 * N - 0086
symm - 0087
have heightnum : 8 = 2 + 6 - 0088
norm_num - 0089
rewrite heightnum - 0090
apply add_mul - 0091
rewrite height at hsum - 0092
specialize le_trans (k * ell) - 0093
specialize le_trans ((U + L) * ell) - 0094
specialize le_trans (8 * N) - 0095
apply le_trans - 0096
specialize mul_le_mul_right k - 0097
specialize mul_le_mul_right (U + L) - 0098
specialize mul_le_mul_right ell - 0099
apply mul_le_mul_right - 0100
exact hk - 0101
exact hsum