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 N ell k h U L. (exists pc_le_upper_arith_count. pc_le_upper_arith_count + (k) = (U + L)) -> (exists pc_le_upper_arith_square. pc_le_upper_arith_square + (U * U) = (N)) -> (exists pc_le_upper_arith_small. pc_le_upper_arith_small + (ell) = (2 * U)) -> (exists pc_le_upper_arith_large. pc_le_upper_arith_large + (ell) = (3 * h)) -> (exists pc_le_upper_arith_exponent. pc_le_upper_arith_exponent + (h * L) = (N + N)) -> (exists pc_le_upper_arith_result. pc_le_upper_arith_result + (k * ell) = (8 * N))Constructive proof overview
Generated structural guide
The exact small-prime 2N and large-prime 6N budgets combine to the required 8N bound.
The unchanged tactic script uses 9 declared prerequisites and contains 101 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
mul_le_mul_left Stable theorem; checked-use authorized mul_le_mul_right Stable theorem; checked-use authorized le_trans Stable theorem; checked-use authorized mul_assoc Stable theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized mul_add Stable theorem; checked-use authorized add_mul Stable theorem; checked-use authorized add_le_add_right Stable theorem; checked-use authorized add_le_add_left 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–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.
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 : exists g. g + U * ell = 2 * N - 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.
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 : exists g. g + L * ell = 3 * (N + N) - 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.
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 : exists g. g + (U * ell + L * ell) = 2 * N + 6 * N - 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 exact 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 : exists g. g + 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 : exists g. g + 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 : exists g. g + 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 : exists g. g + 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 : exists g. g + (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 : exists g. g + (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