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

Theorem mul4sq 12590
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 12589. (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 12588 . 2 (𝐴𝑆 ↔ ∃𝑎 ∈ ℤ[i] ∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)))
314sqlem4 12588 . 2 (𝐵𝑆 ↔ ∃𝑐 ∈ ℤ[i] ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)))
4 reeanv 2667 . . 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 2667 . . . . 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 12577 . . . . . . . . . . . . 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 12577 . . . . . . . . . . . . 13 (𝑏 ∈ ℤ[i] → ((abs‘𝑏)↑2) ∈ ℕ0)
119, 10syl 14 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((abs‘𝑏)↑2) ∈ ℕ0)
128, 11nn0addcld 9325 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∈ ℕ0)
1312nn0cnd 9323 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∈ ℂ)
1413div1d 8826 . . . . . . . . 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 12577 . . . . . . . . . . . . 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 12577 . . . . . . . . . . . . 13 (𝑑 ∈ ℤ[i] → ((abs‘𝑑)↑2) ∈ ℕ0)
2018, 19syl 14 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((abs‘𝑑)↑2) ∈ ℕ0)
2117, 20nn0addcld 9325 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) ∈ ℕ0)
2221nn0cnd 9323 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) ∈ ℂ)
2322div1d 8826 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) / 1) = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)))
2414, 23oveq12d 5943 . . . . . . . 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 2196 . . . . . . . . 9 (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2))
26 eqid 2196 . . . . . . . . 9 (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))
27 1nn 9020 . . . . . . . . . 10 1 ∈ ℕ
2827a1i 9 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → 1 ∈ ℕ)
29 gzsubcl 12576 . . . . . . . . . . . . 13 ((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) → (𝑎𝑐) ∈ ℤ[i])
3029adantr 276 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑎𝑐) ∈ ℤ[i])
31 gzcn 12568 . . . . . . . . . . . 12 ((𝑎𝑐) ∈ ℤ[i] → (𝑎𝑐) ∈ ℂ)
3230, 31syl 14 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑎𝑐) ∈ ℂ)
3332div1d 8826 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑎𝑐) / 1) = (𝑎𝑐))
3433, 30eqeltrd 2273 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑎𝑐) / 1) ∈ ℤ[i])
35 gzsubcl 12576 . . . . . . . . . . . . 13 ((𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i]) → (𝑏𝑑) ∈ ℤ[i])
3635adantl 277 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑏𝑑) ∈ ℤ[i])
37 gzcn 12568 . . . . . . . . . . . 12 ((𝑏𝑑) ∈ ℤ[i] → (𝑏𝑑) ∈ ℂ)
3836, 37syl 14 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑏𝑑) ∈ ℂ)
3938div1d 8826 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑏𝑑) / 1) = (𝑏𝑑))
4039, 36eqeltrd 2273 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑏𝑑) / 1) ∈ ℤ[i])
4114, 12eqeltrd 2273 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) / 1) ∈ ℕ0)
421, 6, 9, 15, 18, 25, 26, 28, 34, 40, 41mul4sqlem 12589 . . . . . . . 8 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) / 1) · ((((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) / 1)) ∈ 𝑆)
4324, 42eqeltrrd 2274 . . . . . . 7 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) · (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) ∈ 𝑆)
44 oveq12 5934 . . . . . . . 8 ((𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) = ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) · (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))))
4544eleq1d 2265 . . . . . . 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 2622 . . . . 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 2620 . . 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 1364  wcel 2167  {cab 2182  wrex 2476  cfv 5259  (class class class)co 5925  cc 7896  1c1 7899   + caddc 7901   · cmul 7903  cmin 8216   / cdiv 8718  cn 9009  2c2 9060  0cn0 9268  cz 9345  cexp 10649  abscabs 11181  ℤ[i]cgz 12565
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 615  ax-in2 616  ax-io 710  ax-5 1461  ax-7 1462  ax-gen 1463  ax-ie1 1507  ax-ie2 1508  ax-8 1518  ax-10 1519  ax-11 1520  ax-i12 1521  ax-bndl 1523  ax-4 1524  ax-17 1540  ax-i9 1544  ax-ial 1548  ax-i5r 1549  ax-13 2169  ax-14 2170  ax-ext 2178  ax-coll 4149  ax-sep 4152  ax-nul 4160  ax-pow 4208  ax-pr 4243  ax-un 4469  ax-setind 4574  ax-iinf 4625  ax-cnex 7989  ax-resscn 7990  ax-1cn 7991  ax-1re 7992  ax-icn 7993  ax-addcl 7994  ax-addrcl 7995  ax-mulcl 7996  ax-mulrcl 7997  ax-addcom 7998  ax-mulcom 7999  ax-addass 8000  ax-mulass 8001  ax-distr 8002  ax-i2m1 8003  ax-0lt1 8004  ax-1rid 8005  ax-0id 8006  ax-rnegex 8007  ax-precex 8008  ax-cnre 8009  ax-pre-ltirr 8010  ax-pre-ltwlin 8011  ax-pre-lttrn 8012  ax-pre-apti 8013  ax-pre-ltadd 8014  ax-pre-mulgt0 8015  ax-pre-mulext 8016  ax-arch 8017  ax-caucvg 8018
This theorem depends on definitions:  df-bi 117  df-dc 836  df-3or 981  df-3an 982  df-tru 1367  df-fal 1370  df-nf 1475  df-sb 1777  df-eu 2048  df-mo 2049  df-clab 2183  df-cleq 2189  df-clel 2192  df-nfc 2328  df-ne 2368  df-nel 2463  df-ral 2480  df-rex 2481  df-reu 2482  df-rmo 2483  df-rab 2484  df-v 2765  df-sbc 2990  df-csb 3085  df-dif 3159  df-un 3161  df-in 3163  df-ss 3170  df-nul 3452  df-if 3563  df-pw 3608  df-sn 3629  df-pr 3630  df-op 3632  df-uni 3841  df-int 3876  df-iun 3919  df-br 4035  df-opab 4096  df-mpt 4097  df-tr 4133  df-id 4329  df-po 4332  df-iso 4333  df-iord 4402  df-on 4404  df-ilim 4405  df-suc 4407  df-iom 4628  df-xp 4670  df-rel 4671  df-cnv 4672  df-co 4673  df-dm 4674  df-rn 4675  df-res 4676  df-ima 4677  df-iota 5220  df-fun 5261  df-fn 5262  df-f 5263  df-f1 5264  df-fo 5265  df-f1o 5266  df-fv 5267  df-riota 5880  df-ov 5928  df-oprab 5929  df-mpo 5930  df-1st 6207  df-2nd 6208  df-recs 6372  df-frec 6458  df-pnf 8082  df-mnf 8083  df-xr 8084  df-ltxr 8085  df-le 8086  df-sub 8218  df-neg 8219  df-reap 8621  df-ap 8628  df-div 8719  df-inn 9010  df-2 9068  df-3 9069  df-4 9070  df-n0 9269  df-z 9346  df-uz 9621  df-rp 9748  df-seqfrec 10559  df-exp 10650  df-cj 11026  df-re 11027  df-im 11028  df-rsqrt 11182  df-abs 11183  df-gz 12566
This theorem is referenced by:  4sqlem19  12605
  Copyright terms: Public domain W3C validator