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 26298 | . 2 ⊢ (𝐴 ∈ 𝑆 ↔ ∃𝑥 ∈ ℤ[i] 𝐴 = ((abs‘𝑥)↑2)) |
3 | 1 | 2sqlem1 26298 | . 2 ⊢ (𝐵 ∈ 𝑆 ↔ ∃𝑦 ∈ ℤ[i] 𝐵 = ((abs‘𝑦)↑2)) |
4 | reeanv 3279 | . . 3 ⊢ (∃𝑥 ∈ ℤ[i] ∃𝑦 ∈ ℤ[i] (𝐴 = ((abs‘𝑥)↑2) ∧ 𝐵 = ((abs‘𝑦)↑2)) ↔ (∃𝑥 ∈ ℤ[i] 𝐴 = ((abs‘𝑥)↑2) ∧ ∃𝑦 ∈ ℤ[i] 𝐵 = ((abs‘𝑦)↑2))) | |
5 | gzmulcl 16491 | . . . . . . 7 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → (𝑥 · 𝑦) ∈ ℤ[i]) | |
6 | gzcn 16485 | . . . . . . . . . 10 ⊢ (𝑥 ∈ ℤ[i] → 𝑥 ∈ ℂ) | |
7 | gzcn 16485 | . . . . . . . . . 10 ⊢ (𝑦 ∈ ℤ[i] → 𝑦 ∈ ℂ) | |
8 | absmul 14858 | . . . . . . . . . 10 ⊢ ((𝑥 ∈ ℂ ∧ 𝑦 ∈ ℂ) → (abs‘(𝑥 · 𝑦)) = ((abs‘𝑥) · (abs‘𝑦))) | |
9 | 6, 7, 8 | syl2an 599 | . . . . . . . . 9 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → (abs‘(𝑥 · 𝑦)) = ((abs‘𝑥) · (abs‘𝑦))) |
10 | 9 | oveq1d 7228 | . . . . . . . 8 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → ((abs‘(𝑥 · 𝑦))↑2) = (((abs‘𝑥) · (abs‘𝑦))↑2)) |
11 | 6 | abscld 15000 | . . . . . . . . . 10 ⊢ (𝑥 ∈ ℤ[i] → (abs‘𝑥) ∈ ℝ) |
12 | 11 | recnd 10861 | . . . . . . . . 9 ⊢ (𝑥 ∈ ℤ[i] → (abs‘𝑥) ∈ ℂ) |
13 | 7 | abscld 15000 | . . . . . . . . . 10 ⊢ (𝑦 ∈ ℤ[i] → (abs‘𝑦) ∈ ℝ) |
14 | 13 | recnd 10861 | . . . . . . . . 9 ⊢ (𝑦 ∈ ℤ[i] → (abs‘𝑦) ∈ ℂ) |
15 | sqmul 13691 | . . . . . . . . 9 ⊢ (((abs‘𝑥) ∈ ℂ ∧ (abs‘𝑦) ∈ ℂ) → (((abs‘𝑥) · (abs‘𝑦))↑2) = (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2))) | |
16 | 12, 14, 15 | syl2an 599 | . . . . . . . 8 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → (((abs‘𝑥) · (abs‘𝑦))↑2) = (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2))) |
17 | 10, 16 | eqtr2d 2778 | . . . . . . 7 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) = ((abs‘(𝑥 · 𝑦))↑2)) |
18 | fveq2 6717 | . . . . . . . . 9 ⊢ (𝑧 = (𝑥 · 𝑦) → (abs‘𝑧) = (abs‘(𝑥 · 𝑦))) | |
19 | 18 | oveq1d 7228 | . . . . . . . 8 ⊢ (𝑧 = (𝑥 · 𝑦) → ((abs‘𝑧)↑2) = ((abs‘(𝑥 · 𝑦))↑2)) |
20 | 19 | rspceeqv 3552 | . . . . . . 7 ⊢ (((𝑥 · 𝑦) ∈ ℤ[i] ∧ (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) = ((abs‘(𝑥 · 𝑦))↑2)) → ∃𝑧 ∈ ℤ[i] (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) = ((abs‘𝑧)↑2)) |
21 | 5, 17, 20 | syl2anc 587 | . . . . . 6 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → ∃𝑧 ∈ ℤ[i] (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) = ((abs‘𝑧)↑2)) |
22 | 1 | 2sqlem1 26298 | . . . . . 6 ⊢ ((((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) ∈ 𝑆 ↔ ∃𝑧 ∈ ℤ[i] (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) = ((abs‘𝑧)↑2)) |
23 | 21, 22 | sylibr 237 | . . . . 5 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → (((abs‘𝑥)↑2) · ((abs‘𝑦)↑2)) ∈ 𝑆) |
24 | oveq12 7222 | . . . . . 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 250 | . . . 4 ⊢ ((𝑥 ∈ ℤ[i] ∧ 𝑦 ∈ ℤ[i]) → ((𝐴 = ((abs‘𝑥)↑2) ∧ 𝐵 = ((abs‘𝑦)↑2)) → (𝐴 · 𝐵) ∈ 𝑆)) |
27 | 26 | rexlimivv 3211 | . . 3 ⊢ (∃𝑥 ∈ ℤ[i] ∃𝑦 ∈ ℤ[i] (𝐴 = ((abs‘𝑥)↑2) ∧ 𝐵 = ((abs‘𝑦)↑2)) → (𝐴 · 𝐵) ∈ 𝑆) |
28 | 4, 27 | sylbir 238 | . 2 ⊢ ((∃𝑥 ∈ ℤ[i] 𝐴 = ((abs‘𝑥)↑2) ∧ ∃𝑦 ∈ ℤ[i] 𝐵 = ((abs‘𝑦)↑2)) → (𝐴 · 𝐵) ∈ 𝑆) |
29 | 2, 3, 28 | syl2anb 601 | 1 ⊢ ((𝐴 ∈ 𝑆 ∧ 𝐵 ∈ 𝑆) → (𝐴 · 𝐵) ∈ 𝑆) |
Colors of variables: wff setvar class |
Syntax hints: → wi 4 ∧ wa 399 = wceq 1543 ∈ wcel 2110 ∃wrex 3062 ↦ cmpt 5135 ran crn 5552 ‘cfv 6380 (class class class)co 7213 ℂcc 10727 · cmul 10734 2c2 11885 ↑cexp 13635 abscabs 14797 ℤ[i]cgz 16482 |
This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1803 ax-4 1817 ax-5 1918 ax-6 1976 ax-7 2016 ax-8 2112 ax-9 2120 ax-10 2141 ax-11 2158 ax-12 2175 ax-ext 2708 ax-sep 5192 ax-nul 5199 ax-pow 5258 ax-pr 5322 ax-un 7523 ax-cnex 10785 ax-resscn 10786 ax-1cn 10787 ax-icn 10788 ax-addcl 10789 ax-addrcl 10790 ax-mulcl 10791 ax-mulrcl 10792 ax-mulcom 10793 ax-addass 10794 ax-mulass 10795 ax-distr 10796 ax-i2m1 10797 ax-1ne0 10798 ax-1rid 10799 ax-rnegex 10800 ax-rrecex 10801 ax-cnre 10802 ax-pre-lttri 10803 ax-pre-lttrn 10804 ax-pre-ltadd 10805 ax-pre-mulgt0 10806 ax-pre-sup 10807 |
This theorem depends on definitions: df-bi 210 df-an 400 df-or 848 df-3or 1090 df-3an 1091 df-tru 1546 df-fal 1556 df-ex 1788 df-nf 1792 df-sb 2071 df-mo 2539 df-eu 2568 df-clab 2715 df-cleq 2729 df-clel 2816 df-nfc 2886 df-ne 2941 df-nel 3047 df-ral 3066 df-rex 3067 df-reu 3068 df-rmo 3069 df-rab 3070 df-v 3410 df-sbc 3695 df-csb 3812 df-dif 3869 df-un 3871 df-in 3873 df-ss 3883 df-pss 3885 df-nul 4238 df-if 4440 df-pw 4515 df-sn 4542 df-pr 4544 df-tp 4546 df-op 4548 df-uni 4820 df-iun 4906 df-br 5054 df-opab 5116 df-mpt 5136 df-tr 5162 df-id 5455 df-eprel 5460 df-po 5468 df-so 5469 df-fr 5509 df-we 5511 df-xp 5557 df-rel 5558 df-cnv 5559 df-co 5560 df-dm 5561 df-rn 5562 df-res 5563 df-ima 5564 df-pred 6160 df-ord 6216 df-on 6217 df-lim 6218 df-suc 6219 df-iota 6338 df-fun 6382 df-fn 6383 df-f 6384 df-f1 6385 df-fo 6386 df-f1o 6387 df-fv 6388 df-riota 7170 df-ov 7216 df-oprab 7217 df-mpo 7218 df-om 7645 df-2nd 7762 df-wrecs 8047 df-recs 8108 df-rdg 8146 df-er 8391 df-en 8627 df-dom 8628 df-sdom 8629 df-sup 9058 df-pnf 10869 df-mnf 10870 df-xr 10871 df-ltxr 10872 df-le 10873 df-sub 11064 df-neg 11065 df-div 11490 df-nn 11831 df-2 11893 df-3 11894 df-n0 12091 df-z 12177 df-uz 12439 df-rp 12587 df-seq 13575 df-exp 13636 df-cj 14662 df-re 14663 df-im 14664 df-sqrt 14798 df-abs 14799 df-gz 16483 |
This theorem is referenced by: (None) |
Copyright terms: Public domain | W3C validator |