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 N h. ~(N = 0) -> (exists ge_gap_half_size. ge_gap_half_size + (h + h) = (N)) -> (exists ge_gap_half_square. ge_gap_half_square + S (h * h + h * h) = (N * N))Constructive proof overview
Generated structural guide
For every positive modulus, any half-size magnitude has twice-square strictly below the full modulus square, including magnitude zero.
The unchanged tactic script uses 9 declared prerequisites and contains 40 exact native proof lines.
Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
zero_or_succ Stable theorem; checked-use authorized mul_ne_zero Stable theorem; checked-use authorized GI0035 gaussian_nonzero_natural_positive succ_ne_zero Stable theorem; checked-use authorized GI0036 gaussian_double_square_strict natural_square_monotone_expanded Alpha theorem; checked-use authorized lt_of_lt_of_le Stable theorem; checked-use authorized mul_zero_left Stable theorem; checked-use authorized zero_add 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–4
02Use earlier factsL5–5
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L5
specialize zero_or_succ h
03Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
cases zero_or_succ
04Establish hpositiveL7–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian nonzero natural positive.
- L7
have hpositive : exists ge_gap_zero_half_positive. ge_gap_zero_half_positive + S (0) = (N * N) - L8
specialize gaussian_nonzero_natural_positive N * N - L9
apply gaussian_nonzero_natural_positive - L10
intro hproductzero - L11
specialize mul_ne_zero N - L12
specialize mul_ne_zero N - L13
apply mul_ne_zero - L14
exact hN - L15
exact hN - L16
exact hproductzero
05Establish hsumzeroL17–20
06Separate the logical casesL21–21
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L21
cases zero_or_succ_right
07Establish hhL22–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply succ ne zero.
08Use earlier factsL32–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L32
specialize lt_of_lt_of_le N * N - L33
apply lt_of_lt_of_le - L34
specialize gaussian_double_square_strict h - L35
apply gaussian_double_square_strict - L36
exact hh - L37
specialize natural_square_monotone_expanded h + h - L38
specialize natural_square_monotone_expanded N - L39
apply natural_square_monotone_expanded - L40
exact hbound
Original exact command ledger · 40 lines
- 0001
intro N - 0002
intro h - 0003
intro hN - 0004
intro hbound - 0005
specialize zero_or_succ h - 0006
cases zero_or_succ - 0007
have hpositive : exists ge_gap_zero_half_positive. ge_gap_zero_half_positive + S (0) = (N * N) - 0008
specialize gaussian_nonzero_natural_positive N * N - 0009
apply gaussian_nonzero_natural_positive - 0010
intro hproductzero - 0011
specialize mul_ne_zero N - 0012
specialize mul_ne_zero N - 0013
apply mul_ne_zero - 0014
exact hN - 0015
exact hN - 0016
exact hproductzero - 0017
have hsumzero : h * h + h * h = 0 - 0018
simp [zero_or_succ_left, mul_zero_left, zero_add] - 0019
rewrite hsumzero - 0020
exact hpositive - 0021
cases zero_or_succ_right - 0022
have hh : ~(h = 0) - 0023
intro hzero - 0024
specialize succ_ne_zero x - 0025
apply succ_ne_zero - 0026
trans h - 0027
symm - 0028
exact zero_or_succ_right_witness - 0029
exact hzero - 0030
specialize lt_of_lt_of_le h * h + h * h - 0031
specialize lt_of_lt_of_le (h + h) * (h + h) - 0032
specialize lt_of_lt_of_le N * N - 0033
apply lt_of_lt_of_le - 0034
specialize gaussian_double_square_strict h - 0035
apply gaussian_double_square_strict - 0036
exact hh - 0037
specialize natural_square_monotone_expanded h + h - 0038
specialize natural_square_monotone_expanded N - 0039
apply natural_square_monotone_expanded - 0040
exact hbound