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.
Statement with defined notation
∀ a. ∀ b. (∃ x. a · a + b · b = 4 · x + 0) ∨ Mod4One(a · a + b · b) ∨ (∃ x. a · a + b · b = 4 · x + 2)Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.
Definitions used by this theorem
In the theorem statement
In local proof propositions
Exact expanded first-order 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)Proof neighborhood
Direct theorem prerequisites
TS0002 square_mod_four_zero_or_one mul_add · Stable closed add_assoc · Stable closed add_comm · Stable closedDirect theorem dependents
Definition-aware tactic body
Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay command.
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
Establish this local claim before using it. It is not an additional assumption.
- L3
have ha : (∃ x. a · a = 4 · x + 0) ∨ Mod4One(a · a)Definitions: Mod4One(a · a)Original native command in the exact edition - L4
specialize square_mod_four_zero_or_one a - L5
exact square_mod_four_zero_or_one
03Establish hbL6–8
Establish this local claim before using it. It is not an additional assumption.
- L6
have hb : (∃ x. b · b = 4 · x + 0) ∨ Mod4One(b · b)Definitions: Mod4One(b · b)Original native command in the exact edition - L7
specialize square_mod_four_zero_or_one b - L8
exact square_mod_four_zero_or_one
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 defined command ledger · 40 lines
- 0001
intro a - 0002
intro b - 0003
have ha : (∃ x. a · a = 4 · x + 0) ∨ Mod4One(a · a)Exact native replay line
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 : (∃ x. b · b = 4 · x + 0) ∨ Mod4One(b · b)Exact native replay line
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]