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. ((exists fts_four_sum_zero. a * a + b * b = 4 * fts_four_sum_zero + 0) \/ (exists fts_four_sum_one. a * a + b * b = 4 * fts_four_sum_one + 1)) \/ (exists fts_four_sum_two. a * a + b * b = 4 * fts_four_sum_two + 2)Constructive proof overview
Generated structural guide
A sum of two natural squares has residue zero, one, or two modulo four.
The unchanged tactic script uses 4 declared prerequisites and contains 40 exact native proof lines.
dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged
Proof neighborhood
Direct dependencies
TS0002 square_mod_four_zero_or_one mul_add Stable theorem; checked-use authorized add_assoc Stable theorem; checked-use authorized add_comm 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 (1)
01Fix variables and assumptionsL1–2
02Establish haL3–5
03Establish hbL6–8
04Separate the logical casesL9–14
05Construct an explicit witnessL15–15
Supply the displayed value, then prove that it has the required property.
- L15
exists x + x1
06Calculate and transport equalitiesL16–18
07Separate the logical casesL19–21
08Construct an explicit witnessL22–22
Supply the displayed value, then prove that it has the required property.
- L22
exists x + x1
09Calculate and transport equalitiesL23–25
10Separate the logical casesL26–30
11Construct an explicit witnessL31–31
Supply the displayed value, then prove that it has the required property.
- L31
exists x + x1
12Calculate and transport equalitiesL32–34
13Separate the logical casesL35–36
14Construct an explicit witnessL37–37
Supply the displayed value, then prove that it has the required property.
- L37
exists x + x1
Original exact command ledger · 40 lines
- 0001
intro a - 0002
intro b - 0003
have ha : (exists q. a * a = 4 * q + 0) \/ (exists q. a * a = 4 * q + 1) - 0004
specialize square_mod_four_zero_or_one a - 0005
exact square_mod_four_zero_or_one - 0006
have hb : (exists q. b * b = 4 * q + 0) \/ (exists q. b * b = 4 * q + 1) - 0007
specialize square_mod_four_zero_or_one b - 0008
exact square_mod_four_zero_or_one - 0009
cases ha - 0010
cases ha_left - 0011
cases hb - 0012
cases hb_left - 0013
left - 0014
left - 0015
exists x + x1 - 0016
rewrite ha_left_witness - 0017
rewrite hb_left_witness - 0018
simp [mul_add] - 0019
cases hb_right - 0020
left - 0021
right - 0022
exists x + x1 - 0023
rewrite ha_left_witness - 0024
rewrite hb_right_witness - 0025
simp [mul_add, add_assoc] - 0026
cases ha_right - 0027
cases hb - 0028
cases hb_left - 0029
left - 0030
right - 0031
exists x + x1 - 0032
rewrite ha_right_witness - 0033
rewrite hb_left_witness - 0034
simp [mul_add, add_assoc, add_comm] - 0035
cases hb_right - 0036
right - 0037
exists x + x1 - 0038
rewrite ha_right_witness - 0039
rewrite hb_right_witness - 0040
simp [mul_add, add_assoc, add_comm]