TS001F · theorem body

flat_square_index_row_below_width

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

Division decoding of a flat index strictly inside a square grid yields a strictly width-bounded row.

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

∀ w. ∀ i. ∀ j. ∀ k. k = w · i + j → Lt(k,w · w)Lt(i,w)

Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.

Definitions used by this theorem

In the theorem statement

In local proof propositions

Exact expanded first-order statement
forall w i j k. k = w * i + j -> (exists ftcn_strict_row_source. ftcn_strict_row_source + S (k) = (w * w)) -> (exists ftcn_strict_row_result. ftcn_strict_row_result + S (i) = (w))

Proof neighborhood

Direct theorem prerequisites

TS001E flat_square_index_row_not_at_least_width le_total · Stable closed le_eq_or_lt · Stable closed zero_add · Stable closed

Direct theorem dependents

Definition-aware tactic body

Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay command.

Read the argument

Proof checkpoints

34 script commands · 12 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.

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 (1)
01Fix variables and assumptionsL1–6

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

  1. L1
    intro w
  2. L2
    intro i
  3. L3
    intro j
  4. L4
    intro k
  5. L5
    intro hindex
  6. L6
    intro hbound
02Establish hnotL7–16

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply flat square index row not at least width.

  1. L7
    have hnot : ¬Le(w,i)Definitions: Le(w,i)Original native command in the exact edition
  2. L8
    intro hbad
  3. L9
    specialize flat_square_index_row_not_at_least_width w
  4. L10
    specialize flat_square_index_row_not_at_least_width i
  5. L11
    specialize flat_square_index_row_not_at_least_width j
  6. L12
    specialize flat_square_index_row_not_at_least_width k
  7. L13
    apply flat_square_index_row_not_at_least_width
  8. L14
    exact hindex
  9. L15
    exact hbound
  10. L16
    exact hbad
03Use earlier factsL17–18

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

  1. L17
    specialize le_total i
  2. L18
    specialize le_total w
04Separate the logical casesL19–19

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

  1. L19
    cases le_total
05Establish hsplitL20–24

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

  1. L20
    have hsplit : i = w ∨ Lt(i,w)Definitions: Lt(i,w)Original native command in the exact edition
  2. L21
    specialize le_eq_or_lt i
  3. L22
    specialize le_eq_or_lt w
  4. L23
    apply le_eq_or_lt
  5. L24
    exact le_total_left
06Separate the logical casesL25–26

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

  1. L25
    cases hsplit
  2. L26
    exfalso
07Use earlier factsL27–27

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

  1. L27
    apply hnot
08Construct an explicit witnessL28–28

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

  1. L28
    exists 0
09Calculate and transport equalitiesL29–29

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

  1. L29
    rewrite hsplit_left
10Use earlier factsL30–31

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

  1. L30
    apply zero_add
  2. L31
    exact hsplit_right
11Separate the logical casesL32–32

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

  1. L32
    exfalso
12Use earlier factsL33–34

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

  1. L33
    apply hnot
  2. L34
    exact le_total_right

Library-wide reading audit

Original defined command ledger · 34 lines
  1. 0001intro w
  2. 0002intro i
  3. 0003intro j
  4. 0004intro k
  5. 0005intro hindex
  6. 0006intro hbound
  7. 0007have hnot : ¬Le(w,i)
    Exact native replay linehave hnot : ~(exists ftcn_bound_row_not. ftcn_bound_row_not + (w) = (i))
  8. 0008intro hbad
  9. 0009specialize flat_square_index_row_not_at_least_width w
  10. 0010specialize flat_square_index_row_not_at_least_width i
  11. 0011specialize flat_square_index_row_not_at_least_width j
  12. 0012specialize flat_square_index_row_not_at_least_width k
  13. 0013apply flat_square_index_row_not_at_least_width
  14. 0014exact hindex
  15. 0015exact hbound
  16. 0016exact hbad
  17. 0017specialize le_total i
  18. 0018specialize le_total w
  19. 0019cases le_total
  20. 0020have hsplit : i = w ∨ Lt(i,w)
    Exact native replay linehave hsplit : i = w \/ (exists ftcn_strict_row_split. ftcn_strict_row_split + S (i) = (w))
  21. 0021specialize le_eq_or_lt i
  22. 0022specialize le_eq_or_lt w
  23. 0023apply le_eq_or_lt
  24. 0024exact le_total_left
  25. 0025cases hsplit
  26. 0026exfalso
  27. 0027apply hnot
  28. 0028exists 0
  29. 0029rewrite hsplit_left
  30. 0030apply zero_add
  31. 0031exact hsplit_right
  32. 0032exfalso
  33. 0033apply hnot
  34. 0034exact le_total_right