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 h d A. (d = 0 \/ d = 1) -> N = (h + h) + d -> (exists pc_le_split_eight_half. pc_le_split_eight_half + (h) = (A)) -> (exists pc_le_split_eight_positive. pc_le_split_eight_positive + (1) = (A)) -> (exists pc_le_split_eight_result. pc_le_split_eight_result + (N) = (8 * A))Constructive proof overview
Generated structural guide
An actual binary split whose half is bounded by a positive A is bounded by 8A.
The unchanged tactic script uses 6 declared prerequisites and contains 46 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PC002B binary_split_upper_bound euclidean_log_double_monotone Alpha theorem; checked-use authorized succ_le_succ Stable theorem; checked-use authorized PC002C double_successor_le_triple_of_positive mul_le_mul_right Stable theorem; checked-use authorized le_trans 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.
Named ingredients (2)
01Fix variables and assumptionsL1–8
02Establish hfirstL9–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
- L9
have hfirst : exists g. g + N = S (A + A) - L10
specialize le_trans N - L11
specialize le_trans (S (h + h)) - L12
specialize le_trans (S (A + A)) - L13
apply le_trans - L14
specialize binary_split_upper_bound N - L15
specialize binary_split_upper_bound h - L16
specialize binary_split_upper_bound d - L17
apply binary_split_upper_bound - L18
exact hd
03Use earlier factsL19–26
Instantiate or apply named facts and discharge the corresponding proof obligations.
04Establish hsecondL27–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
05Use earlier factsL37–44
06Construct an explicit witnessL45–45
Supply the displayed value, then prove that it has the required property.
- L45
exists 5
07Calculate and transport equalitiesL46–46
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L46
norm_num
Original exact command ledger · 46 lines
- 0001
intro N - 0002
intro h - 0003
intro d - 0004
intro A - 0005
intro hd - 0006
intro hN - 0007
intro hh - 0008
intro hA - 0009
have hfirst : exists g. g + N = S (A + A) - 0010
specialize le_trans N - 0011
specialize le_trans (S (h + h)) - 0012
specialize le_trans (S (A + A)) - 0013
apply le_trans - 0014
specialize binary_split_upper_bound N - 0015
specialize binary_split_upper_bound h - 0016
specialize binary_split_upper_bound d - 0017
apply binary_split_upper_bound - 0018
exact hd - 0019
exact hN - 0020
specialize succ_le_succ (h + h) - 0021
specialize succ_le_succ (A + A) - 0022
apply succ_le_succ - 0023
specialize euclidean_log_double_monotone h - 0024
specialize euclidean_log_double_monotone A - 0025
apply euclidean_log_double_monotone - 0026
exact hh - 0027
have hsecond : exists g. g + N = 3 * A - 0028
specialize le_trans N - 0029
specialize le_trans (S (A + A)) - 0030
specialize le_trans (3 * A) - 0031
apply le_trans - 0032
exact hfirst - 0033
specialize double_successor_le_triple_of_positive A - 0034
apply double_successor_le_triple_of_positive - 0035
exact hA - 0036
specialize le_trans N - 0037
specialize le_trans (3 * A) - 0038
specialize le_trans (8 * A) - 0039
apply le_trans - 0040
exact hsecond - 0041
specialize mul_le_mul_right 3 - 0042
specialize mul_le_mul_right 8 - 0043
specialize mul_le_mul_right A - 0044
apply mul_le_mul_right - 0045
exists 5 - 0046
norm_num