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 expanded first-order arithmetic statement
forall m n k. (exists pvs_gap_coordinate_source. pvs_gap_coordinate_source + S (k) = (m*n)) -> (exists scp_coordinate_row_coordinate_result scp_coordinate_column_coordinate_result. (((k)=((n)*(scp_coordinate_row_coordinate_result)+(scp_coordinate_column_coordinate_result))) /\ (((exists pvs_gap_coordinate_resultrow. pvs_gap_coordinate_resultrow + S (scp_coordinate_row_coordinate_result) = (m)) /\ (exists pvs_gap_coordinate_resultcolumn. pvs_gap_coordinate_resultcolumn + S (scp_coordinate_column_coordinate_result) = (n))))))Constructive proof overview
Generated structural guide
Every actual index in a finite rectangular window has constructed bounded row and column coordinates, with no positive-width assumption supplied.
The unchanged tactic script uses 4 declared prerequisites and contains 38 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
lt_not_le Stable theorem; checked-use authorized zero_le Stable theorem; checked-use authorized division_remainder_exists Stable theorem; checked-use authorized MX002D signed_cartesian_quotient_row_boundDirect 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.
Named ingredients (1)
01Fix variables and assumptionsL1–4
02Establish hnL5–6
03Establish hlengthL7–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt not le.
04Establish hdL17–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder exists.
05Separate the logical casesL22–24
06Construct an explicit witnessL25–26
07Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
split
08Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact hd_witness_witness_left
09Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
split
10Use earlier factsL30–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L30
specialize signed_cartesian_quotient_row_bound (m) - L31
specialize signed_cartesian_quotient_row_bound (n) - L32
specialize signed_cartesian_quotient_row_bound (k) - L33
specialize signed_cartesian_quotient_row_bound (x) - L34
specialize signed_cartesian_quotient_row_bound (x1) - L35
apply signed_cartesian_quotient_row_bound - L36
exact hd_witness_witness_left - L37
exact hk - L38
exact hd_witness_witness_right
Original exact command ledger · 38 lines
- 0001
intro m - 0002
intro n - 0003
intro k - 0004
intro hk - 0005
have hn : ~(n=0) - 0006
intro hnzero - 0007
have hlength : m*n=0 - 0008
rewrite hnzero - 0009
simp - 0010
rewrite hlength at hk - 0011
specialize lt_not_le (k) - 0012
specialize lt_not_le (0) - 0013
apply lt_not_le - 0014
exact hk - 0015
specialize zero_le (k) - 0016
apply zero_le - 0017
have hd : exists i j. ((k=n*i+j) /\ (exists pvs_gap_coordinate_division. pvs_gap_coordinate_division + S (j) = (n))) - 0018
specialize division_remainder_exists (n) - 0019
specialize division_remainder_exists (k) - 0020
apply division_remainder_exists - 0021
exact hn - 0022
cases hd - 0023
cases hd_witness - 0024
cases hd_witness_witness - 0025
exists x - 0026
exists x1 - 0027
split - 0028
exact hd_witness_witness_left - 0029
split - 0030
specialize signed_cartesian_quotient_row_bound (m) - 0031
specialize signed_cartesian_quotient_row_bound (n) - 0032
specialize signed_cartesian_quotient_row_bound (k) - 0033
specialize signed_cartesian_quotient_row_bound (x) - 0034
specialize signed_cartesian_quotient_row_bound (x1) - 0035
apply signed_cartesian_quotient_row_bound - 0036
exact hd_witness_witness_left - 0037
exact hk - 0038
exact hd_witness_witness_right