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

Theorem mul4sq 12659
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 12658. (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 12657 . 2 (𝐴𝑆 ↔ ∃𝑎 ∈ ℤ[i] ∃𝑏 ∈ ℤ[i] 𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)))
314sqlem4 12657 . 2 (𝐵𝑆 ↔ ∃𝑐 ∈ ℤ[i] ∃𝑑 ∈ ℤ[i] 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)))
4 reeanv 2675 . . 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 2675 . . . . 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 12646 . . . . . . . . . . . . 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 12646 . . . . . . . . . . . . 13 (𝑏 ∈ ℤ[i] → ((abs‘𝑏)↑2) ∈ ℕ0)
119, 10syl 14 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((abs‘𝑏)↑2) ∈ ℕ0)
128, 11nn0addcld 9351 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∈ ℕ0)
1312nn0cnd 9349 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∈ ℂ)
1413div1d 8852 . . . . . . . . 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 12646 . . . . . . . . . . . . 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 12646 . . . . . . . . . . . . 13 (𝑑 ∈ ℤ[i] → ((abs‘𝑑)↑2) ∈ ℕ0)
2018, 19syl 14 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((abs‘𝑑)↑2) ∈ ℕ0)
2117, 20nn0addcld 9351 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) ∈ ℕ0)
2221nn0cnd 9349 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) ∈ ℂ)
2322div1d 8852 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) / 1) = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)))
2414, 23oveq12d 5961 . . . . . . . 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 2204 . . . . . . . . 9 (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2))
26 eqid 2204 . . . . . . . . 9 (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))
27 1nn 9046 . . . . . . . . . 10 1 ∈ ℕ
2827a1i 9 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → 1 ∈ ℕ)
29 gzsubcl 12645 . . . . . . . . . . . . 13 ((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) → (𝑎𝑐) ∈ ℤ[i])
3029adantr 276 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑎𝑐) ∈ ℤ[i])
31 gzcn 12637 . . . . . . . . . . . 12 ((𝑎𝑐) ∈ ℤ[i] → (𝑎𝑐) ∈ ℂ)
3230, 31syl 14 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑎𝑐) ∈ ℂ)
3332div1d 8852 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑎𝑐) / 1) = (𝑎𝑐))
3433, 30eqeltrd 2281 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑎𝑐) / 1) ∈ ℤ[i])
35 gzsubcl 12645 . . . . . . . . . . . . 13 ((𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i]) → (𝑏𝑑) ∈ ℤ[i])
3635adantl 277 . . . . . . . . . . . 12 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑏𝑑) ∈ ℤ[i])
37 gzcn 12637 . . . . . . . . . . . 12 ((𝑏𝑑) ∈ ℤ[i] → (𝑏𝑑) ∈ ℂ)
3836, 37syl 14 . . . . . . . . . . 11 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (𝑏𝑑) ∈ ℂ)
3938div1d 8852 . . . . . . . . . 10 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑏𝑑) / 1) = (𝑏𝑑))
4039, 36eqeltrd 2281 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((𝑏𝑑) / 1) ∈ ℤ[i])
4114, 12eqeltrd 2281 . . . . . . . . 9 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) / 1) ∈ ℕ0)
421, 6, 9, 15, 18, 25, 26, 28, 34, 40, 41mul4sqlem 12658 . . . . . . . 8 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → (((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) / 1) · ((((abs‘𝑐)↑2) + ((abs‘𝑑)↑2)) / 1)) ∈ 𝑆)
4324, 42eqeltrrd 2282 . . . . . . 7 (((𝑎 ∈ ℤ[i] ∧ 𝑐 ∈ ℤ[i]) ∧ (𝑏 ∈ ℤ[i] ∧ 𝑑 ∈ ℤ[i])) → ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) · (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) ∈ 𝑆)
44 oveq12 5952 . . . . . . . 8 ((𝐴 = (((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) ∧ 𝐵 = (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))) → (𝐴 · 𝐵) = ((((abs‘𝑎)↑2) + ((abs‘𝑏)↑2)) · (((abs‘𝑐)↑2) + ((abs‘𝑑)↑2))))
4544eleq1d 2273 . . . . . . 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 2630 . . . . 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 2628 . . 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 1372  wcel 2175  {cab 2190  wrex 2484  cfv 5270  (class class class)co 5943  cc 7922  1c1 7925   + caddc 7927   · cmul 7929  cmin 8242   / cdiv 8744  cn 9035  2c2 9086  0cn0 9294  cz 9371  cexp 10681  abscabs 11250  ℤ[i]cgz 12634
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 1469  ax-7 1470  ax-gen 1471  ax-ie1 1515  ax-ie2 1516  ax-8 1526  ax-10 1527  ax-11 1528  ax-i12 1529  ax-bndl 1531  ax-4 1532  ax-17 1548  ax-i9 1552  ax-ial 1556  ax-i5r 1557  ax-13 2177  ax-14 2178  ax-ext 2186  ax-coll 4158  ax-sep 4161  ax-nul 4169  ax-pow 4217  ax-pr 4252  ax-un 4479  ax-setind 4584  ax-iinf 4635  ax-cnex 8015  ax-resscn 8016  ax-1cn 8017  ax-1re 8018  ax-icn 8019  ax-addcl 8020  ax-addrcl 8021  ax-mulcl 8022  ax-mulrcl 8023  ax-addcom 8024  ax-mulcom 8025  ax-addass 8026  ax-mulass 8027  ax-distr 8028  ax-i2m1 8029  ax-0lt1 8030  ax-1rid 8031  ax-0id 8032  ax-rnegex 8033  ax-precex 8034  ax-cnre 8035  ax-pre-ltirr 8036  ax-pre-ltwlin 8037  ax-pre-lttrn 8038  ax-pre-apti 8039  ax-pre-ltadd 8040  ax-pre-mulgt0 8041  ax-pre-mulext 8042  ax-arch 8043  ax-caucvg 8044
This theorem depends on definitions:  df-bi 117  df-dc 836  df-3or 981  df-3an 982  df-tru 1375  df-fal 1378  df-nf 1483  df-sb 1785  df-eu 2056  df-mo 2057  df-clab 2191  df-cleq 2197  df-clel 2200  df-nfc 2336  df-ne 2376  df-nel 2471  df-ral 2488  df-rex 2489  df-reu 2490  df-rmo 2491  df-rab 2492  df-v 2773  df-sbc 2998  df-csb 3093  df-dif 3167  df-un 3169  df-in 3171  df-ss 3178  df-nul 3460  df-if 3571  df-pw 3617  df-sn 3638  df-pr 3639  df-op 3641  df-uni 3850  df-int 3885  df-iun 3928  df-br 4044  df-opab 4105  df-mpt 4106  df-tr 4142  df-id 4339  df-po 4342  df-iso 4343  df-iord 4412  df-on 4414  df-ilim 4415  df-suc 4417  df-iom 4638  df-xp 4680  df-rel 4681  df-cnv 4682  df-co 4683  df-dm 4684  df-rn 4685  df-res 4686  df-ima 4687  df-iota 5231  df-fun 5272  df-fn 5273  df-f 5274  df-f1 5275  df-fo 5276  df-f1o 5277  df-fv 5278  df-riota 5898  df-ov 5946  df-oprab 5947  df-mpo 5948  df-1st 6225  df-2nd 6226  df-recs 6390  df-frec 6476  df-pnf 8108  df-mnf 8109  df-xr 8110  df-ltxr 8111  df-le 8112  df-sub 8244  df-neg 8245  df-reap 8647  df-ap 8654  df-div 8745  df-inn 9036  df-2 9094  df-3 9095  df-4 9096  df-n0 9295  df-z 9372  df-uz 9648  df-rp 9775  df-seqfrec 10591  df-exp 10682  df-cj 11095  df-re 11096  df-im 11097  df-rsqrt 11251  df-abs 11252  df-gz 12635
This theorem is referenced by:  4sqlem19  12674
  Copyright terms: Public domain W3C validator