BT00YF · Bertrand theorem

division_three_scaled_upper_of_quotient_lt

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

A quotient below p places the dividend strictly below 3*p.

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. ∀ q. ∀ r. ∀ p. DivRem(n + n,3,q,r)Lt(q,p)Lt(n + n,p + p + p)

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

3 occurrences

In local proof propositions

4 occurrences

Exact expanded native-PA statement
forall n q r p. (((n + n) = (3) * (q) + (r) /\ (exists bcf_lt_gap_bdtsuql_division_bound. bcf_lt_gap_bdtsuql_division_bound + S (r) = 3))) -> (exists bcf_lt_gap_bdtsuql_quotient. bcf_lt_gap_bdtsuql_quotient + S (q) = p) -> (exists bcf_lt_gap_bdtsuql_result. bcf_lt_gap_bdtsuql_result + S (n + n) = (p + p) + p)

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

46 script commands · 8 reading checkpoints · 6 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 (5)
01Fix variables and assumptionsL1–6

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

  1. L1
    intro n
  2. L2
    intro q
  3. L3
    intro r
  4. L4
    intro p
  5. L5
    intro hdivision
  6. L6
    intro hquotient
02Separate the logical casesL7–7

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

  1. L7
    cases hdivision
03Establish hblockL8–13

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

  1. L8
    have hblock : Lt(3 · q + r,3 · S q)Definitions: Lt(3 · q + r,3 · S q)Original native command in the exact edition
  2. L9
    specialize division_block_upper 3
  3. L10
    specialize division_block_upper q
  4. L11
    specialize division_block_upper r
  5. L12
    apply division_block_upper
  6. L13
    exact hdivision_right
04Establish hblock_alignedL14–16

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

  1. L14
    have hblock_aligned : Lt(n + n,3 · S q)Definitions: Lt(n + n,3 · S q)Original native command in the exact edition
  2. L15
    rewrite hdivision_left
  3. L16
    exact hblock
05Establish hscaledL17–22

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

  1. L17
    have hscaled : Le(3 · S q,3 · p)Definitions: Le(3 · S q,3 · p)Original native command in the exact edition
  2. L18
    specialize mul_le_mul_left (S q)
  3. L19
    specialize mul_le_mul_left p
  4. L20
    specialize mul_le_mul_left 3
  5. L21
    apply mul_le_mul_left
  6. L22
    exact hquotient
06Establish hrawL23–29

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

  1. L23
    have hraw : Lt(n + n,3 · p)Definitions: Lt(n + n,3 · p)Original native command in the exact edition
  2. L24
    specialize lt_of_lt_of_le (n + n)
  3. L25
    specialize lt_of_lt_of_le (3 * S q)
  4. L26
    specialize lt_of_lt_of_le (3 * p)
  5. L27
    apply lt_of_lt_of_le
  6. L28
    exact hblock_aligned
  7. L29
    exact hscaled
07Establish hdoubleL30–37

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

  1. L30
    have hdouble : 2 * p = p + p
  2. L31
    trans 1 * p + p
  3. L32
    specialize mul_succ_left 1
  4. L33
    specialize mul_succ_left p
  5. L34
    exact mul_succ_left
  6. L35
    specialize one_mul p
  7. L36
    rewrite one_mul
  8. L37
    refl
08Establish htripleL38–46

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

  1. L38
    have htriple : 3 * p = (p + p) + p
  2. L39
    trans 2 * p + p
  3. L40
    specialize mul_succ_left 2
  4. L41
    specialize mul_succ_left p
  5. L42
    exact mul_succ_left
  6. L43
    rewrite hdouble
  7. L44
    refl
  8. L45
    rewrite htriple at hraw
  9. L46
    exact hraw

Library-wide reading audit

Original defined command ledger · 46 lines
  1. 0001intro n
  2. 0002intro q
  3. 0003intro r
  4. 0004intro p
  5. 0005intro hdivision
  6. 0006intro hquotient
  7. 0007cases hdivision
  8. 0008have hblock : Lt(3 · q + r,3 · S q)
    Exact native replay linehave hblock : exists bcf_lt_gap_bdtsuql_block. bcf_lt_gap_bdtsuql_block + S (3 * q + r) = 3 * S q
  9. 0009specialize division_block_upper 3
  10. 0010specialize division_block_upper q
  11. 0011specialize division_block_upper r
  12. 0012apply division_block_upper
  13. 0013exact hdivision_right
  14. 0014have hblock_aligned : Lt(n + n,3 · S q)
    Exact native replay linehave hblock_aligned : exists bcf_lt_gap_bdtsuql_block_aligned. bcf_lt_gap_bdtsuql_block_aligned + S (n + n) = 3 * S q
  15. 0015rewrite hdivision_left
  16. 0016exact hblock
  17. 0017have hscaled : Le(3 · S q,3 · p)
    Exact native replay linehave hscaled : exists bcf_le_gap_bdtsuql_scaled. bcf_le_gap_bdtsuql_scaled + (3 * S q) = 3 * p
  18. 0018specialize mul_le_mul_left (S q)
  19. 0019specialize mul_le_mul_left p
  20. 0020specialize mul_le_mul_left 3
  21. 0021apply mul_le_mul_left
  22. 0022exact hquotient
  23. 0023have hraw : Lt(n + n,3 · p)
    Exact native replay linehave hraw : exists bcf_lt_gap_bdtsuql_raw_result. bcf_lt_gap_bdtsuql_raw_result + S (n + n) = 3 * p
  24. 0024specialize lt_of_lt_of_le (n + n)
  25. 0025specialize lt_of_lt_of_le (3 * S q)
  26. 0026specialize lt_of_lt_of_le (3 * p)
  27. 0027apply lt_of_lt_of_le
  28. 0028exact hblock_aligned
  29. 0029exact hscaled
  30. 0030have hdouble : 2 * p = p + p
  31. 0031trans 1 * p + p
  32. 0032specialize mul_succ_left 1
  33. 0033specialize mul_succ_left p
  34. 0034exact mul_succ_left
  35. 0035specialize one_mul p
  36. 0036rewrite one_mul
  37. 0037refl
  38. 0038have htriple : 3 * p = (p + p) + p
  39. 0039trans 2 * p + p
  40. 0040specialize mul_succ_left 2
  41. 0041specialize mul_succ_left p
  42. 0042exact mul_succ_left
  43. 0043rewrite hdouble
  44. 0044refl
  45. 0045rewrite htriple at hraw
  46. 0046exact hraw