PC0022

binary_split_successor_le_double_successor

The successor of a binary-split exponent is at most twice the successor of its half.

Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable

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

∀ e. ∀ h. ∀ d. ∀ ell. d = 0 ∨ d = 1 → e = h + h + d → ell = S e → Le(ell,S h + S h)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

euclidean_log_double_successor · checked external prerequisitele_succ_self · checked external prerequisitele_refl · checked external prerequisite
Original expanded first-order statement
forall e h d ell. (d = 0 \/ d = 1) -> e = (h + h) + d -> ell = S e -> (exists pc_le_half_successor_result. pc_le_half_successor_result + (ell) = (S h + S h))

Complete tactic proof in conservative notation

All 26 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

26 script commands · 6 reading checkpoints · 3 local claims

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

01Fix variables and assumptionsL1–7

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro e
  2. L2
    intro h
  3. L3
    intro d
  4. L4
    intro ell
  5. L5
    intro hd
  6. L6
    intro he
  7. L7
    intro hl
02Establish hdoubleL8–13

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply euclidean log double successor.

  1. L8
    have hdouble : S h + S h = S (S (h + h))
  2. L9
    specialize euclidean_log_double_successor h
  3. L10
    apply euclidean_log_double_successor
  4. L11
    rewrite hl
  5. L12
    rewrite he
  6. L13
    rewrite hdouble
03Separate the logical casesL14–14

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L14
    cases hd
04Calculate and transport equalitiesL15–15

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L15
    rewrite hd_left
05Establish hzL16–21

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply PA3.

  1. L16
    have hz : (h + h) + 0 = h + h
  2. L17
    apply PA3
  3. L18
    rewrite hz
  4. L19
    specialize le_succ_self (S (h + h))
  5. L20
    apply le_succ_self
  6. L21
    rewrite hd_right
06Establish honeL22–26

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le refl.

  1. L22
    have hone : S ((h + h) + 1) = S (S (h + h))
  2. L23
    simp
  3. L24
    rewrite hone
  4. L25
    specialize le_refl (S (S (h + h)))
  5. L26
    apply le_refl

Library-wide reading audit

Original defined command ledger · 26 lines
  1. 0001intro e
  2. 0002intro h
  3. 0003intro d
  4. 0004intro ell
  5. 0005intro hd
  6. 0006intro he
  7. 0007intro hl
  8. 0008have hdouble : S h + S h = S (S (h + h))
  9. 0009specialize euclidean_log_double_successor h
  10. 0010apply euclidean_log_double_successor
  11. 0011rewrite hl
  12. 0012rewrite he
  13. 0013rewrite hdouble
  14. 0014cases hd
  15. 0015rewrite hd_left
  16. 0016have hz : (h + h) + 0 = h + h
  17. 0017apply PA3
  18. 0018rewrite hz
  19. 0019specialize le_succ_self (S (h + h))
  20. 0020apply le_succ_self
  21. 0021rewrite hd_right
  22. 0022have hone : S ((h + h) + 1) = S (S (h + h))
  23. 0023simp
  24. 0024rewrite hone
  25. 0025specialize le_refl (S (S (h + h)))
  26. 0026apply le_refl