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 c d v x. (a = b + 2 * v \/ b = a + 2 * v) -> (c = d + 2 * x \/ d = c + 2 * x) -> (a * a + b * b + c * c + d * d) * 2 = (((a + b) * (a + b) + (2 * v) * (2 * v)) + ((c + d) * (c + d) + (2 * x) * (2 * x)))Constructive proof overview
Generated structural guide
Multiplication by the two-square norm 1²+1² gives a fully explicit paired four-square doubling identity.
The unchanged tactic script uses 3 declared prerequisites and contains 48 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
FS000I four_square_two_square_factor_identity zero_add Stable theorem; checked-use authorized mul_one 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–8
02Establish hidentityL9–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square two square factor identity.
- L9
have hidentity : (a * a + b * b + c * c + d * d) * (1 * 1 + 1 * 1) = (((a * 1 + b * 1) * (a * 1 + b * 1) + (2 * v) * (2 * v)) + ((c * 1 + d * 1) * (c * 1 + d * 1) + (2 * x) * (2 * x))) - L10
specialize four_square_two_square_factor_identity a - L11
specialize four_square_two_square_factor_identity b - L12
specialize four_square_two_square_factor_identity c - L13
specialize four_square_two_square_factor_identity d - L14
specialize four_square_two_square_factor_identity 1 - L15
specialize four_square_two_square_factor_identity 1 - L16
specialize four_square_two_square_factor_identity (2 * v) - L17
specialize four_square_two_square_factor_identity (2 * x) - L18
apply four_square_two_square_factor_identity
03Separate the logical casesL19–20
04Calculate and transport equalitiesL21–21
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L21
simp [zero_add]
05Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
right
06Calculate and transport equalitiesL23–23
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L23
simp [zero_add]
07Separate the logical casesL24–25
08Calculate and transport equalitiesL26–26
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L26
simp [zero_add]
09Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
right
10Calculate and transport equalitiesL28–28
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L28
simp [zero_add]
11Establish htwoL29–31
12Establish haoneL32–35
13Establish hboneL36–39
14Establish hconeL40–43
Original exact command ledger · 48 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro v - 0006
intro x - 0007
intro hfirst - 0008
intro hsecond - 0009
have hidentity : (a * a + b * b + c * c + d * d) * (1 * 1 + 1 * 1) = (((a * 1 + b * 1) * (a * 1 + b * 1) + (2 * v) * (2 * v)) + ((c * 1 + d * 1) * (c * 1 + d * 1) + (2 * x) * (2 * x))) - 0010
specialize four_square_two_square_factor_identity a - 0011
specialize four_square_two_square_factor_identity b - 0012
specialize four_square_two_square_factor_identity c - 0013
specialize four_square_two_square_factor_identity d - 0014
specialize four_square_two_square_factor_identity 1 - 0015
specialize four_square_two_square_factor_identity 1 - 0016
specialize four_square_two_square_factor_identity (2 * v) - 0017
specialize four_square_two_square_factor_identity (2 * x) - 0018
apply four_square_two_square_factor_identity - 0019
cases hfirst - 0020
left - 0021
simp [zero_add] - 0022
right - 0023
simp [zero_add] - 0024
cases hsecond - 0025
left - 0026
simp [zero_add] - 0027
right - 0028
simp [zero_add] - 0029
have htwo : 1 * 1 + 1 * 1 = 2 - 0030
norm_num - 0031
rewrite htwo at hidentity - 0032
have haone : a * 1 = a - 0033
apply mul_one - 0034
rewrite haone at hidentity - 0035
rewrite haone at hidentity - 0036
have hbone : b * 1 = b - 0037
apply mul_one - 0038
rewrite hbone at hidentity - 0039
rewrite hbone at hidentity - 0040
have hcone : c * 1 = c - 0041
apply mul_one - 0042
rewrite hcone at hidentity - 0043
rewrite hcone at hidentity - 0044
have hdone : d * 1 = d - 0045
apply mul_one - 0046
rewrite hdone at hidentity - 0047
rewrite hdone at hidentity - 0048
exact hidentity