BT00R9

square_lt_successor_square

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

Every square is strictly below the next natural square.

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 s. exists k. k + S (s * s) = S s * S s

Structural proof guide

Every square is strictly below the next natural square.

Direct prerequisites: le_succ_self, mul_le_mul_right, succ_ne_zero, mul_lt_mul_succ_left_nonzero, lt_of_le_of_lt. The authored body proceeds by intermediate claims (2).

Proof neighborhood

Direct dependencies

Direct dependents

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

16 script commands · 4 reading checkpoints · 2 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 (5)
01Fix variables and assumptionsL1–1

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

  1. L1
    intro s
02Establish hleftL2–4

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

  1. L2
    have hleft : exists k. k + s * s = S s * s
  2. L3
    apply mul_le_mul_right
  3. L4
    apply le_succ_self
03Establish hrightL5–14

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

  1. L5
    have hright : exists k. k + S (S s * s) = S s * S s
  2. L6
    apply mul_lt_mul_succ_left_nonzero
  3. L7
    intro hz
  4. L8
    specialize succ_ne_zero s
  5. L9
    apply succ_ne_zero
  6. L10
    exact hz
  7. L11
    specialize lt_of_le_of_lt (s * s)
  8. L12
    specialize lt_of_le_of_lt (S s * s)
  9. L13
    specialize lt_of_le_of_lt (S s * S s)
  10. L14
    apply lt_of_le_of_lt
04Use earlier factsL15–16

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

  1. L15
    exact hleft
  2. L16
    exact hright

Library-wide reading audit

Original exact command ledger · 16 lines
  1. 0001intro s
  2. 0002have hleft : exists k. k + s * s = S s * s
  3. 0003apply mul_le_mul_right
  4. 0004apply le_succ_self
  5. 0005have hright : exists k. k + S (S s * s) = S s * S s
  6. 0006apply mul_lt_mul_succ_left_nonzero
  7. 0007intro hz
  8. 0008specialize succ_ne_zero s
  9. 0009apply succ_ne_zero
  10. 0010exact hz
  11. 0011specialize lt_of_le_of_lt (s * s)
  12. 0012specialize lt_of_le_of_lt (S s * s)
  13. 0013specialize lt_of_le_of_lt (S s * S s)
  14. 0014apply lt_of_le_of_lt
  15. 0015exact hleft
  16. 0016exact hright