Metamath Proof Explorer


Theorem ngptgp

Description: A normed abelian group is a topological group (with the topology induced by the metric induced by the norm). (Contributed by Mario Carneiro, 4-Oct-2015)

Ref Expression
Assertion ngptgp GNrmGrpGAbelGTopGrp

Proof

Step Hyp Ref Expression
1 ngpgrp GNrmGrpGGrp
2 1 adantr GNrmGrpGAbelGGrp
3 ngpms GNrmGrpGMetSp
4 3 adantr GNrmGrpGAbelGMetSp
5 mstps GMetSpGTopSp
6 4 5 syl GNrmGrpGAbelGTopSp
7 eqid BaseG=BaseG
8 eqid -G=-G
9 7 8 grpsubf GGrp-G:BaseG×BaseGBaseG
10 2 9 syl GNrmGrpGAbel-G:BaseG×BaseGBaseG
11 rphalfcl z+z2+
12 simplll GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGGNrmGrpGAbel
13 12 4 syl GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGGMetSp
14 simpllr GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGxBaseGyBaseG
15 14 simpld GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGxBaseG
16 simprl GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGuBaseG
17 eqid distG=distG
18 7 17 mscl GMetSpxBaseGuBaseGxdistGu
19 13 15 16 18 syl3anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGxdistGu
20 14 simprd GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGyBaseG
21 simprr GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGvBaseG
22 7 17 mscl GMetSpyBaseGvBaseGydistGv
23 13 20 21 22 syl3anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGydistGv
24 rpre z+z
25 24 ad2antlr GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGz
26 lt2halves xdistGuydistGvzxdistGu<z2ydistGv<z2xdistGu+ydistGv<z
27 19 23 25 26 syl3anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGxdistGu<z2ydistGv<z2xdistGu+ydistGv<z
28 12 2 syl GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGGGrp
29 7 8 grpsubcl GGrpxBaseGyBaseGx-GyBaseG
30 28 15 20 29 syl3anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGx-GyBaseG
31 7 8 grpsubcl GGrpuBaseGvBaseGu-GvBaseG
32 28 16 21 31 syl3anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGu-GvBaseG
33 7 8 grpsubcl GGrpuBaseGyBaseGu-GyBaseG
34 28 16 20 33 syl3anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGu-GyBaseG
35 7 17 mstri GMetSpx-GyBaseGu-GvBaseGu-GyBaseGx-GydistGu-Gvx-GydistGu-Gy+u-GydistGu-Gv
36 13 30 32 34 35 syl13anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGx-GydistGu-Gvx-GydistGu-Gy+u-GydistGu-Gv
37 12 simpld GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGGNrmGrp
38 7 8 17 ngpsubcan GNrmGrpxBaseGuBaseGyBaseGx-GydistGu-Gy=xdistGu
39 37 15 16 20 38 syl13anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGx-GydistGu-Gy=xdistGu
40 eqid +G=+G
41 eqid invgG=invgG
42 7 40 41 8 grpsubval uBaseGyBaseGu-Gy=u+GinvgGy
43 16 20 42 syl2anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGu-Gy=u+GinvgGy
44 7 40 41 8 grpsubval uBaseGvBaseGu-Gv=u+GinvgGv
45 44 adantl GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGu-Gv=u+GinvgGv
46 43 45 oveq12d GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGu-GydistGu-Gv=u+GinvgGydistGu+GinvgGv
47 7 41 grpinvcl GGrpyBaseGinvgGyBaseG
48 28 20 47 syl2anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGinvgGyBaseG
49 7 41 grpinvcl GGrpvBaseGinvgGvBaseG
50 28 21 49 syl2anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGinvgGvBaseG
51 7 40 17 ngplcan GNrmGrpGAbelinvgGyBaseGinvgGvBaseGuBaseGu+GinvgGydistGu+GinvgGv=invgGydistGinvgGv
52 12 48 50 16 51 syl13anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGu+GinvgGydistGu+GinvgGv=invgGydistGinvgGv
53 7 41 17 ngpinvds GNrmGrpGAbelyBaseGvBaseGinvgGydistGinvgGv=ydistGv
54 12 20 21 53 syl12anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGinvgGydistGinvgGv=ydistGv
55 46 52 54 3eqtrd GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGu-GydistGu-Gv=ydistGv
56 39 55 oveq12d GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGx-GydistGu-Gy+u-GydistGu-Gv=xdistGu+ydistGv
57 36 56 breqtrd GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGx-GydistGu-GvxdistGu+ydistGv
58 7 17 mscl GMetSpx-GyBaseGu-GvBaseGx-GydistGu-Gv
59 13 30 32 58 syl3anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGx-GydistGu-Gv
60 19 23 readdcld GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGxdistGu+ydistGv
61 lelttr x-GydistGu-GvxdistGu+ydistGvzx-GydistGu-GvxdistGu+ydistGvxdistGu+ydistGv<zx-GydistGu-Gv<z
62 59 60 25 61 syl3anc GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGx-GydistGu-GvxdistGu+ydistGvxdistGu+ydistGv<zx-GydistGu-Gv<z
63 57 62 mpand GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGxdistGu+ydistGv<zx-GydistGu-Gv<z
64 27 63 syld GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGxdistGu<z2ydistGv<z2x-GydistGu-Gv<z
65 15 16 ovresd GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGxdistGBaseG×BaseGu=xdistGu
66 65 breq1d GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGxdistGBaseG×BaseGu<z2xdistGu<z2
67 20 21 ovresd GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGydistGBaseG×BaseGv=ydistGv
68 67 breq1d GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGydistGBaseG×BaseGv<z2ydistGv<z2
69 66 68 anbi12d GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGxdistGBaseG×BaseGu<z2ydistGBaseG×BaseGv<z2xdistGu<z2ydistGv<z2
70 30 32 ovresd GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGx-GydistGBaseG×BaseGu-Gv=x-GydistGu-Gv
71 70 breq1d GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGx-GydistGBaseG×BaseGu-Gv<zx-GydistGu-Gv<z
72 64 69 71 3imtr4d GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGxdistGBaseG×BaseGu<z2ydistGBaseG×BaseGv<z2x-GydistGBaseG×BaseGu-Gv<z
73 72 ralrimivva GNrmGrpGAbelxBaseGyBaseGz+uBaseGvBaseGxdistGBaseG×BaseGu<z2ydistGBaseG×BaseGv<z2x-GydistGBaseG×BaseGu-Gv<z
74 breq2 r=z2xdistGBaseG×BaseGu<rxdistGBaseG×BaseGu<z2
75 breq2 r=z2ydistGBaseG×BaseGv<rydistGBaseG×BaseGv<z2
76 74 75 anbi12d r=z2xdistGBaseG×BaseGu<rydistGBaseG×BaseGv<rxdistGBaseG×BaseGu<z2ydistGBaseG×BaseGv<z2
77 76 imbi1d r=z2xdistGBaseG×BaseGu<rydistGBaseG×BaseGv<rx-GydistGBaseG×BaseGu-Gv<zxdistGBaseG×BaseGu<z2ydistGBaseG×BaseGv<z2x-GydistGBaseG×BaseGu-Gv<z
78 77 2ralbidv r=z2uBaseGvBaseGxdistGBaseG×BaseGu<rydistGBaseG×BaseGv<rx-GydistGBaseG×BaseGu-Gv<zuBaseGvBaseGxdistGBaseG×BaseGu<z2ydistGBaseG×BaseGv<z2x-GydistGBaseG×BaseGu-Gv<z
79 78 rspcev z2+uBaseGvBaseGxdistGBaseG×BaseGu<z2ydistGBaseG×BaseGv<z2x-GydistGBaseG×BaseGu-Gv<zr+uBaseGvBaseGxdistGBaseG×BaseGu<rydistGBaseG×BaseGv<rx-GydistGBaseG×BaseGu-Gv<z
80 11 73 79 syl2an2 GNrmGrpGAbelxBaseGyBaseGz+r+uBaseGvBaseGxdistGBaseG×BaseGu<rydistGBaseG×BaseGv<rx-GydistGBaseG×BaseGu-Gv<z
81 80 ralrimiva GNrmGrpGAbelxBaseGyBaseGz+r+uBaseGvBaseGxdistGBaseG×BaseGu<rydistGBaseG×BaseGv<rx-GydistGBaseG×BaseGu-Gv<z
82 81 ralrimivva GNrmGrpGAbelxBaseGyBaseGz+r+uBaseGvBaseGxdistGBaseG×BaseGu<rydistGBaseG×BaseGv<rx-GydistGBaseG×BaseGu-Gv<z
83 msxms GMetSpG∞MetSp
84 eqid distGBaseG×BaseG=distGBaseG×BaseG
85 7 84 xmsxmet G∞MetSpdistGBaseG×BaseG∞MetBaseG
86 4 83 85 3syl GNrmGrpGAbeldistGBaseG×BaseG∞MetBaseG
87 eqid MetOpendistGBaseG×BaseG=MetOpendistGBaseG×BaseG
88 87 87 87 txmetcn distGBaseG×BaseG∞MetBaseGdistGBaseG×BaseG∞MetBaseGdistGBaseG×BaseG∞MetBaseG-GMetOpendistGBaseG×BaseG×tMetOpendistGBaseG×BaseGCnMetOpendistGBaseG×BaseG-G:BaseG×BaseGBaseGxBaseGyBaseGz+r+uBaseGvBaseGxdistGBaseG×BaseGu<rydistGBaseG×BaseGv<rx-GydistGBaseG×BaseGu-Gv<z
89 86 86 86 88 syl3anc GNrmGrpGAbel-GMetOpendistGBaseG×BaseG×tMetOpendistGBaseG×BaseGCnMetOpendistGBaseG×BaseG-G:BaseG×BaseGBaseGxBaseGyBaseGz+r+uBaseGvBaseGxdistGBaseG×BaseGu<rydistGBaseG×BaseGv<rx-GydistGBaseG×BaseGu-Gv<z
90 10 82 89 mpbir2and GNrmGrpGAbel-GMetOpendistGBaseG×BaseG×tMetOpendistGBaseG×BaseGCnMetOpendistGBaseG×BaseG
91 eqid TopOpenG=TopOpenG
92 91 7 84 mstopn GMetSpTopOpenG=MetOpendistGBaseG×BaseG
93 4 92 syl GNrmGrpGAbelTopOpenG=MetOpendistGBaseG×BaseG
94 93 93 oveq12d GNrmGrpGAbelTopOpenG×tTopOpenG=MetOpendistGBaseG×BaseG×tMetOpendistGBaseG×BaseG
95 94 93 oveq12d GNrmGrpGAbelTopOpenG×tTopOpenGCnTopOpenG=MetOpendistGBaseG×BaseG×tMetOpendistGBaseG×BaseGCnMetOpendistGBaseG×BaseG
96 90 95 eleqtrrd GNrmGrpGAbel-GTopOpenG×tTopOpenGCnTopOpenG
97 91 8 istgp2 GTopGrpGGrpGTopSp-GTopOpenG×tTopOpenGCnTopOpenG
98 2 6 96 97 syl3anbrc GNrmGrpGAbelGTopGrp