BT00R1 · Bertrand theorem

ceil_div_six_total

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

Every natural has a constructive ceiling quotient by six.

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

∀ x. ∃ e. CeilDivSix(x,e)

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

1 occurrences

In local proof propositions

3 occurrences

Exact expanded native-PA statement
forall x. exists e. (((exists bcs_lower_gap_total_result. bcs_lower_gap_total_result + (x) = 6 * (e)) /\ exists bcs_upper_gap_total_result. bcs_upper_gap_total_result + S (6 * (e)) = (x) + 6))

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

56 script commands · 32 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 (7)
01Fix variables and assumptionsL1–1

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

  1. L1
    intro x
02Establish hdivL2–9

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

  1. L2
    have hdiv : ∃ q. ∃ r. DivRem(x,6,q,r)Definitions: DivRem(x,6,q,r)Original native command in the exact edition
  2. L3
    specialize division_remainder_exists 6
  3. L4
    specialize division_remainder_exists x
  4. L5
    apply division_remainder_exists
  5. L6
    intro h6
  6. L7
    specialize succ_ne_zero 5
  7. L8
    apply succ_ne_zero
  8. L9
    exact h6
03Separate the logical casesL10–12

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

  1. L10
    cases hdiv
  2. L11
    cases hdiv_witness
  3. L12
    cases hdiv_witness_witness
04Use earlier factsL13–13

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

  1. L13
    specialize zero_or_succ x2
05Separate the logical casesL14–14

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

  1. L14
    cases zero_or_succ
06Construct an explicit witnessL15–15

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

  1. L15
    exists x1
07Separate the logical casesL16–16

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

  1. L16
    split
08Construct an explicit witnessL17–17

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

  1. L17
    exists 0
09Calculate and transport equalitiesL18–18

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

  1. L18
    trans x
10Use earlier factsL19–19

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

  1. L19
    apply zero_add
11Calculate and transport equalitiesL20–20

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

  1. L20
    trans 6 * x1 + x2
12Use earlier factsL21–21

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

  1. L21
    exact hdiv_witness_witness_left
13Calculate and transport equalitiesL22–22

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

  1. L22
    rewrite zero_or_succ_left
14Use earlier factsL23–23

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

  1. L23
    apply PA3
15Construct an explicit witnessL24–24

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

  1. L24
    exists 5
16Calculate and transport equalitiesL25–27

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

  1. L25
    rewrite hdiv_witness_witness_left
  2. L26
    rewrite zero_or_succ_left
  3. L27
    trans S (5 + 6 * x1)
17Use earlier factsL28–28

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

  1. L28
    apply PA4
18Calculate and transport equalitiesL29–30

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

  1. L29
    trans S (6 * x1 + 5)
  2. L30
    congr
19Use earlier factsL31–31

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

  1. L31
    apply add_comm
20Calculate and transport equalitiesL32–33

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

  1. L32
    trans 6 * x1 + 6
  2. L33
    symm
21Use earlier factsL34–34

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

  1. L34
    apply PA4
22Calculate and transport equalitiesL35–36

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

  1. L35
    congr
  2. L36
    symm
23Use earlier factsL37–37

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

  1. L37
    apply PA3
24Calculate and transport equalitiesL38–38

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

  1. L38
    refl
25Separate the logical casesL39–39

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

  1. L39
    cases zero_or_succ_right
26Construct an explicit witnessL40–40

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

  1. L40
    exists S x1
27Separate the logical casesL41–41

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

  1. L41
    split
28Establish hrleL42–44

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

  1. L42
  2. L43
    apply lt_to_le
  3. L44
    exact hdiv_witness_witness_right
29Establish hlowL45–47

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

  1. L45
    have hlow : Le(6 · x1 + x2,6 · x1 + 6)Definitions: Le(6 · x1 + x2,6 · x1 + 6)Original native command in the exact edition
  2. L46
    apply add_le_add_left
  3. L47
    exact hrle
30Establish hsixsuccL48–52

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

  1. L48
    have hsixsucc : 6 * S x1 = 6 * x1 + 6
  2. L49
    apply PA6
  3. L50
    rewrite hsixsucc
  4. L51
    rewrite hdiv_witness_witness_left
  5. L52
    exact hlow
31Construct an explicit witnessL53–53

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

  1. L53
    exists x3
32Calculate and transport equalitiesL54–56

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

  1. L54
    rewrite hdiv_witness_witness_left
  2. L55
    rewrite zero_or_succ_right_witness
  3. L56
    simp [add_comm]

Library-wide reading audit

Original defined command ledger · 56 lines
  1. 0001intro x
  2. 0002have hdiv : ∃ q. ∃ r. DivRem(x,6,q,r)
    Exact native replay linehave hdiv : exists q r. x = 6 * q + r /\ exists h. h + S r = 6
  3. 0003specialize division_remainder_exists 6
  4. 0004specialize division_remainder_exists x
  5. 0005apply division_remainder_exists
  6. 0006intro h6
  7. 0007specialize succ_ne_zero 5
  8. 0008apply succ_ne_zero
  9. 0009exact h6
  10. 0010cases hdiv
  11. 0011cases hdiv_witness
  12. 0012cases hdiv_witness_witness
  13. 0013specialize zero_or_succ x2
  14. 0014cases zero_or_succ
  15. 0015exists x1
  16. 0016split
  17. 0017exists 0
  18. 0018trans x
  19. 0019apply zero_add
  20. 0020trans 6 * x1 + x2
  21. 0021exact hdiv_witness_witness_left
  22. 0022rewrite zero_or_succ_left
  23. 0023apply PA3
  24. 0024exists 5
  25. 0025rewrite hdiv_witness_witness_left
  26. 0026rewrite zero_or_succ_left
  27. 0027trans S (5 + 6 * x1)
  28. 0028apply PA4
  29. 0029trans S (6 * x1 + 5)
  30. 0030congr
  31. 0031apply add_comm
  32. 0032trans 6 * x1 + 6
  33. 0033symm
  34. 0034apply PA4
  35. 0035congr
  36. 0036symm
  37. 0037apply PA3
  38. 0038refl
  39. 0039cases zero_or_succ_right
  40. 0040exists S x1
  41. 0041split
  42. 0042have hrle : Le(x2,6)
    Exact native replay linehave hrle : exists k. k + x2 = 6
  43. 0043apply lt_to_le
  44. 0044exact hdiv_witness_witness_right
  45. 0045have hlow : Le(6 · x1 + x2,6 · x1 + 6)
    Exact native replay linehave hlow : exists k. k + (6 * x1 + x2) = 6 * x1 + 6
  46. 0046apply add_le_add_left
  47. 0047exact hrle
  48. 0048have hsixsucc : 6 * S x1 = 6 * x1 + 6
  49. 0049apply PA6
  50. 0050rewrite hsixsucc
  51. 0051rewrite hdiv_witness_witness_left
  52. 0052exact hlow
  53. 0053exists x3
  54. 0054rewrite hdiv_witness_witness_left
  55. 0055rewrite zero_or_succ_right_witness
  56. 0056simp [add_comm]