BT0127 · Bertrand theorem

bertrand_strict

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

Every n greater than one has a prime strictly below n+n.

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

∀ n. Lt(1,n) → ∃ x. Prime(x) ∧ (Lt(n,x)Lt(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

4 occurrences

In local proof propositions

4 occurrences

Exact expanded native-PA statement
forall n. (exists h. h + S 1 = n) -> exists p. ((~(p = 1) /\ forall a b. p = a * b -> a = 1 \/ b = 1) /\ ((exists u. u + S n = p) /\ (exists v. v + S p = n + n)))

Proof neighborhood

Direct theorem prerequisites

Direct theorem dependents

none

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 · 15 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 (4)
01Fix variables and assumptionsL1–2

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

  1. L1
    intro n
  2. L2
    intro hlower
02Establish hn_nonzeroL3–4

Establish this local claim before using it. It is not an additional assumption.

  1. L3
    have hn_nonzero : ~(n = 0)
  2. L4
    intro hn_zero
03Separate the logical casesL5–5

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

  1. L5
    cases hlower
04Calculate and transport equalitiesL6–6

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

  1. L6
    rewrite hn_zero at hlower_witness
05Establish htwo_zeroL7–13

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

  1. L7
    have htwo_zero : 2 = 0
  2. L8
    specialize add_eq_zero_right x
  3. L9
    specialize add_eq_zero_right 2
  4. L10
    apply add_eq_zero_right
  5. L11
    exact hlower_witness
  6. L12
    apply PA1
  7. L13
    exact htwo_zero
06Establish hclosedL14–17

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

  1. L14
    have hclosed : ∃ x. Prime(x) ∧ (Lt(n,x) ∧ Le(x,n + n))Definitions: Prime(x)Lt(n,x)Le(x,n + n)Original native command in the exact edition
  2. L15
    specialize bertrand_closed_upper n
  3. L16
    apply bertrand_closed_upper
  4. L17
    exact hn_nonzero
07Separate the logical casesL18–20

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

  1. L18
    cases hclosed
  2. L19
    cases hclosed_witness
  3. L20
    cases hclosed_witness_right
08Establish hsplitL21–25

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

  1. L21
    have hsplit : x = n + n ∨ Lt(x,n + n)Definitions: Lt(x,n + n)Original native command in the exact edition
  2. L22
    specialize le_eq_or_lt x
  3. L23
    specialize le_eq_or_lt (n + n)
  4. L24
    apply le_eq_or_lt
  5. L25
    exact hclosed_witness_right_right
09Separate the logical casesL26–27

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

  1. L26
    cases hsplit
  2. L27
    exfalso
10Use earlier factsL28–33

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

  1. L28
    specialize bertrand_upper_endpoint_factorization n
  2. L29
    specialize bertrand_upper_endpoint_factorization x
  3. L30
    apply bertrand_upper_endpoint_factorization
  4. L31
    exact hlower
  5. L32
    exact hclosed_witness_left
  6. L33
    exact hsplit_left
11Construct an explicit witnessL34–34

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

  1. L34
    exists x
12Separate the logical casesL35–35

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

  1. L35
    split
13Use earlier factsL36–36

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

  1. L36
    exact hclosed_witness_left
14Separate the logical casesL37–37

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

  1. L37
    split
15Use earlier factsL38–39

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

  1. L38
    exact hclosed_witness_right_left
  2. L39
    exact hsplit_right

Library-wide reading audit

Original defined command ledger · 39 lines
  1. 0001intro n
  2. 0002intro hlower
  3. 0003have hn_nonzero : ~(n = 0)
  4. 0004intro hn_zero
  5. 0005cases hlower
  6. 0006rewrite hn_zero at hlower_witness
  7. 0007have htwo_zero : 2 = 0
  8. 0008specialize add_eq_zero_right x
  9. 0009specialize add_eq_zero_right 2
  10. 0010apply add_eq_zero_right
  11. 0011exact hlower_witness
  12. 0012apply PA1
  13. 0013exact htwo_zero
  14. 0014have hclosed : ∃ x. Prime(x) ∧ (Lt(n,x)Le(x,n + n))
    Exact native replay linehave hclosed : exists x. ((~(x = 1) /\ forall bpr_left_bbp02_closed_prime bpr_right_bbp02_closed_prime. x = bpr_left_bbp02_closed_prime * bpr_right_bbp02_closed_prime -> bpr_left_bbp02_closed_prime = 1 \/ bpr_right_bbp02_closed_prime = 1)) /\ ((exists bpr_gap_bbp02_closed_lower. bpr_gap_bbp02_closed_lower + S (n) = x) /\ (exists bpr_le_gap_bbp02_closed_upper. bpr_le_gap_bbp02_closed_upper + (x) = (n + n)))
  15. 0015specialize bertrand_closed_upper n
  16. 0016apply bertrand_closed_upper
  17. 0017exact hn_nonzero
  18. 0018cases hclosed
  19. 0019cases hclosed_witness
  20. 0020cases hclosed_witness_right
  21. 0021have hsplit : x = n + n ∨ Lt(x,n + n)
    Exact native replay linehave hsplit : x = n + n \/ (exists v. v + S x = n + n)
  22. 0022specialize le_eq_or_lt x
  23. 0023specialize le_eq_or_lt (n + n)
  24. 0024apply le_eq_or_lt
  25. 0025exact hclosed_witness_right_right
  26. 0026cases hsplit
  27. 0027exfalso
  28. 0028specialize bertrand_upper_endpoint_factorization n
  29. 0029specialize bertrand_upper_endpoint_factorization x
  30. 0030apply bertrand_upper_endpoint_factorization
  31. 0031exact hlower
  32. 0032exact hclosed_witness_left
  33. 0033exact hsplit_left
  34. 0034exists x
  35. 0035split
  36. 0036exact hclosed_witness_left
  37. 0037split
  38. 0038exact hclosed_witness_right_left
  39. 0039exact hsplit_right