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 m. (d = 0 \/ d = 1) -> N = (h + h) + d -> (exists pc_le_half_lower_input. pc_le_half_lower_input + (m + m) = (N)) -> (exists pc_le_half_lower_result. pc_le_half_lower_result + (m) = (h))Constructive proof overview
Generated structural guide
A lower bound on a doubled input reflects to its actual binary quotient, including either remainder bit.
The unchanged tactic script uses 4 declared prerequisites and contains 43 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
pairing_double_equals_two_mul Alpha theorem; checked-use authorized le_or_lt Stable theorem; checked-use authorized doubling_floor_above_implies_double_above_half Alpha theorem; checked-use authorized lt_not_le 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–7
02Establish heqL8–10
03Establish hrepL11–11
Establish this local claim before using it. It is not an additional assumption.
- L11
have hrep : N = 2 * h \/ N = 2 * h + 1
04Separate the logical casesL12–13
05Calculate and transport equalitiesL14–17
06Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
right
07Calculate and transport equalitiesL19–22
08Establish hsL23–26
09Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases hs
10Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact hs_left
11Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
exfalso
12Use earlier factsL30–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L30
specialize lt_not_le N - L31
specialize lt_not_le (2 * m) - L32
apply lt_not_le - L33
specialize doubling_floor_above_implies_double_above_half N - L34
specialize doubling_floor_above_implies_double_above_half h - L35
specialize doubling_floor_above_implies_double_above_half m - L36
apply doubling_floor_above_implies_double_above_half - L37
exact hrep - L38
exact hs_right
13Establish hmeqL39–43
Original exact command ledger · 43 lines
- 0001
intro N - 0002
intro h - 0003
intro d - 0004
intro m - 0005
intro hd - 0006
intro hN - 0007
intro hm - 0008
have heq : h + h = 2 * h - 0009
specialize pairing_double_equals_two_mul h - 0010
apply pairing_double_equals_two_mul - 0011
have hrep : N = 2 * h \/ N = 2 * h + 1 - 0012
cases hd - 0013
left - 0014
rewrite hN - 0015
rewrite hd_left - 0016
rewrite heq - 0017
simp - 0018
right - 0019
rewrite hN - 0020
rewrite hd_right - 0021
rewrite heq - 0022
refl - 0023
have hs : (exists g. g + m = h) \/ (exists g. g + S h = m) - 0024
specialize le_or_lt m - 0025
specialize le_or_lt h - 0026
apply le_or_lt - 0027
cases hs - 0028
exact hs_left - 0029
exfalso - 0030
specialize lt_not_le N - 0031
specialize lt_not_le (2 * m) - 0032
apply lt_not_le - 0033
specialize doubling_floor_above_implies_double_above_half N - 0034
specialize doubling_floor_above_implies_double_above_half h - 0035
specialize doubling_floor_above_implies_double_above_half m - 0036
apply doubling_floor_above_implies_double_above_half - 0037
exact hrep - 0038
exact hs_right - 0039
have hmeq : m + m = 2 * m - 0040
specialize pairing_double_equals_two_mul m - 0041
apply pairing_double_equals_two_mul - 0042
rewrite hmeq at hm - 0043
exact hm