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 b x y. (~(a=0)) -> (exists hgcrt_mod_left_lcc_zero_unique_x hgcrt_mod_right_lcc_zero_unique_x. (a * x) + 0 * hgcrt_mod_left_lcc_zero_unique_x = b + 0 * hgcrt_mod_right_lcc_zero_unique_x) -> (exists hgcrt_mod_left_lcc_zero_unique_y hgcrt_mod_right_lcc_zero_unique_y. (a * y) + 0 * hgcrt_mod_left_lcc_zero_unique_y = b + 0 * hgcrt_mod_right_lcc_zero_unique_y) -> (x=y)Constructive proof overview
Generated structural guide
At modulus zero a nonzero coefficient has at most one natural solution; no bounded residue or finite-class formula is asserted.
The unchanged tactic script uses 2 declared prerequisites and contains 32 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
mod_eq_zero_iff_eq Alpha theorem; checked-use authorized mul_left_cancel_nonzero 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–7
02Establish he_xL8–11
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq zero iff eq.
- L8
have he_x : (((exists hgcrt_mod_left_lcc_zero_x hgcrt_mod_right_lcc_zero_x. (a * x) + 0 * hgcrt_mod_left_lcc_zero_x = b + 0 * hgcrt_mod_right_lcc_zero_x) -> (a*x=b)) /\ (((a*x=b) -> (exists hgcrt_mod_left_lcc_zero_x hgcrt_mod_right_lcc_zero_x. (a * x) + 0 * hgcrt_mod_left_lcc_zero_x = b + 0 * hgcrt_mod_right_lcc_zero_x)))) - L9
specialize mod_eq_zero_iff_eq (a*x) - L10
specialize mod_eq_zero_iff_eq (b) - L11
apply mod_eq_zero_iff_eq
03Separate the logical casesL12–12
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L12
cases he_x
04Establish hxeqL13–15
05Establish he_yL16–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq zero iff eq.
- L16
have he_y : (((exists hgcrt_mod_left_lcc_zero_y hgcrt_mod_right_lcc_zero_y. (a * y) + 0 * hgcrt_mod_left_lcc_zero_y = b + 0 * hgcrt_mod_right_lcc_zero_y) -> (a*y=b)) /\ (((a*y=b) -> (exists hgcrt_mod_left_lcc_zero_y hgcrt_mod_right_lcc_zero_y. (a * y) + 0 * hgcrt_mod_left_lcc_zero_y = b + 0 * hgcrt_mod_right_lcc_zero_y)))) - L17
specialize mod_eq_zero_iff_eq (a*y) - L18
specialize mod_eq_zero_iff_eq (b) - L19
apply mod_eq_zero_iff_eq
06Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
cases he_y
07Establish hyeqL21–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply he y left.
08Calculate and transport equalitiesL31–31
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L31
symm
09Use earlier factsL32–32
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L32
exact hyeq
Original exact command ledger · 32 lines
- 0001
intro a - 0002
intro b - 0003
intro x - 0004
intro y - 0005
intro ha - 0006
intro hx - 0007
intro hy - 0008
have he_x : (((exists hgcrt_mod_left_lcc_zero_x hgcrt_mod_right_lcc_zero_x. (a * x) + 0 * hgcrt_mod_left_lcc_zero_x = b + 0 * hgcrt_mod_right_lcc_zero_x) -> (a*x=b)) /\ (((a*x=b) -> (exists hgcrt_mod_left_lcc_zero_x hgcrt_mod_right_lcc_zero_x. (a * x) + 0 * hgcrt_mod_left_lcc_zero_x = b + 0 * hgcrt_mod_right_lcc_zero_x)))) - 0009
specialize mod_eq_zero_iff_eq (a*x) - 0010
specialize mod_eq_zero_iff_eq (b) - 0011
apply mod_eq_zero_iff_eq - 0012
cases he_x - 0013
have hxeq : a*x=b - 0014
apply he_x_left - 0015
exact hx - 0016
have he_y : (((exists hgcrt_mod_left_lcc_zero_y hgcrt_mod_right_lcc_zero_y. (a * y) + 0 * hgcrt_mod_left_lcc_zero_y = b + 0 * hgcrt_mod_right_lcc_zero_y) -> (a*y=b)) /\ (((a*y=b) -> (exists hgcrt_mod_left_lcc_zero_y hgcrt_mod_right_lcc_zero_y. (a * y) + 0 * hgcrt_mod_left_lcc_zero_y = b + 0 * hgcrt_mod_right_lcc_zero_y)))) - 0017
specialize mod_eq_zero_iff_eq (a*y) - 0018
specialize mod_eq_zero_iff_eq (b) - 0019
apply mod_eq_zero_iff_eq - 0020
cases he_y - 0021
have hyeq : a*y=b - 0022
apply he_y_left - 0023
exact hy - 0024
specialize mul_left_cancel_nonzero (a) - 0025
specialize mul_left_cancel_nonzero (x) - 0026
specialize mul_left_cancel_nonzero (y) - 0027
apply mul_left_cancel_nonzero - 0028
exact ha - 0029
trans b - 0030
exact hxeq - 0031
symm - 0032
exact hyeq