BT0127

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.

Exact expanded 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)))

Structural proof guide

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

Direct prerequisites: add_eq_zero_right, bertrand_closed_upper, le_eq_or_lt, bertrand_upper_endpoint_factorization. The authored body proceeds by case analysis (5), intermediate claims (4), equality transport (1).

Proof neighborhood

Direct dependencies

Direct dependents

none

Formal native tactic body

Dependencies are hypotheses of the historical Alpha-v12 body receipt. The complete historical Alpha-v18 proof bundle independently checks every dependency; current Alpha v25 preserves that checked theorem use without changing Stable membership.

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.

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 : 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)))
  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 \/ (exists v. v + S x = n + n)
  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 exact 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 : 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 \/ (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