TS001F

flat_square_index_row_below_width

Alpha v34 independently verified · alpha_closed; checked-use authorized; 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.

Exact expanded first-order arithmetic 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))

Constructive proof overview

Generated structural guide

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

The unchanged tactic script uses 4 declared prerequisites and contains 34 exact native proof lines.

dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged

Proof neighborhood

Direct dependencies

TS001E flat_square_index_row_not_at_least_width le_total Stable theorem; checked-use authorized le_eq_or_lt Stable theorem; checked-use authorized zero_add Stable theorem; checked-use authorized

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

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.

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 : ~(exists ftcn_bound_row_not. ftcn_bound_row_not + (w) = (i))
  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 \/ (exists ftcn_strict_row_split. ftcn_strict_row_split + S (i) = (w))
  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 exact 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 : ~(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 \/ (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