PC002D

binary_split_eight_bound

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

An actual binary split whose half is bounded by a positive A is bounded by 8A.

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 authorized

Direct 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

46 script commands · 7 reading checkpoints · 2 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.

Named ingredients (2)
01Fix variables and assumptionsL1–8

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

  1. L1
    intro N
  2. L2
    intro h
  3. L3
    intro d
  4. L4
    intro A
  5. L5
    intro hd
  6. L6
    intro hN
  7. L7
    intro hh
  8. L8
    intro hA
02Establish hfirstL9–18

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

  1. L9
    have hfirst : exists g. g + N = S (A + A)
  2. L10
    specialize le_trans N
  3. L11
    specialize le_trans (S (h + h))
  4. L12
    specialize le_trans (S (A + A))
  5. L13
    apply le_trans
  6. L14
    specialize binary_split_upper_bound N
  7. L15
    specialize binary_split_upper_bound h
  8. L16
    specialize binary_split_upper_bound d
  9. L17
    apply binary_split_upper_bound
  10. L18
    exact hd
03Use earlier factsL19–26

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L19
    exact hN
  2. L20
    specialize succ_le_succ (h + h)
  3. L21
    specialize succ_le_succ (A + A)
  4. L22
    apply succ_le_succ
  5. L23
    specialize euclidean_log_double_monotone h
  6. L24
    specialize euclidean_log_double_monotone A
  7. L25
    apply euclidean_log_double_monotone
  8. L26
    exact hh
04Establish hsecondL27–36

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

  1. L27
    have hsecond : exists g. g + N = 3 * A
  2. L28
    specialize le_trans N
  3. L29
    specialize le_trans (S (A + A))
  4. L30
    specialize le_trans (3 * A)
  5. L31
    apply le_trans
  6. L32
    exact hfirst
  7. L33
    specialize double_successor_le_triple_of_positive A
  8. L34
    apply double_successor_le_triple_of_positive
  9. L35
    exact hA
  10. L36
    specialize le_trans N
05Use earlier factsL37–44

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L37
    specialize le_trans (3 * A)
  2. L38
    specialize le_trans (8 * A)
  3. L39
    apply le_trans
  4. L40
    exact hsecond
  5. L41
    specialize mul_le_mul_right 3
  6. L42
    specialize mul_le_mul_right 8
  7. L43
    specialize mul_le_mul_right A
  8. L44
    apply mul_le_mul_right
06Construct an explicit witnessL45–45

Supply the displayed value, then prove that it has the required property.

  1. 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.

  1. L46
    norm_num

Library-wide reading audit

Original exact command ledger · 46 lines
  1. 0001intro N
  2. 0002intro h
  3. 0003intro d
  4. 0004intro A
  5. 0005intro hd
  6. 0006intro hN
  7. 0007intro hh
  8. 0008intro hA
  9. 0009have hfirst : exists g. g + N = S (A + A)
  10. 0010specialize le_trans N
  11. 0011specialize le_trans (S (h + h))
  12. 0012specialize le_trans (S (A + A))
  13. 0013apply le_trans
  14. 0014specialize binary_split_upper_bound N
  15. 0015specialize binary_split_upper_bound h
  16. 0016specialize binary_split_upper_bound d
  17. 0017apply binary_split_upper_bound
  18. 0018exact hd
  19. 0019exact hN
  20. 0020specialize succ_le_succ (h + h)
  21. 0021specialize succ_le_succ (A + A)
  22. 0022apply succ_le_succ
  23. 0023specialize euclidean_log_double_monotone h
  24. 0024specialize euclidean_log_double_monotone A
  25. 0025apply euclidean_log_double_monotone
  26. 0026exact hh
  27. 0027have hsecond : exists g. g + N = 3 * A
  28. 0028specialize le_trans N
  29. 0029specialize le_trans (S (A + A))
  30. 0030specialize le_trans (3 * A)
  31. 0031apply le_trans
  32. 0032exact hfirst
  33. 0033specialize double_successor_le_triple_of_positive A
  34. 0034apply double_successor_le_triple_of_positive
  35. 0035exact hA
  36. 0036specialize le_trans N
  37. 0037specialize le_trans (3 * A)
  38. 0038specialize le_trans (8 * A)
  39. 0039apply le_trans
  40. 0040exact hsecond
  41. 0041specialize mul_le_mul_right 3
  42. 0042specialize mul_le_mul_right 8
  43. 0043specialize mul_le_mul_right A
  44. 0044apply mul_le_mul_right
  45. 0045exists 5
  46. 0046norm_num