ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  mul4sq GIF version

Theorem mul4sq 12375
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 12374. (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 12373 . 2 (𝐴𝑆 ↔ ∃𝑎 ∈ ℤ[i] ∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)))
314sqlem4 12373 . 2 (𝐵𝑆 ↔ ∃𝑐 ∈ ℤ[i] ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)))
4 reeanv 2646 . . 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 2646 . . . . 5 (∃𝑏 ∈ ℤ[i] ∃𝑑 ∈ ℤ[i] (𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) ↔ (∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))))
6 simpll 527 . . . . . . . . . . . . 13 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → 𝑎 ∈ ℤ[i])
7 gzabssqcl 12362 . . . . . . . . . . . . 13 (𝑎 ∈ ℤ[i] → ((abs‘𝑎)↑2) ∈ ℕ0)
86, 7syl 14 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((abs‘𝑎)↑2) ∈ ℕ0)
9 simprl 529 . . . . . . . . . . . . 13 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → 𝑏 ∈ ℤ[i])
10 gzabssqcl 12362 . . . . . . . . . . . . 13 (𝑏 ∈ ℤ[i] → ((abs‘𝑏)↑2) ∈ ℕ0)
119, 10syl 14 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((abs‘𝑏)↑2) ∈ ℕ0)
128, 11nn0addcld 9222 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∈ ℕ0)
1312nn0cnd 9220 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∈ ℂ)
1413div1d 8726 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) / 1) = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)))
15 simplr 528 . . . . . . . . . . . . 13 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → 𝑐 ∈ ℤ[i])
16 gzabssqcl 12362 . . . . . . . . . . . . 13 (𝑐 ∈ ℤ[i] → ((abs‘𝑐)↑2) ∈ ℕ0)
1715, 16syl 14 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((abs‘𝑐)↑2) ∈ ℕ0)
18 simprr 531 . . . . . . . . . . . . 13 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → 𝑑 ∈ ℤ[i])
19 gzabssqcl 12362 . . . . . . . . . . . . 13 (𝑑 ∈ ℤ[i] → ((abs‘𝑑)↑2) ∈ ℕ0)
2018, 19syl 14 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((abs‘𝑑)↑2) ∈ ℕ0)
2117, 20nn0addcld 9222 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) ∈ ℕ0)
2221nn0cnd 9220 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) ∈ ℂ)
2322div1d 8726 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) / 1) = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)))
2414, 23oveq12d 5887 . . . . . . . 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 2177 . . . . . . . . 9 (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2))
26 eqid 2177 . . . . . . . . 9 (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))
27 1nn 8919 . . . . . . . . . 10 1 ∈ ℕ
2827a1i 9 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → 1 ∈ ℕ)
29 gzsubcl 12361 . . . . . . . . . . . . 13 ((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) → (𝑎𝑐) ∈ ℤ[i])
3029adantr 276 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑎𝑐) ∈ ℤ[i])
31 gzcn 12353 . . . . . . . . . . . 12 ((𝑎𝑐) ∈ ℤ[i] → (𝑎𝑐) ∈ ℂ)
3230, 31syl 14 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑎𝑐) ∈ ℂ)
3332div1d 8726 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑎𝑐) / 1) = (𝑎𝑐))
3433, 30eqeltrd 2254 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑎𝑐) / 1) ∈ ℤ[i])
35 gzsubcl 12361 . . . . . . . . . . . . 13 ((𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i]) → (𝑏𝑑) ∈ ℤ[i])
3635adantl 277 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑏𝑑) ∈ ℤ[i])
37 gzcn 12353 . . . . . . . . . . . 12 ((𝑏𝑑) ∈ ℤ[i] → (𝑏𝑑) ∈ ℂ)
3836, 37syl 14 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑏𝑑) ∈ ℂ)
3938div1d 8726 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑏𝑑) / 1) = (𝑏𝑑))
4039, 36eqeltrd 2254 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑏𝑑) / 1) ∈ ℤ[i])
4114, 12eqeltrd 2254 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) / 1) ∈ ℕ0)
421, 6, 9, 15, 18, 25, 26, 28, 34, 40, 41mul4sqlem 12374 . . . . . . . 8 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) / 1) · ((((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) / 1)) ∈ 𝑆)
4324, 42eqeltrrd 2255 . . . . . . 7 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) · (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) ∈ 𝑆)
44 oveq12 5878 . . . . . . . 8 ((𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) = ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) · (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))))
4544eleq1d 2246 . . . . . . 7 ((𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → ((𝐴 · 𝐵) ∈ 𝑆 ↔ ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) · (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) ∈ 𝑆))
4643, 45syl5ibrcom 157 . . . . . 6 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) ∈ 𝑆))
4746rexlimdvva 2602 . . . . 5 ((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) → (∃𝑏 ∈ ℤ[i] ∃𝑑 ∈ ℤ[i] (𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) ∈ 𝑆))
485, 47biimtrrid 153 . . . 4 ((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) → ((∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) ∈ 𝑆))
4948rexlimivv 2600 . . 3 (∃𝑎 ∈ ℤ[i] ∃𝑐 ∈ ℤ[i] (∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) ∈ 𝑆)
504, 49sylbir 135 . 2 ((∃𝑎 ∈ ℤ[i] ∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ ∃𝑐 ∈ ℤ[i] ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) ∈ 𝑆)
512, 3, 50syl2anb 291 1 ((𝐴𝑆𝐵𝑆) → (𝐴 · 𝐵) ∈ 𝑆)
Colors of variables: wff set class
Syntax hints:  wi 4  wa 104   = wceq 1353  wcel 2148  {cab 2163  wrex 2456  cfv 5212  (class class class)co 5869  cc 7800  1c1 7803   + caddc 7805   · cmul 7807  cmin 8118   / cdiv 8618  cn 8908  2c2 8959  0cn0 9165  cz 9242  cexp 10505  abscabs 10990  ℤ[i]cgz 12350
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 614  ax-in2 615  ax-io 709  ax-5 1447  ax-7 1448  ax-gen 1449  ax-ie1 1493  ax-ie2 1494  ax-8 1504  ax-10 1505  ax-11 1506  ax-i12 1507  ax-bndl 1509  ax-4 1510  ax-17 1526  ax-i9 1530  ax-ial 1534  ax-i5r 1535  ax-13 2150  ax-14 2151  ax-ext 2159  ax-coll 4115  ax-sep 4118  ax-nul 4126  ax-pow 4171  ax-pr 4206  ax-un 4430  ax-setind 4533  ax-iinf 4584  ax-cnex 7893  ax-resscn 7894  ax-1cn 7895  ax-1re 7896  ax-icn 7897  ax-addcl 7898  ax-addrcl 7899  ax-mulcl 7900  ax-mulrcl 7901  ax-addcom 7902  ax-mulcom 7903  ax-addass 7904  ax-mulass 7905  ax-distr 7906  ax-i2m1 7907  ax-0lt1 7908  ax-1rid 7909  ax-0id 7910  ax-rnegex 7911  ax-precex 7912  ax-cnre 7913  ax-pre-ltirr 7914  ax-pre-ltwlin 7915  ax-pre-lttrn 7916  ax-pre-apti 7917  ax-pre-ltadd 7918  ax-pre-mulgt0 7919  ax-pre-mulext 7920  ax-arch 7921  ax-caucvg 7922
This theorem depends on definitions:  df-bi 117  df-dc 835  df-3or 979  df-3an 980  df-tru 1356  df-fal 1359  df-nf 1461  df-sb 1763  df-eu 2029  df-mo 2030  df-clab 2164  df-cleq 2170  df-clel 2173  df-nfc 2308  df-ne 2348  df-nel 2443  df-ral 2460  df-rex 2461  df-reu 2462  df-rmo 2463  df-rab 2464  df-v 2739  df-sbc 2963  df-csb 3058  df-dif 3131  df-un 3133  df-in 3135  df-ss 3142  df-nul 3423  df-if 3535  df-pw 3576  df-sn 3597  df-pr 3598  df-op 3600  df-uni 3808  df-int 3843  df-iun 3886  df-br 4001  df-opab 4062  df-mpt 4063  df-tr 4099  df-id 4290  df-po 4293  df-iso 4294  df-iord 4363  df-on 4365  df-ilim 4366  df-suc 4368  df-iom 4587  df-xp 4629  df-rel 4630  df-cnv 4631  df-co 4632  df-dm 4633  df-rn 4634  df-res 4635  df-ima 4636  df-iota 5174  df-fun 5214  df-fn 5215  df-f 5216  df-f1 5217  df-fo 5218  df-f1o 5219  df-fv 5220  df-riota 5825  df-ov 5872  df-oprab 5873  df-mpo 5874  df-1st 6135  df-2nd 6136  df-recs 6300  df-frec 6386  df-pnf 7984  df-mnf 7985  df-xr 7986  df-ltxr 7987  df-le 7988  df-sub 8120  df-neg 8121  df-reap 8522  df-ap 8529  df-div 8619  df-inn 8909  df-2 8967  df-3 8968  df-4 8969  df-n0 9166  df-z 9243  df-uz 9518  df-rp 9641  df-seqfrec 10432  df-exp 10506  df-cj 10835  df-re 10836  df-im 10837  df-rsqrt 10991  df-abs 10992  df-gz 12351
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator