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 a b m n. (exists ee_gap_lt. ee_gap_lt + S (a) = (m)) -> (exists ee_gap_lt. ee_gap_lt + S (b) = (m)) -> ((((a) * (a)) + ((b) * (b))) = (((a) * (b)) + (n))) -> (exists ee_gap_lt. ee_gap_lt + S (n) = (m * m))Constructive proof overview
Generated structural guide
Every lattice residue pair 0≤a,b<m has norm strictly below m², including zero and a=b=m−1.
The unchanged tactic script uses 5 declared prerequisites and contains 42 exact native proof lines.
Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
le_total Stable theorem; checked-use authorized EI0001 eisenstein_natural_norm_symmetric EI0005 eisenstein_natural_norm_le_larger_square square_lt_strict Alpha theorem; checked-use authorized lt_of_le_of_lt 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.
Named ingredients (2)
01Fix variables and assumptionsL1–7
02Use earlier factsL8–9
03Separate the logical casesL10–10
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L10
cases le_total
04Use earlier factsL11–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L11
specialize lt_of_le_of_lt n - L12
specialize lt_of_le_of_lt (b * b) - L13
specialize lt_of_le_of_lt (m * m) - L14
apply lt_of_le_of_lt - L15
specialize eisenstein_natural_norm_le_larger_square a - L16
specialize eisenstein_natural_norm_le_larger_square b - L17
specialize eisenstein_natural_norm_le_larger_square n - L18
apply eisenstein_natural_norm_le_larger_square - L19
exact le_total_left - L20
exact hnorm
05Use earlier factsL21–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
specialize square_lt_strict b - L22
specialize square_lt_strict m - L23
apply square_lt_strict - L24
exact hb - L25
specialize lt_of_le_of_lt n - L26
specialize lt_of_le_of_lt (a * a) - L27
specialize lt_of_le_of_lt (m * m) - L28
apply lt_of_le_of_lt - L29
specialize eisenstein_natural_norm_le_larger_square b - L30
specialize eisenstein_natural_norm_le_larger_square a
06Use earlier factsL31–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
specialize eisenstein_natural_norm_le_larger_square n - L32
apply eisenstein_natural_norm_le_larger_square - L33
exact le_total_right - L34
specialize eisenstein_natural_norm_symmetric a - L35
specialize eisenstein_natural_norm_symmetric b - L36
specialize eisenstein_natural_norm_symmetric n - L37
apply eisenstein_natural_norm_symmetric - L38
exact hnorm - L39
specialize square_lt_strict a - L40
specialize square_lt_strict m
Original exact command ledger · 42 lines
- 0001
intro a - 0002
intro b - 0003
intro m - 0004
intro n - 0005
intro ha - 0006
intro hb - 0007
intro hnorm - 0008
specialize le_total a - 0009
specialize le_total b - 0010
cases le_total - 0011
specialize lt_of_le_of_lt n - 0012
specialize lt_of_le_of_lt (b * b) - 0013
specialize lt_of_le_of_lt (m * m) - 0014
apply lt_of_le_of_lt - 0015
specialize eisenstein_natural_norm_le_larger_square a - 0016
specialize eisenstein_natural_norm_le_larger_square b - 0017
specialize eisenstein_natural_norm_le_larger_square n - 0018
apply eisenstein_natural_norm_le_larger_square - 0019
exact le_total_left - 0020
exact hnorm - 0021
specialize square_lt_strict b - 0022
specialize square_lt_strict m - 0023
apply square_lt_strict - 0024
exact hb - 0025
specialize lt_of_le_of_lt n - 0026
specialize lt_of_le_of_lt (a * a) - 0027
specialize lt_of_le_of_lt (m * m) - 0028
apply lt_of_le_of_lt - 0029
specialize eisenstein_natural_norm_le_larger_square b - 0030
specialize eisenstein_natural_norm_le_larger_square a - 0031
specialize eisenstein_natural_norm_le_larger_square n - 0032
apply eisenstein_natural_norm_le_larger_square - 0033
exact le_total_right - 0034
specialize eisenstein_natural_norm_symmetric a - 0035
specialize eisenstein_natural_norm_symmetric b - 0036
specialize eisenstein_natural_norm_symmetric n - 0037
apply eisenstein_natural_norm_symmetric - 0038
exact hnorm - 0039
specialize square_lt_strict a - 0040
specialize square_lt_strict m - 0041
apply square_lt_strict - 0042
exact ha