Exact expanded first-order arithmetic statement
forall u v i j. (exists jt_gap_flatrow. jt_gap_flatrow+S (i)=(u)) -> (exists jt_gap_flatcolumn. jt_gap_flatcolumn+S (j)=(v)) -> (exists jt_gap_flatresult. jt_gap_flatresult+S (v*i+j)=(u*v))Constructive proof overview
Generated structural guide
Every actual pair of bounded indices has a row-major index below the literal product.
The unchanged tactic script uses 5 declared prerequisites and contains 35 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
finite_add_lt_of_le_of_lt Alpha theorem; checked-use authorized le_refl Alpha theorem; checked-use authorized lt_of_lt_of_le Alpha theorem; checked-use authorized mul_le_mul_right Alpha theorem; checked-use authorized mul_comm Alpha theorem; checked-use authorizedDirect 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
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.
01Fix variables and assumptionsL1–6
02Establish hsL7–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite add lt of le of lt.
- L7
have hs : exists jt_gap_flatadd. jt_gap_flatadd+S (v*i+j)=(v*i+v) - L8
specialize finite_add_lt_of_le_of_lt (v*i) - L9
specialize finite_add_lt_of_le_of_lt (v*i) - L10
specialize finite_add_lt_of_le_of_lt (j) - L11
specialize finite_add_lt_of_le_of_lt (v) - L12
apply finite_add_lt_of_le_of_lt - L13
specialize le_refl (v*i) - L14
apply le_refl - L15
exact hj - L16
specialize lt_of_lt_of_le (v*i+j)
03Use earlier factsL17–20
04Establish hmL21–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul right.
05Establish hcommL27–31
Original exact command ledger · 35 lines
- 0001
intro u - 0002
intro v - 0003
intro i - 0004
intro j - 0005
intro hi - 0006
intro hj - 0007
have hs : exists jt_gap_flatadd. jt_gap_flatadd+S (v*i+j)=(v*i+v) - 0008
specialize finite_add_lt_of_le_of_lt (v*i) - 0009
specialize finite_add_lt_of_le_of_lt (v*i) - 0010
specialize finite_add_lt_of_le_of_lt (j) - 0011
specialize finite_add_lt_of_le_of_lt (v) - 0012
apply finite_add_lt_of_le_of_lt - 0013
specialize le_refl (v*i) - 0014
apply le_refl - 0015
exact hj - 0016
specialize lt_of_lt_of_le (v*i+j) - 0017
specialize lt_of_lt_of_le (v*i+v) - 0018
specialize lt_of_lt_of_le (u*v) - 0019
apply lt_of_lt_of_le - 0020
exact hs - 0021
have hm : exists jt_gap_flatmult. jt_gap_flatmult+(S i*v)=(u*v) - 0022
specialize mul_le_mul_right (S i) - 0023
specialize mul_le_mul_right (u) - 0024
specialize mul_le_mul_right (v) - 0025
apply mul_le_mul_right - 0026
exact hi - 0027
have hcomm : S i*v=v*S i - 0028
specialize mul_comm (S i) - 0029
specialize mul_comm (v) - 0030
apply mul_comm - 0031
rewrite hcomm at hm - 0032
have hstep : v*S i=v*i+v - 0033
apply PA6 - 0034
rewrite hstep at hm - 0035
exact hm