MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  mul4sq Structured version   Visualization version   GIF version

Theorem mul4sq 16979
Description: Euler's four-square identity: The product of two sums of four squares is also a sum of four squares. This is usually quoted as an explicit formula involving eight real variables; we save some time by working with complex numbers (gaussian integers) instead, so that we only have to work with four variables, and also hiding the actual formula for the product in the proof of mul4sqlem 16978. (For the curious, the explicit formula that is used is ( ∣ 𝑎 ∣ ↑2 + ∣ 𝑏 ∣ ↑2)( ∣ 𝑐 ∣ ↑2 + ∣ 𝑑 ∣ ↑2) = 𝑎∗ · 𝑐 + 𝑏 · 𝑑∗ ∣ ↑2 + ∣ 𝑎∗ · 𝑑𝑏 · 𝑐∗ ∣ ↑2.) (Contributed by Mario Carneiro, 14-Jul-2014.)
Hypothesis
Ref Expression
4sq.1 𝑆 = {𝑛 ∣ ∃𝑥 ∈ ℤ ∃𝑦 ∈ ℤ ∃𝑧 ∈ ℤ ∃𝑤 ∈ ℤ 𝑛 = (((𝑥↑2) + (𝑦↑2)) + ((𝑧↑2) + (𝑤↑2)))}
Assertion
Ref Expression
mul4sq ((𝐴𝑆𝐵𝑆) → (𝐴 · 𝐵) ∈ 𝑆)
Distinct variable groups:   𝑤,𝑛,𝑥,𝑦,𝑧   𝐵,𝑛   𝐴,𝑛   𝑆,𝑛
Allowed substitution hints:   𝐴(𝑥,𝑦,𝑧,𝑤)   𝐵(𝑥,𝑦,𝑧,𝑤)   𝑆(𝑥,𝑦,𝑧,𝑤)

Proof of Theorem mul4sq
Dummy variables 𝑎 𝑏 𝑐 𝑑 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 4sq.1 . . 3 𝑆 = {𝑛 ∣ ∃𝑥 ∈ ℤ ∃𝑦 ∈ ℤ ∃𝑧 ∈ ℤ ∃𝑤 ∈ ℤ 𝑛 = (((𝑥↑2) + (𝑦↑2)) + ((𝑧↑2) + (𝑤↑2)))}
214sqlem4 16977 . 2 (𝐴𝑆 ↔ ∃𝑎 ∈ ℤ[i] ∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)))
314sqlem4 16977 . 2 (𝐵𝑆 ↔ ∃𝑐 ∈ ℤ[i] ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)))
4 reeanv 3217 . . 3 (∃𝑎 ∈ ℤ[i] ∃𝑐 ∈ ℤ[i] (∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) ↔ (∃𝑎 ∈ ℤ[i] ∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ ∃𝑐 ∈ ℤ[i] ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))))
5 reeanv 3217 . . . . 5 (∃𝑏 ∈ ℤ[i] ∃𝑑 ∈ ℤ[i] (𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) ↔ (∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))))
6 simpll 766 . . . . . . . . . . . . 13 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → 𝑎 ∈ ℤ[i])
7 gzabssqcl 16966 . . . . . . . . . . . . 13 (𝑎 ∈ ℤ[i] → ((abs‘𝑎)↑2) ∈ ℕ0)
86, 7syl 17 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((abs‘𝑎)↑2) ∈ ℕ0)
9 simprl 770 . . . . . . . . . . . . 13 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → 𝑏 ∈ ℤ[i])
10 gzabssqcl 16966 . . . . . . . . . . . . 13 (𝑏 ∈ ℤ[i] → ((abs‘𝑏)↑2) ∈ ℕ0)
119, 10syl 17 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((abs‘𝑏)↑2) ∈ ℕ0)
128, 11nn0addcld 12571 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∈ ℕ0)
1312nn0cnd 12569 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∈ ℂ)
1413div1d 12014 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) / 1) = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)))
15 simplr 768 . . . . . . . . . . . . 13 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → 𝑐 ∈ ℤ[i])
16 gzabssqcl 16966 . . . . . . . . . . . . 13 (𝑐 ∈ ℤ[i] → ((abs‘𝑐)↑2) ∈ ℕ0)
1715, 16syl 17 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((abs‘𝑐)↑2) ∈ ℕ0)
18 simprr 772 . . . . . . . . . . . . 13 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → 𝑑 ∈ ℤ[i])
19 gzabssqcl 16966 . . . . . . . . . . . . 13 (𝑑 ∈ ℤ[i] → ((abs‘𝑑)↑2) ∈ ℕ0)
2018, 19syl 17 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((abs‘𝑑)↑2) ∈ ℕ0)
2117, 20nn0addcld 12571 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) ∈ ℕ0)
2221nn0cnd 12569 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) ∈ ℂ)
2322div1d 12014 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) / 1) = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)))
2414, 23oveq12d 7428 . . . . . . . 8 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) / 1) · ((((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) / 1)) = ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) · (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))))
25 eqid 2736 . . . . . . . . 9 (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2))
26 eqid 2736 . . . . . . . . 9 (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))
27 1nn 12256 . . . . . . . . . 10 1 ∈ ℕ
2827a1i 11 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → 1 ∈ ℕ)
29 gzsubcl 16965 . . . . . . . . . . . . 13 ((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) → (𝑎𝑐) ∈ ℤ[i])
3029adantr 480 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑎𝑐) ∈ ℤ[i])
31 gzcn 16957 . . . . . . . . . . . 12 ((𝑎𝑐) ∈ ℤ[i] → (𝑎𝑐) ∈ ℂ)
3230, 31syl 17 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑎𝑐) ∈ ℂ)
3332div1d 12014 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑎𝑐) / 1) = (𝑎𝑐))
3433, 30eqeltrd 2835 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑎𝑐) / 1) ∈ ℤ[i])
35 gzsubcl 16965 . . . . . . . . . . . . 13 ((𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i]) → (𝑏𝑑) ∈ ℤ[i])
3635adantl 481 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑏𝑑) ∈ ℤ[i])
37 gzcn 16957 . . . . . . . . . . . 12 ((𝑏𝑑) ∈ ℤ[i] → (𝑏𝑑) ∈ ℂ)
3836, 37syl 17 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑏𝑑) ∈ ℂ)
3938div1d 12014 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑏𝑑) / 1) = (𝑏𝑑))
4039, 36eqeltrd 2835 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑏𝑑) / 1) ∈ ℤ[i])
4114, 12eqeltrd 2835 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) / 1) ∈ ℕ0)
421, 6, 9, 15, 18, 25, 26, 28, 34, 40, 41mul4sqlem 16978 . . . . . . . 8 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) / 1) · ((((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) / 1)) ∈ 𝑆)
4324, 42eqeltrrd 2836 . . . . . . 7 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) · (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) ∈ 𝑆)
44 oveq12 7419 . . . . . . . 8 ((𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) = ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) · (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))))
4544eleq1d 2820 . . . . . . 7 ((𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → ((𝐴 · 𝐵) ∈ 𝑆 ↔ ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) · (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) ∈ 𝑆))
4643, 45syl5ibrcom 247 . . . . . 6 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) ∈ 𝑆))
4746rexlimdvva 3202 . . . . 5 ((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) → (∃𝑏 ∈ ℤ[i] ∃𝑑 ∈ ℤ[i] (𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) ∈ 𝑆))
485, 47biimtrrid 243 . . . 4 ((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) → ((∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) ∈ 𝑆))
4948rexlimivv 3187 . . 3 (∃𝑎 ∈ ℤ[i] ∃𝑐 ∈ ℤ[i] (∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) ∈ 𝑆)
504, 49sylbir 235 . 2 ((∃𝑎 ∈ ℤ[i] ∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ ∃𝑐 ∈ ℤ[i] ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) ∈ 𝑆)
512, 3, 50syl2anb 598 1 ((𝐴𝑆𝐵𝑆) → (𝐴 · 𝐵) ∈ 𝑆)
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395   = wceq 1540  wcel 2109  {cab 2714  wrex 3061  cfv 6536  (class class class)co 7410  cc 11132  1c1 11135   + caddc 11137   · cmul 11139  cmin 11471   / cdiv 11899  cn 12245  2c2 12300  0cn0 12506  cz 12593  cexp 14084  abscabs 15258  ℤ[i]cgz 16954
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1795  ax-4 1809  ax-5 1910  ax-6 1967  ax-7 2008  ax-8 2111  ax-9 2119  ax-10 2142  ax-11 2158  ax-12 2178  ax-ext 2708  ax-sep 5271  ax-nul 5281  ax-pow 5340  ax-pr 5407  ax-un 7734  ax-cnex 11190  ax-resscn 11191  ax-1cn 11192  ax-icn 11193  ax-addcl 11194  ax-addrcl 11195  ax-mulcl 11196  ax-mulrcl 11197  ax-mulcom 11198  ax-addass 11199  ax-mulass 11200  ax-distr 11201  ax-i2m1 11202  ax-1ne0 11203  ax-1rid 11204  ax-rnegex 11205  ax-rrecex 11206  ax-cnre 11207  ax-pre-lttri 11208  ax-pre-lttrn 11209  ax-pre-ltadd 11210  ax-pre-mulgt0 11211  ax-pre-sup 11212
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3or 1087  df-3an 1088  df-tru 1543  df-fal 1553  df-ex 1780  df-nf 1784  df-sb 2066  df-mo 2540  df-eu 2569  df-clab 2715  df-cleq 2728  df-clel 2810  df-nfc 2886  df-ne 2934  df-nel 3038  df-ral 3053  df-rex 3062  df-rmo 3364  df-reu 3365  df-rab 3421  df-v 3466  df-sbc 3771  df-csb 3880  df-dif 3934  df-un 3936  df-in 3938  df-ss 3948  df-pss 3951  df-nul 4314  df-if 4506  df-pw 4582  df-sn 4607  df-pr 4609  df-op 4613  df-uni 4889  df-iun 4974  df-br 5125  df-opab 5187  df-mpt 5207  df-tr 5235  df-id 5553  df-eprel 5558  df-po 5566  df-so 5567  df-fr 5611  df-we 5613  df-xp 5665  df-rel 5666  df-cnv 5667  df-co 5668  df-dm 5669  df-rn 5670  df-res 5671  df-ima 5672  df-pred 6295  df-ord 6360  df-on 6361  df-lim 6362  df-suc 6363  df-iota 6489  df-fun 6538  df-fn 6539  df-f 6540  df-f1 6541  df-fo 6542  df-f1o 6543  df-fv 6544  df-riota 7367  df-ov 7413  df-oprab 7414  df-mpo 7415  df-om 7867  df-2nd 7994  df-frecs 8285  df-wrecs 8316  df-recs 8390  df-rdg 8429  df-er 8724  df-en 8965  df-dom 8966  df-sdom 8967  df-sup 9459  df-pnf 11276  df-mnf 11277  df-xr 11278  df-ltxr 11279  df-le 11280  df-sub 11473  df-neg 11474  df-div 11900  df-nn 12246  df-2 12308  df-3 12309  df-n0 12507  df-z 12594  df-uz 12858  df-rp 13014  df-seq 14025  df-exp 14085  df-cj 15123  df-re 15124  df-im 15125  df-sqrt 15259  df-abs 15260  df-gz 16955
This theorem is referenced by:  4sqlem19  16988
  Copyright terms: Public domain W3C validator