BT011Q · Bertrand theorem

bertrand_covering_interval

Alpha v34 checked-use theorem · independently kernel and Lean verified; not Stable

One checked adjacent cover supplies a Bertrand witness.

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.

Statement with defined notation

∀ a. ∀ b. ∀ n. Prime(b)Le(a,n)Lt(n,b)Le(b,a + a) → ∃ x. Prime(x) ∧ (Lt(n,x)Le(x,n + n))

Every purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.

Definitions used by this theorem

In the theorem statement

7 occurrences

In local proof propositions

4 occurrences

Exact expanded native-PA statement
forall a b n. ((~(b = 1) /\ forall bpr_left_bb8ci_prime bpr_right_bb8ci_prime. b = bpr_left_bb8ci_prime * bpr_right_bb8ci_prime -> bpr_left_bb8ci_prime = 1 \/ bpr_right_bb8ci_prime = 1)) -> (exists bpr_le_gap_bb8ci_lower. bpr_le_gap_bb8ci_lower + (a) = (n)) -> (exists bpr_gap_bb8ci_strict. bpr_gap_bb8ci_strict + S (n) = b) -> (exists bpr_le_gap_bb8ci_cover. bpr_le_gap_bb8ci_cover + (b) = (a + a)) -> exists p. ((~(p = 1) /\ forall bpr_left_bb8ci_result_prime bpr_right_bb8ci_result_prime. p = bpr_left_bb8ci_result_prime * bpr_right_bb8ci_result_prime -> bpr_left_bb8ci_result_prime = 1 \/ bpr_right_bb8ci_result_prime = 1)) /\ ((exists bpr_gap_bb8ci_result_strict. bpr_gap_bb8ci_result_strict + S (n) = p) /\ (exists bpr_le_gap_bb8ci_result_upper. bpr_le_gap_bb8ci_result_upper + (p) = (n + n)))

Proof neighborhood

Direct theorem prerequisites

Direct theorem dependents

Definition-aware tactic body

Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic script.

Read the argument

Proof checkpoints

39 script commands · 10 reading checkpoints · 4 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.

Named ingredients (3)
01Fix variables and assumptionsL1–7

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

  1. L1
    intro a
  2. L2
    intro b
  3. L3
    intro n
  4. L4
    intro hprime
  5. L5
    intro hlower
  6. L6
    intro hstrict
  7. L7
    intro hcover
02Establish hfirstL8–13

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

  1. L8
    have hfirst : Le(a + a,n + a)Definitions: Le(a + a,n + a)Original native command in the exact edition
  2. L9
    specialize add_le_add_right a
  3. L10
    specialize add_le_add_right n
  4. L11
    specialize add_le_add_right a
  5. L12
    apply add_le_add_right
  6. L13
    exact hlower
03Establish hsecondL14–19

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

  1. L14
    have hsecond : Le(n + a,n + n)Definitions: Le(n + a,n + n)Original native command in the exact edition
  2. L15
    specialize add_le_add_left a
  3. L16
    specialize add_le_add_left n
  4. L17
    specialize add_le_add_left n
  5. L18
    apply add_le_add_left
  6. L19
    exact hlower
04Establish hdoubleL20–26

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

  1. L20
    have hdouble : Le(a + a,n + n)Definitions: Le(a + a,n + n)Original native command in the exact edition
  2. L21
    specialize le_trans (a + a)
  3. L22
    specialize le_trans (n + a)
  4. L23
    specialize le_trans (n + n)
  5. L24
    apply le_trans
  6. L25
    exact hfirst
  7. L26
    exact hsecond
05Establish hupperL27–33

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

  1. L27
    have hupper : Le(b,n + n)Definitions: Le(b,n + n)Original native command in the exact edition
  2. L28
    specialize le_trans b
  3. L29
    specialize le_trans (a + a)
  4. L30
    specialize le_trans (n + n)
  5. L31
    apply le_trans
  6. L32
    exact hcover
  7. L33
    exact hdouble
06Construct an explicit witnessL34–34

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

  1. L34
    exists b
07Separate the logical casesL35–35

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

  1. L35
    split
08Use earlier factsL36–36

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

  1. L36
    exact hprime
09Separate the logical casesL37–37

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

  1. L37
    split
10Use earlier factsL38–39

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

  1. L38
    exact hstrict
  2. L39
    exact hupper

Library-wide reading audit

Original defined command ledger · 39 lines
  1. 0001intro a
  2. 0002intro b
  3. 0003intro n
  4. 0004intro hprime
  5. 0005intro hlower
  6. 0006intro hstrict
  7. 0007intro hcover
  8. 0008have hfirst : Le(a + a,n + a)
    Exact native replay linehave hfirst : exists k. k + (a + a) = n + a
  9. 0009specialize add_le_add_right a
  10. 0010specialize add_le_add_right n
  11. 0011specialize add_le_add_right a
  12. 0012apply add_le_add_right
  13. 0013exact hlower
  14. 0014have hsecond : Le(n + a,n + n)
    Exact native replay linehave hsecond : exists k. k + (n + a) = n + n
  15. 0015specialize add_le_add_left a
  16. 0016specialize add_le_add_left n
  17. 0017specialize add_le_add_left n
  18. 0018apply add_le_add_left
  19. 0019exact hlower
  20. 0020have hdouble : Le(a + a,n + n)
    Exact native replay linehave hdouble : exists k. k + (a + a) = n + n
  21. 0021specialize le_trans (a + a)
  22. 0022specialize le_trans (n + a)
  23. 0023specialize le_trans (n + n)
  24. 0024apply le_trans
  25. 0025exact hfirst
  26. 0026exact hsecond
  27. 0027have hupper : Le(b,n + n)
    Exact native replay linehave hupper : exists k. k + b = n + n
  28. 0028specialize le_trans b
  29. 0029specialize le_trans (a + a)
  30. 0030specialize le_trans (n + n)
  31. 0031apply le_trans
  32. 0032exact hcover
  33. 0033exact hdouble
  34. 0034exists b
  35. 0035split
  36. 0036exact hprime
  37. 0037split
  38. 0038exact hstrict
  39. 0039exact hupper