BT00RC · Bertrand theorem

floor_sqrt_monotone

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

Witness order on inputs is transported monotonically to floor roots.

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. ∀ y. ∀ s. ∀ t. FloorSqrt(x,s)FloorSqrt(y,t)Le(x,y)Le(s,t)

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

5 occurrences

Exact expanded native-PA statement
forall x y s t. (((exists bcs_sqrt_lower_gap_monotone_left. bcs_sqrt_lower_gap_monotone_left + (s) * (s) = (x)) /\ exists bcs_sqrt_upper_gap_monotone_left. bcs_sqrt_upper_gap_monotone_left + S (x) = S (s) * S (s))) -> (((exists bcs_sqrt_lower_gap_monotone_right. bcs_sqrt_lower_gap_monotone_right + (t) * (t) = (y)) /\ exists bcs_sqrt_upper_gap_monotone_right. bcs_sqrt_upper_gap_monotone_right + S (y) = S (t) * S (t))) -> (exists k. k + x = y) -> exists k. k + s = t

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

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

  1. L1
    intro x
  2. L2
    intro y
  3. L3
    intro s
  4. L4
    intro t
  5. L5
    intro hs
  6. L6
    intro ht
  7. L7
    intro hxy
02Separate the logical casesL8–9

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

  1. L8
    cases hs
  2. L9
    cases ht
03Use earlier factsL10–11

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

  1. L10
    specialize le_or_lt s
  2. L11
    specialize le_or_lt t
04Separate the logical casesL12–12

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

  1. L12
    cases le_or_lt
05Use earlier factsL13–13

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

  1. L13
    exact le_or_lt_left
06Separate the logical casesL14–14

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

  1. L14
    exfalso
07Establish honeL15–17

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

  1. L15
    have hone : Le(S t · S t,s · S t)Definitions: Le(S t · S t,s · S t)Original native command in the exact edition
  2. L16
    apply mul_le_mul_right
  3. L17
    exact le_or_lt_right
08Establish htwoL18–20

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

  1. L18
    have htwo : Le(s · S t,s · s)Definitions: Le(s · S t,s · s)Original native command in the exact edition
  2. L19
    apply mul_le_mul_left
  3. L20
    exact le_or_lt_right
09Establish hsquareL21–27

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

  1. L21
    have hsquare : Le(S t · S t,s · s)Definitions: Le(S t · S t,s · s)Original native command in the exact edition
  2. L22
    specialize le_trans (S t * S t)
  3. L23
    specialize le_trans (s * S t)
  4. L24
    specialize le_trans (s * s)
  5. L25
    apply le_trans
  6. L26
    exact hone
  7. L27
    exact htwo
10Establish hsyL28–34

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

  1. L28
  2. L29
    specialize le_trans (s * s)
  3. L30
    specialize le_trans x
  4. L31
    specialize le_trans y
  5. L32
    apply le_trans
  6. L33
    exact hs_left
  7. L34
    exact hxy
11Establish hyltL35–44

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

  1. L35
  2. L36
    specialize lt_of_lt_of_le y
  3. L37
    specialize lt_of_lt_of_le (S t * S t)
  4. L38
    specialize lt_of_lt_of_le (s * s)
  5. L39
    apply lt_of_lt_of_le
  6. L40
    exact ht_right
  7. L41
    exact hsquare
  8. L42
    specialize lt_not_le y
  9. L43
    specialize lt_not_le (s * s)
  10. L44
    apply lt_not_le
12Use earlier factsL45–46

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

  1. L45
    exact hylt
  2. L46
    exact hsy

Library-wide reading audit

Original defined command ledger · 46 lines
  1. 0001intro x
  2. 0002intro y
  3. 0003intro s
  4. 0004intro t
  5. 0005intro hs
  6. 0006intro ht
  7. 0007intro hxy
  8. 0008cases hs
  9. 0009cases ht
  10. 0010specialize le_or_lt s
  11. 0011specialize le_or_lt t
  12. 0012cases le_or_lt
  13. 0013exact le_or_lt_left
  14. 0014exfalso
  15. 0015have hone : Le(S t · S t,s · S t)
    Exact native replay linehave hone : exists k. k + S t * S t = s * S t
  16. 0016apply mul_le_mul_right
  17. 0017exact le_or_lt_right
  18. 0018have htwo : Le(s · S t,s · s)
    Exact native replay linehave htwo : exists k. k + s * S t = s * s
  19. 0019apply mul_le_mul_left
  20. 0020exact le_or_lt_right
  21. 0021have hsquare : Le(S t · S t,s · s)
    Exact native replay linehave hsquare : exists k. k + S t * S t = s * s
  22. 0022specialize le_trans (S t * S t)
  23. 0023specialize le_trans (s * S t)
  24. 0024specialize le_trans (s * s)
  25. 0025apply le_trans
  26. 0026exact hone
  27. 0027exact htwo
  28. 0028have hsy : Le(s · s,y)
    Exact native replay linehave hsy : exists k. k + s * s = y
  29. 0029specialize le_trans (s * s)
  30. 0030specialize le_trans x
  31. 0031specialize le_trans y
  32. 0032apply le_trans
  33. 0033exact hs_left
  34. 0034exact hxy
  35. 0035have hylt : Lt(y,s · s)
    Exact native replay linehave hylt : exists k. k + S y = s * s
  36. 0036specialize lt_of_lt_of_le y
  37. 0037specialize lt_of_lt_of_le (S t * S t)
  38. 0038specialize lt_of_lt_of_le (s * s)
  39. 0039apply lt_of_lt_of_le
  40. 0040exact ht_right
  41. 0041exact hsquare
  42. 0042specialize lt_not_le y
  43. 0043specialize lt_not_le (s * s)
  44. 0044apply lt_not_le
  45. 0045exact hylt
  46. 0046exact hsy