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 A r s M i j z. (exists pvs_gap_flat_column_bound. pvs_gap_flat_column_bound + S (j) = (S M)) -> (exists ssr_flat_row_flat_read ssr_flat_column_flat_read. (((((S (M))*(i)+(j)))=(((S (M))*(ssr_flat_row_flat_read)+(ssr_flat_column_flat_read)))) /\ (((exists pvs_gap_flat_readremainder. pvs_gap_flat_readremainder + S (ssr_flat_column_flat_read) = (S (M))) /\ (exists ssr_entry_value_flat_readentry ssr_entry_image_flat_readentry. ((exists dst_positive_code_flat_readentrysource dst_positive_scale_flat_readentrysource dst_negative_code_flat_readentrysource dst_negative_scale_flat_readentrysource dst_positive_flat_readentrysource dst_negative_flat_readentrysource. (((A) = (((((dst_positive_code_flat_readentrysource) + (dst_positive_scale_flat_readentrysource)) * S ((dst_positive_code_flat_readentrysource) + (dst_positive_scale_flat_readentrysource)) + ((dst_positive_scale_flat_readentrysource) + (dst_positive_scale_flat_readentrysource))) + (((dst_negative_code_flat_readentrysource) + (dst_negative_scale_flat_readentrysource)) * S ((dst_negative_code_flat_readentrysource) + (dst_negative_scale_flat_readentrysource)) + ((dst_negative_scale_flat_readentrysource) + (dst_negative_scale_flat_readentrysource)))) * S ((((dst_positive_code_flat_readentrysource) + (dst_positive_scale_flat_readentrysource)) * S ((dst_positive_code_flat_readentrysource) + (dst_positive_scale_flat_readentrysource)) + ((dst_positive_scale_flat_readentrysource) + (dst_positive_scale_flat_readentrysource))) + (((dst_negative_code_flat_readentrysource) + (dst_negative_scale_flat_readentrysource)) * S ((dst_negative_code_flat_readentrysource) + (dst_negative_scale_flat_readentrysource)) + ((dst_negative_scale_flat_readentrysource) + (dst_negative_scale_flat_readentrysource)))) + ((((dst_negative_code_flat_readentrysource) + (dst_negative_scale_flat_readentrysource)) * S ((dst_negative_code_flat_readentrysource) + (dst_negative_scale_flat_readentrysource)) + ((dst_negative_scale_flat_readentrysource) + (dst_negative_scale_flat_readentrysource))) + (((dst_negative_code_flat_readentrysource) + (dst_negative_scale_flat_readentrysource)) * S ((dst_negative_code_flat_readentrysource) + (dst_negative_scale_flat_readentrysource)) + ((dst_negative_scale_flat_readentrysource) + (dst_negative_scale_flat_readentrysource)))))) /\ (((((exists ff_h_pvs_flat_readentrysourcepositive. ff_h_pvs_flat_readentrysourcepositive + S (dst_positive_flat_readentrysource) = S ((S (ssr_flat_row_flat_read)) * dst_positive_scale_flat_readentrysource)) /\ exists ff_q_pvs_flat_readentrysourcepositive. dst_positive_code_flat_readentrysource = ff_q_pvs_flat_readentrysourcepositive * S ((S (ssr_flat_row_flat_read)) * dst_positive_scale_flat_readentrysource) + (dst_positive_flat_readentrysource))) /\ (((((exists ff_h_pvs_flat_readentrysourcenegative. ff_h_pvs_flat_readentrysourcenegative + S (dst_negative_flat_readentrysource) = S ((S (ssr_flat_row_flat_read)) * dst_negative_scale_flat_readentrysource)) /\ exists ff_q_pvs_flat_readentrysourcenegative. dst_negative_code_flat_readentrysource = ff_q_pvs_flat_readentrysourcenegative * S ((S (ssr_flat_row_flat_read)) * dst_negative_scale_flat_readentrysource) + (dst_negative_flat_readentrysource))) /\ (exists ge_balance_positive_flat_readentrysourcevalue ge_balance_negative_flat_readentrysourcevalue. (((((ssr_entry_value_flat_readentry) = 2 * (ge_balance_positive_flat_readentrysourcevalue) /\ (ge_balance_negative_flat_readentrysourcevalue) = 0) \/ exists ge_signed_half_flat_readentrysourcevaluedecode. (((ssr_entry_value_flat_readentry) = 2 * ge_signed_half_flat_readentrysourcevaluedecode + 1 /\ (ge_balance_positive_flat_readentrysourcevalue) = 0) /\ (ge_balance_negative_flat_readentrysourcevalue) = S ge_signed_half_flat_readentrysourcevaluedecode))) /\ ((dst_positive_flat_readentrysource) + ge_balance_negative_flat_readentrysourcevalue = (dst_negative_flat_readentrysource) + ge_balance_positive_flat_readentrysourcevalue))))))))) /\ (((((exists ff_h_pvs_flat_readentrymap. ff_h_pvs_flat_readentrymap + S (ssr_entry_image_flat_readentry) = S ((S (ssr_flat_row_flat_read)) * s)) /\ exists ff_q_pvs_flat_readentrymap. r = ff_q_pvs_flat_readentrymap * S ((S (ssr_flat_row_flat_read)) * s) + (ssr_entry_image_flat_readentry))) /\ (((((ssr_flat_column_flat_read)=(ssr_entry_image_flat_readentry)) /\ ((z)=(ssr_entry_value_flat_readentry)))) \/ (((~((ssr_flat_column_flat_read)=(ssr_entry_image_flat_readentry))) /\ ((z)=0)))))))))))) -> (exists ssr_entry_value_flat_coordinates ssr_entry_image_flat_coordinates. ((exists dst_positive_code_flat_coordinatessource dst_positive_scale_flat_coordinatessource dst_negative_code_flat_coordinatessource dst_negative_scale_flat_coordinatessource dst_positive_flat_coordinatessource dst_negative_flat_coordinatessource. (((A) = (((((dst_positive_code_flat_coordinatessource) + (dst_positive_scale_flat_coordinatessource)) * S ((dst_positive_code_flat_coordinatessource) + (dst_positive_scale_flat_coordinatessource)) + ((dst_positive_scale_flat_coordinatessource) + (dst_positive_scale_flat_coordinatessource))) + (((dst_negative_code_flat_coordinatessource) + (dst_negative_scale_flat_coordinatessource)) * S ((dst_negative_code_flat_coordinatessource) + (dst_negative_scale_flat_coordinatessource)) + ((dst_negative_scale_flat_coordinatessource) + (dst_negative_scale_flat_coordinatessource)))) * S ((((dst_positive_code_flat_coordinatessource) + (dst_positive_scale_flat_coordinatessource)) * S ((dst_positive_code_flat_coordinatessource) + (dst_positive_scale_flat_coordinatessource)) + ((dst_positive_scale_flat_coordinatessource) + (dst_positive_scale_flat_coordinatessource))) + (((dst_negative_code_flat_coordinatessource) + (dst_negative_scale_flat_coordinatessource)) * S ((dst_negative_code_flat_coordinatessource) + (dst_negative_scale_flat_coordinatessource)) + ((dst_negative_scale_flat_coordinatessource) + (dst_negative_scale_flat_coordinatessource)))) + ((((dst_negative_code_flat_coordinatessource) + (dst_negative_scale_flat_coordinatessource)) * S ((dst_negative_code_flat_coordinatessource) + (dst_negative_scale_flat_coordinatessource)) + ((dst_negative_scale_flat_coordinatessource) + (dst_negative_scale_flat_coordinatessource))) + (((dst_negative_code_flat_coordinatessource) + (dst_negative_scale_flat_coordinatessource)) * S ((dst_negative_code_flat_coordinatessource) + (dst_negative_scale_flat_coordinatessource)) + ((dst_negative_scale_flat_coordinatessource) + (dst_negative_scale_flat_coordinatessource)))))) /\ (((((exists ff_h_pvs_flat_coordinatessourcepositive. ff_h_pvs_flat_coordinatessourcepositive + S (dst_positive_flat_coordinatessource) = S ((S (i)) * dst_positive_scale_flat_coordinatessource)) /\ exists ff_q_pvs_flat_coordinatessourcepositive. dst_positive_code_flat_coordinatessource = ff_q_pvs_flat_coordinatessourcepositive * S ((S (i)) * dst_positive_scale_flat_coordinatessource) + (dst_positive_flat_coordinatessource))) /\ (((((exists ff_h_pvs_flat_coordinatessourcenegative. ff_h_pvs_flat_coordinatessourcenegative + S (dst_negative_flat_coordinatessource) = S ((S (i)) * dst_negative_scale_flat_coordinatessource)) /\ exists ff_q_pvs_flat_coordinatessourcenegative. dst_negative_code_flat_coordinatessource = ff_q_pvs_flat_coordinatessourcenegative * S ((S (i)) * dst_negative_scale_flat_coordinatessource) + (dst_negative_flat_coordinatessource))) /\ (exists ge_balance_positive_flat_coordinatessourcevalue ge_balance_negative_flat_coordinatessourcevalue. (((((ssr_entry_value_flat_coordinates) = 2 * (ge_balance_positive_flat_coordinatessourcevalue) /\ (ge_balance_negative_flat_coordinatessourcevalue) = 0) \/ exists ge_signed_half_flat_coordinatessourcevaluedecode. (((ssr_entry_value_flat_coordinates) = 2 * ge_signed_half_flat_coordinatessourcevaluedecode + 1 /\ (ge_balance_positive_flat_coordinatessourcevalue) = 0) /\ (ge_balance_negative_flat_coordinatessourcevalue) = S ge_signed_half_flat_coordinatessourcevaluedecode))) /\ ((dst_positive_flat_coordinatessource) + ge_balance_negative_flat_coordinatessourcevalue = (dst_negative_flat_coordinatessource) + ge_balance_positive_flat_coordinatessourcevalue))))))))) /\ (((((exists ff_h_pvs_flat_coordinatesmap. ff_h_pvs_flat_coordinatesmap + S (ssr_entry_image_flat_coordinates) = S ((S (i)) * s)) /\ exists ff_q_pvs_flat_coordinatesmap. r = ff_q_pvs_flat_coordinatesmap * S ((S (i)) * s) + (ssr_entry_image_flat_coordinates))) /\ (((((j)=(ssr_entry_image_flat_coordinates)) /\ ((z)=(ssr_entry_value_flat_coordinates)))) \/ (((~((j)=(ssr_entry_image_flat_coordinates))) /\ ((z)=0))))))))Constructive proof overview
Generated structural guide
Uniqueness of actual quotient and strict remainder recovers the specified incidence coordinates.
The unchanged tactic script uses 1 declared prerequisite and contains 35 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
division_remainder_unique Stable 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–9
02Separate the logical casesL10–13
03Establish heL14–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder unique.
- L14
have he : x=i /\ x1=j - L15
specialize division_remainder_unique (S M) - L16
specialize division_remainder_unique (((S (M))*(i)+(j))) - L17
specialize division_remainder_unique (x) - L18
specialize division_remainder_unique (x1) - L19
specialize division_remainder_unique (i) - L20
specialize division_remainder_unique (j) - L21
apply division_remainder_unique - L22
exact hv_witness_witness_left - L23
exact hv_witness_witness_right_left
04Calculate and transport equalitiesL24–24
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L24
refl
05Use earlier factsL25–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L25
exact hj
06Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
cases he
07Calculate and transport equalitiesL27–34
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L27
rewrite he_left at hv_witness_witness_right_right - L28
rewrite he_left at hv_witness_witness_right_right - L29
rewrite he_left at hv_witness_witness_right_right - L30
rewrite he_left at hv_witness_witness_right_right - L31
rewrite he_left at hv_witness_witness_right_right - L32
rewrite he_left at hv_witness_witness_right_right - L33
rewrite he_right at hv_witness_witness_right_right - L34
rewrite he_right at hv_witness_witness_right_right
08Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
exact hv_witness_witness_right_right
Original exact command ledger · 35 lines
- 0001
intro A - 0002
intro r - 0003
intro s - 0004
intro M - 0005
intro i - 0006
intro j - 0007
intro z - 0008
intro hj - 0009
intro hv - 0010
cases hv - 0011
cases hv_witness - 0012
cases hv_witness_witness - 0013
cases hv_witness_witness_right - 0014
have he : x=i /\ x1=j - 0015
specialize division_remainder_unique (S M) - 0016
specialize division_remainder_unique (((S (M))*(i)+(j))) - 0017
specialize division_remainder_unique (x) - 0018
specialize division_remainder_unique (x1) - 0019
specialize division_remainder_unique (i) - 0020
specialize division_remainder_unique (j) - 0021
apply division_remainder_unique - 0022
exact hv_witness_witness_left - 0023
exact hv_witness_witness_right_left - 0024
refl - 0025
exact hj - 0026
cases he - 0027
rewrite he_left at hv_witness_witness_right_right - 0028
rewrite he_left at hv_witness_witness_right_right - 0029
rewrite he_left at hv_witness_witness_right_right - 0030
rewrite he_left at hv_witness_witness_right_right - 0031
rewrite he_left at hv_witness_witness_right_right - 0032
rewrite he_left at hv_witness_witness_right_right - 0033
rewrite he_right at hv_witness_witness_right_right - 0034
rewrite he_right at hv_witness_witness_right_right - 0035
exact hv_witness_witness_right_right