| Metamath Proof Explorer |
< Previous
Next >
Nearby theorems |
||
| Mirrors > Home > MPE Home > Th. List > mul2sq | Structured version Visualization version GIF version | ||
| Description: Fibonacci's identity (actually due to Diophantus). The product of two sums of two squares is also a sum of two squares. We can take advantage of Gaussian integers here to trivialize the proof. (Contributed by Mario Carneiro, 19-Jun-2015.) |
| Ref | Expression |
|---|---|
| 2sq.1 | ⊢ 𝑆 = ran (𝑤 ∈ ℤ[i] ↦ ((abs‘𝑤)↑2)) |
| Ref | Expression |
|---|---|
| mul2sq | ⊢ ((𝐴 ∈ 𝑆 ∧ 𝐵 ∈ 𝑆) → (𝐴 · 𝐵) ∈ 𝑆) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | 2sq.1 | . . 3 ⊢ 𝑆 = ran (𝑤 ∈ ℤ[i] ↦ ((abs‘𝑤)↑2)) | |
| 2 | 1 | 2sqlem1 27397 | . 2 ⊢ (𝐴 ∈ 𝑆 ↔ ∃𝑥 ∈ ℤ[i] 𝐴 = ((abs‘𝑥)↑2)) |
| 3 | 1 | 2sqlem1 27397 | . 2 ⊢ (𝐵 ∈ 𝑆 ↔ ∃𝑦 ∈ ℤ[i] 𝐵 = ((abs‘𝑦)↑2)) |
| 4 | reeanv 3210 | . . 3 ⊢ (∃𝑥 ∈ ℤ[i] ∃𝑦 ∈ ℤ[i] (𝐴 = ((abs‘𝑥)↑2) ∧ 𝐵 = ((abs‘𝑦)↑2)) ↔ (∃𝑥 ∈ ℤ[i] 𝐴 = ((abs‘𝑥)↑2) ∧ ∃𝑦 ∈ ℤ[i] 𝐵 = ((abs‘𝑦)↑2))) | |
| 5 | gzmulcl 16903 | . . . . . . 7 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → (𝑥 · 𝑦) ∈ ℤ[i]) | |
| 6 | gzcn 16897 | . . . . . . . . . 10 ⊢ (𝑥 ∈ ℤ[i] → 𝑥 ∈ ℂ) | |
| 7 | gzcn 16897 | . . . . . . . . . 10 ⊢ (𝑦 ∈ ℤ[i] → 𝑦 ∈ ℂ) | |
| 8 | absmul 15250 | . . . . . . . . . 10 ⊢ ((𝑥 ∈ ℂ ∧ 𝑦 ∈ ℂ) → (abs‘(𝑥 · 𝑦)) = ((abs‘𝑥) · (abs‘𝑦))) | |
| 9 | 6, 7, 8 | syl2an 597 | . . . . . . . . 9 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → (abs‘(𝑥 · 𝑦)) = ((abs‘𝑥) · (abs‘𝑦))) |
| 10 | 9 | oveq1d 7376 | . . . . . . . 8 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → ((abs‘(𝑥 · 𝑦))↑2) = (((abs‘𝑥) · (abs‘𝑦))↑2)) |
| 11 | 6 | abscld 15395 | . . . . . . . . . 10 ⊢ (𝑥 ∈ ℤ[i] → (abs‘𝑥) ∈ ℝ) |
| 12 | 11 | recnd 11167 | . . . . . . . . 9 ⊢ (𝑥 ∈ ℤ[i] → (abs‘𝑥) ∈ ℂ) |
| 13 | 7 | abscld 15395 | . . . . . . . . . 10 ⊢ (𝑦 ∈ ℤ[i] → (abs‘𝑦) ∈ ℝ) |
| 14 | 13 | recnd 11167 | . . . . . . . . 9 ⊢ (𝑦 ∈ ℤ[i] → (abs‘𝑦) ∈ ℂ) |
| 15 | sqmul 14075 | . . . . . . . . 9 ⊢ (((abs‘𝑥) ∈ ℂ ∧ (abs‘𝑦) ∈ ℂ) → (((abs‘𝑥) · (abs‘𝑦))↑2) = (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2))) | |
| 16 | 12, 14, 15 | syl2an 597 | . . . . . . . 8 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → (((abs‘𝑥) · (abs‘𝑦))↑2) = (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2))) |
| 17 | 10, 16 | eqtr2d 2773 | . . . . . . 7 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) = ((abs‘(𝑥 · 𝑦))↑2)) |
| 18 | fveq2 6835 | . . . . . . . . 9 ⊢ (𝑧 = (𝑥 · 𝑦) → (abs‘𝑧) = (abs‘(𝑥 · 𝑦))) | |
| 19 | 18 | oveq1d 7376 | . . . . . . . 8 ⊢ (𝑧 = (𝑥 · 𝑦) → ((abs‘𝑧)↑2) = ((abs‘(𝑥 · 𝑦))↑2)) |
| 20 | 19 | rspceeqv 3588 | . . . . . . 7 ⊢ (((𝑥 · 𝑦) ∈ ℤ[i] ∧ (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) = ((abs‘(𝑥 · 𝑦))↑2)) → ∃𝑧 ∈ ℤ[i] (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) = ((abs‘𝑧)↑2)) |
| 21 | 5, 17, 20 | syl2anc 585 | . . . . . 6 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → ∃𝑧 ∈ ℤ[i] (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) = ((abs‘𝑧)↑2)) |
| 22 | 1 | 2sqlem1 27397 | . . . . . 6 ⊢ ((((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) ∈ 𝑆 ↔ ∃𝑧 ∈ ℤ[i] (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) = ((abs‘𝑧)↑2)) |
| 23 | 21, 22 | sylibr 234 | . . . . 5 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) ∈ 𝑆) |
| 24 | oveq12 7370 | . . . . . 6 ⊢ ((𝐴 = ((abs‘𝑥)↑2) ∧ 𝐵 = ((abs‘𝑦)↑2)) → (𝐴 · 𝐵) = (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2))) | |
| 25 | 24 | eleq1d 2822 | . . . . 5 ⊢ ((𝐴 = ((abs‘𝑥)↑2) ∧ 𝐵 = ((abs‘𝑦)↑2)) → ((𝐴 · 𝐵) ∈ 𝑆 ↔ (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) ∈ 𝑆)) |
| 26 | 23, 25 | syl5ibrcom 247 | . . . 4 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → ((𝐴 = ((abs‘𝑥)↑2) ∧ 𝐵 = ((abs‘𝑦)↑2)) → (𝐴 · 𝐵) ∈ 𝑆)) |
| 27 | 26 | rexlimivv 3180 | . . 3 ⊢ (∃𝑥 ∈ ℤ[i] ∃𝑦 ∈ ℤ[i] (𝐴 = ((abs‘𝑥)↑2) ∧ 𝐵 = ((abs‘𝑦)↑2)) → (𝐴 · 𝐵) ∈ 𝑆) |
| 28 | 4, 27 | sylbir 235 | . 2 ⊢ ((∃𝑥 ∈ ℤ[i] 𝐴 = ((abs‘𝑥)↑2) ∧ ∃𝑦 ∈ ℤ[i] 𝐵 = ((abs‘𝑦)↑2)) → (𝐴 · 𝐵) ∈ 𝑆) |
| 29 | 2, 3, 28 | syl2anb 599 | 1 ⊢ ((𝐴 ∈ 𝑆 ∧ 𝐵 ∈ 𝑆) → (𝐴 · 𝐵) ∈ 𝑆) |
| Colors of variables: wff setvar class |
| Syntax hints: → wi 4 ∧ wa 395 = wceq 1542 ∈ wcel 2114 ∃wrex 3062 ↦ cmpt 5167 ran crn 5626 ‘cfv 6493 (class class class)co 7361 ℂcc 11030 · cmul 11037 2c2 12230 ↑cexp 14017 abscabs 15190 ℤ[i]cgz 16894 |
| This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1797 ax-4 1811 ax-5 1912 ax-6 1969 ax-7 2010 ax-8 2116 ax-9 2124 ax-10 2147 ax-11 2163 ax-12 2185 ax-ext 2709 ax-sep 5232 ax-nul 5242 ax-pow 5303 ax-pr 5371 ax-un 7683 ax-cnex 11088 ax-resscn 11089 ax-1cn 11090 ax-icn 11091 ax-addcl 11092 ax-addrcl 11093 ax-mulcl 11094 ax-mulrcl 11095 ax-mulcom 11096 ax-addass 11097 ax-mulass 11098 ax-distr 11099 ax-i2m1 11100 ax-1ne0 11101 ax-1rid 11102 ax-rnegex 11103 ax-rrecex 11104 ax-cnre 11105 ax-pre-lttri 11106 ax-pre-lttrn 11107 ax-pre-ltadd 11108 ax-pre-mulgt0 11109 ax-pre-sup 11110 |
| This theorem depends on definitions: df-bi 207 df-an 396 df-or 849 df-3or 1088 df-3an 1089 df-tru 1545 df-fal 1555 df-ex 1782 df-nf 1786 df-sb 2069 df-mo 2540 df-eu 2570 df-clab 2716 df-cleq 2729 df-clel 2812 df-nfc 2886 df-ne 2934 df-nel 3038 df-ral 3053 df-rex 3063 df-rmo 3343 df-reu 3344 df-rab 3391 df-v 3432 df-sbc 3730 df-csb 3839 df-dif 3893 df-un 3895 df-in 3897 df-ss 3907 df-pss 3910 df-nul 4275 df-if 4468 df-pw 4544 df-sn 4569 df-pr 4571 df-op 4575 df-uni 4852 df-iun 4936 df-br 5087 df-opab 5149 df-mpt 5168 df-tr 5194 df-id 5520 df-eprel 5525 df-po 5533 df-so 5534 df-fr 5578 df-we 5580 df-xp 5631 df-rel 5632 df-cnv 5633 df-co 5634 df-dm 5635 df-rn 5636 df-res 5637 df-ima 5638 df-pred 6260 df-ord 6321 df-on 6322 df-lim 6323 df-suc 6324 df-iota 6449 df-fun 6495 df-fn 6496 df-f 6497 df-f1 6498 df-fo 6499 df-f1o 6500 df-fv 6501 df-riota 7318 df-ov 7364 df-oprab 7365 df-mpo 7366 df-om 7812 df-2nd 7937 df-frecs 8225 df-wrecs 8256 df-recs 8305 df-rdg 8343 df-er 8637 df-en 8888 df-dom 8889 df-sdom 8890 df-sup 9349 df-pnf 11175 df-mnf 11176 df-xr 11177 df-ltxr 11178 df-le 11179 df-sub 11373 df-neg 11374 df-div 11802 df-nn 12169 df-2 12238 df-3 12239 df-n0 12432 df-z 12519 df-uz 12783 df-rp 12937 df-seq 13958 df-exp 14018 df-cj 15055 df-re 15056 df-im 15057 df-sqrt 15191 df-abs 15192 df-gz 16895 |
| This theorem is referenced by: (None) |
| Copyright terms: Public domain | W3C validator |