HSE Home Hilbert Space Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  HSE Home  >  Th. List  >  cnlnadjlem7 Structured version   Visualization version   Unicode version

Theorem cnlnadjlem7 28932
Description: Lemma for cnlnadji 28935. Helper lemma to show that  F is continuous. (Contributed by NM, 18-Feb-2006.) (New usage is discouraged.)
Hypotheses
Ref Expression
cnlnadjlem.1  |-  T  e. 
LinOp
cnlnadjlem.2  |-  T  e. 
ContOp
cnlnadjlem.3  |-  G  =  ( g  e.  ~H  |->  ( ( T `  g )  .ih  y
) )
cnlnadjlem.4  |-  B  =  ( iota_ w  e.  ~H  A. v  e.  ~H  (
( T `  v
)  .ih  y )  =  ( v  .ih  w ) )
cnlnadjlem.5  |-  F  =  ( y  e.  ~H  |->  B )
Assertion
Ref Expression
cnlnadjlem7  |-  ( A  e.  ~H  ->  ( normh `  ( F `  A ) )  <_ 
( ( normop `  T
)  x.  ( normh `  A ) ) )
Distinct variable groups:    v, g, w, y, A    w, F    T, g, v, w, y   
v, G, w
Allowed substitution hints:    B( y, w, v, g)    F( y, v, g)    G( y, g)

Proof of Theorem cnlnadjlem7
StepHypRef Expression
1 breq1 4656 . 2  |-  ( (
normh `  ( F `  A ) )  =  0  ->  ( ( normh `  ( F `  A ) )  <_ 
( ( normop `  T
)  x.  ( normh `  A ) )  <->  0  <_  ( ( normop `  T )  x.  ( normh `  A )
) ) )
2 cnlnadjlem.1 . . . . . . . . . 10  |-  T  e. 
LinOp
3 cnlnadjlem.2 . . . . . . . . . 10  |-  T  e. 
ContOp
4 cnlnadjlem.3 . . . . . . . . . 10  |-  G  =  ( g  e.  ~H  |->  ( ( T `  g )  .ih  y
) )
5 cnlnadjlem.4 . . . . . . . . . 10  |-  B  =  ( iota_ w  e.  ~H  A. v  e.  ~H  (
( T `  v
)  .ih  y )  =  ( v  .ih  w ) )
6 cnlnadjlem.5 . . . . . . . . . 10  |-  F  =  ( y  e.  ~H  |->  B )
72, 3, 4, 5, 6cnlnadjlem4 28929 . . . . . . . . 9  |-  ( A  e.  ~H  ->  ( F `  A )  e.  ~H )
82lnopfi 28828 . . . . . . . . . 10  |-  T : ~H
--> ~H
98ffvelrni 6358 . . . . . . . . 9  |-  ( ( F `  A )  e.  ~H  ->  ( T `  ( F `  A ) )  e. 
~H )
107, 9syl 17 . . . . . . . 8  |-  ( A  e.  ~H  ->  ( T `  ( F `  A ) )  e. 
~H )
11 hicl 27937 . . . . . . . 8  |-  ( ( ( T `  ( F `  A )
)  e.  ~H  /\  A  e.  ~H )  ->  ( ( T `  ( F `  A ) )  .ih  A )  e.  CC )
1210, 11mpancom 703 . . . . . . 7  |-  ( A  e.  ~H  ->  (
( T `  ( F `  A )
)  .ih  A )  e.  CC )
1312abscld 14175 . . . . . 6  |-  ( A  e.  ~H  ->  ( abs `  ( ( T `
 ( F `  A ) )  .ih  A ) )  e.  RR )
14 normcl 27982 . . . . . . . 8  |-  ( ( T `  ( F `
 A ) )  e.  ~H  ->  ( normh `  ( T `  ( F `  A ) ) )  e.  RR )
1510, 14syl 17 . . . . . . 7  |-  ( A  e.  ~H  ->  ( normh `  ( T `  ( F `  A ) ) )  e.  RR )
16 normcl 27982 . . . . . . 7  |-  ( A  e.  ~H  ->  ( normh `  A )  e.  RR )
1715, 16remulcld 10070 . . . . . 6  |-  ( A  e.  ~H  ->  (
( normh `  ( T `  ( F `  A
) ) )  x.  ( normh `  A )
)  e.  RR )
182, 3nmcopexi 28886 . . . . . . . 8  |-  ( normop `  T )  e.  RR
19 normcl 27982 . . . . . . . . 9  |-  ( ( F `  A )  e.  ~H  ->  ( normh `  ( F `  A ) )  e.  RR )
207, 19syl 17 . . . . . . . 8  |-  ( A  e.  ~H  ->  ( normh `  ( F `  A ) )  e.  RR )
21 remulcl 10021 . . . . . . . 8  |-  ( ( ( normop `  T )  e.  RR  /\  ( normh `  ( F `  A
) )  e.  RR )  ->  ( ( normop `  T )  x.  ( normh `  ( F `  A ) ) )  e.  RR )
2218, 20, 21sylancr 695 . . . . . . 7  |-  ( A  e.  ~H  ->  (
( normop `  T )  x.  ( normh `  ( F `  A ) ) )  e.  RR )
2322, 16remulcld 10070 . . . . . 6  |-  ( A  e.  ~H  ->  (
( ( normop `  T
)  x.  ( normh `  ( F `  A
) ) )  x.  ( normh `  A )
)  e.  RR )
24 bcs 28038 . . . . . . 7  |-  ( ( ( T `  ( F `  A )
)  e.  ~H  /\  A  e.  ~H )  ->  ( abs `  (
( T `  ( F `  A )
)  .ih  A )
)  <_  ( ( normh `  ( T `  ( F `  A ) ) )  x.  ( normh `  A ) ) )
2510, 24mpancom 703 . . . . . 6  |-  ( A  e.  ~H  ->  ( abs `  ( ( T `
 ( F `  A ) )  .ih  A ) )  <_  (
( normh `  ( T `  ( F `  A
) ) )  x.  ( normh `  A )
) )
26 normge0 27983 . . . . . . 7  |-  ( A  e.  ~H  ->  0  <_  ( normh `  A )
)
272, 3nmcoplbi 28887 . . . . . . . 8  |-  ( ( F `  A )  e.  ~H  ->  ( normh `  ( T `  ( F `  A ) ) )  <_  (
( normop `  T )  x.  ( normh `  ( F `  A ) ) ) )
287, 27syl 17 . . . . . . 7  |-  ( A  e.  ~H  ->  ( normh `  ( T `  ( F `  A ) ) )  <_  (
( normop `  T )  x.  ( normh `  ( F `  A ) ) ) )
2915, 22, 16, 26, 28lemul1ad 10963 . . . . . 6  |-  ( A  e.  ~H  ->  (
( normh `  ( T `  ( F `  A
) ) )  x.  ( normh `  A )
)  <_  ( (
( normop `  T )  x.  ( normh `  ( F `  A ) ) )  x.  ( normh `  A
) ) )
3013, 17, 23, 25, 29letrd 10194 . . . . 5  |-  ( A  e.  ~H  ->  ( abs `  ( ( T `
 ( F `  A ) )  .ih  A ) )  <_  (
( ( normop `  T
)  x.  ( normh `  ( F `  A
) ) )  x.  ( normh `  A )
) )
312, 3, 4, 5, 6cnlnadjlem5 28930 . . . . . . . 8  |-  ( ( A  e.  ~H  /\  ( F `  A )  e.  ~H )  -> 
( ( T `  ( F `  A ) )  .ih  A )  =  ( ( F `
 A )  .ih  ( F `  A ) ) )
327, 31mpdan 702 . . . . . . 7  |-  ( A  e.  ~H  ->  (
( T `  ( F `  A )
)  .ih  A )  =  ( ( F `
 A )  .ih  ( F `  A ) ) )
3332fveq2d 6195 . . . . . 6  |-  ( A  e.  ~H  ->  ( abs `  ( ( T `
 ( F `  A ) )  .ih  A ) )  =  ( abs `  ( ( F `  A ) 
.ih  ( F `  A ) ) ) )
34 hiidrcl 27952 . . . . . . . 8  |-  ( ( F `  A )  e.  ~H  ->  (
( F `  A
)  .ih  ( F `  A ) )  e.  RR )
357, 34syl 17 . . . . . . 7  |-  ( A  e.  ~H  ->  (
( F `  A
)  .ih  ( F `  A ) )  e.  RR )
36 hiidge0 27955 . . . . . . . 8  |-  ( ( F `  A )  e.  ~H  ->  0  <_  ( ( F `  A )  .ih  ( F `  A )
) )
377, 36syl 17 . . . . . . 7  |-  ( A  e.  ~H  ->  0  <_  ( ( F `  A )  .ih  ( F `  A )
) )
3835, 37absidd 14161 . . . . . 6  |-  ( A  e.  ~H  ->  ( abs `  ( ( F `
 A )  .ih  ( F `  A ) ) )  =  ( ( F `  A
)  .ih  ( F `  A ) ) )
39 normsq 27991 . . . . . . . 8  |-  ( ( F `  A )  e.  ~H  ->  (
( normh `  ( F `  A ) ) ^
2 )  =  ( ( F `  A
)  .ih  ( F `  A ) ) )
407, 39syl 17 . . . . . . 7  |-  ( A  e.  ~H  ->  (
( normh `  ( F `  A ) ) ^
2 )  =  ( ( F `  A
)  .ih  ( F `  A ) ) )
4120recnd 10068 . . . . . . . 8  |-  ( A  e.  ~H  ->  ( normh `  ( F `  A ) )  e.  CC )
4241sqvald 13005 . . . . . . 7  |-  ( A  e.  ~H  ->  (
( normh `  ( F `  A ) ) ^
2 )  =  ( ( normh `  ( F `  A ) )  x.  ( normh `  ( F `  A ) ) ) )
4340, 42eqtr3d 2658 . . . . . 6  |-  ( A  e.  ~H  ->  (
( F `  A
)  .ih  ( F `  A ) )  =  ( ( normh `  ( F `  A )
)  x.  ( normh `  ( F `  A
) ) ) )
4433, 38, 433eqtrd 2660 . . . . 5  |-  ( A  e.  ~H  ->  ( abs `  ( ( T `
 ( F `  A ) )  .ih  A ) )  =  ( ( normh `  ( F `  A ) )  x.  ( normh `  ( F `  A ) ) ) )
4516recnd 10068 . . . . . 6  |-  ( A  e.  ~H  ->  ( normh `  A )  e.  CC )
4618recni 10052 . . . . . . 7  |-  ( normop `  T )  e.  CC
47 mul32 10203 . . . . . . 7  |-  ( ( ( normop `  T )  e.  CC  /\  ( normh `  ( F `  A
) )  e.  CC  /\  ( normh `  A )  e.  CC )  ->  (
( ( normop `  T
)  x.  ( normh `  ( F `  A
) ) )  x.  ( normh `  A )
)  =  ( ( ( normop `  T )  x.  ( normh `  A )
)  x.  ( normh `  ( F `  A
) ) ) )
4846, 47mp3an1 1411 . . . . . 6  |-  ( ( ( normh `  ( F `  A ) )  e.  CC  /\  ( normh `  A )  e.  CC )  ->  ( ( (
normop `  T )  x.  ( normh `  ( F `  A ) ) )  x.  ( normh `  A
) )  =  ( ( ( normop `  T
)  x.  ( normh `  A ) )  x.  ( normh `  ( F `  A ) ) ) )
4941, 45, 48syl2anc 693 . . . . 5  |-  ( A  e.  ~H  ->  (
( ( normop `  T
)  x.  ( normh `  ( F `  A
) ) )  x.  ( normh `  A )
)  =  ( ( ( normop `  T )  x.  ( normh `  A )
)  x.  ( normh `  ( F `  A
) ) ) )
5030, 44, 493brtr3d 4684 . . . 4  |-  ( A  e.  ~H  ->  (
( normh `  ( F `  A ) )  x.  ( normh `  ( F `  A ) ) )  <_  ( ( (
normop `  T )  x.  ( normh `  A )
)  x.  ( normh `  ( F `  A
) ) ) )
5150adantr 481 . . 3  |-  ( ( A  e.  ~H  /\  ( normh `  ( F `  A ) )  =/=  0 )  ->  (
( normh `  ( F `  A ) )  x.  ( normh `  ( F `  A ) ) )  <_  ( ( (
normop `  T )  x.  ( normh `  A )
)  x.  ( normh `  ( F `  A
) ) ) )
5220adantr 481 . . . 4  |-  ( ( A  e.  ~H  /\  ( normh `  ( F `  A ) )  =/=  0 )  ->  ( normh `  ( F `  A ) )  e.  RR )
53 remulcl 10021 . . . . . 6  |-  ( ( ( normop `  T )  e.  RR  /\  ( normh `  A )  e.  RR )  ->  ( ( normop `  T )  x.  ( normh `  A ) )  e.  RR )
5418, 16, 53sylancr 695 . . . . 5  |-  ( A  e.  ~H  ->  (
( normop `  T )  x.  ( normh `  A )
)  e.  RR )
5554adantr 481 . . . 4  |-  ( ( A  e.  ~H  /\  ( normh `  ( F `  A ) )  =/=  0 )  ->  (
( normop `  T )  x.  ( normh `  A )
)  e.  RR )
56 normge0 27983 . . . . . . 7  |-  ( ( F `  A )  e.  ~H  ->  0  <_  ( normh `  ( F `  A ) ) )
57 0re 10040 . . . . . . . 8  |-  0  e.  RR
58 leltne 10127 . . . . . . . 8  |-  ( ( 0  e.  RR  /\  ( normh `  ( F `  A ) )  e.  RR  /\  0  <_ 
( normh `  ( F `  A ) ) )  ->  ( 0  < 
( normh `  ( F `  A ) )  <->  ( normh `  ( F `  A
) )  =/=  0
) )
5957, 58mp3an1 1411 . . . . . . 7  |-  ( ( ( normh `  ( F `  A ) )  e.  RR  /\  0  <_ 
( normh `  ( F `  A ) ) )  ->  ( 0  < 
( normh `  ( F `  A ) )  <->  ( normh `  ( F `  A
) )  =/=  0
) )
6019, 56, 59syl2anc 693 . . . . . 6  |-  ( ( F `  A )  e.  ~H  ->  (
0  <  ( normh `  ( F `  A
) )  <->  ( normh `  ( F `  A
) )  =/=  0
) )
6160biimpar 502 . . . . 5  |-  ( ( ( F `  A
)  e.  ~H  /\  ( normh `  ( F `  A ) )  =/=  0 )  ->  0  <  ( normh `  ( F `  A ) ) )
627, 61sylan 488 . . . 4  |-  ( ( A  e.  ~H  /\  ( normh `  ( F `  A ) )  =/=  0 )  ->  0  <  ( normh `  ( F `  A ) ) )
63 lemul1 10875 . . . 4  |-  ( ( ( normh `  ( F `  A ) )  e.  RR  /\  ( (
normop `  T )  x.  ( normh `  A )
)  e.  RR  /\  ( ( normh `  ( F `  A )
)  e.  RR  /\  0  <  ( normh `  ( F `  A )
) ) )  -> 
( ( normh `  ( F `  A )
)  <_  ( ( normop `  T )  x.  ( normh `  A ) )  <-> 
( ( normh `  ( F `  A )
)  x.  ( normh `  ( F `  A
) ) )  <_ 
( ( ( normop `  T )  x.  ( normh `  A ) )  x.  ( normh `  ( F `  A )
) ) ) )
6452, 55, 52, 62, 63syl112anc 1330 . . 3  |-  ( ( A  e.  ~H  /\  ( normh `  ( F `  A ) )  =/=  0 )  ->  (
( normh `  ( F `  A ) )  <_ 
( ( normop `  T
)  x.  ( normh `  A ) )  <->  ( ( normh `  ( F `  A ) )  x.  ( normh `  ( F `  A ) ) )  <_  ( ( (
normop `  T )  x.  ( normh `  A )
)  x.  ( normh `  ( F `  A
) ) ) ) )
6551, 64mpbird 247 . 2  |-  ( ( A  e.  ~H  /\  ( normh `  ( F `  A ) )  =/=  0 )  ->  ( normh `  ( F `  A ) )  <_ 
( ( normop `  T
)  x.  ( normh `  A ) ) )
66 nmopge0 28770 . . . . 5  |-  ( T : ~H --> ~H  ->  0  <_  ( normop `  T
) )
678, 66ax-mp 5 . . . 4  |-  0  <_  ( normop `  T )
68 mulge0 10546 . . . 4  |-  ( ( ( ( normop `  T
)  e.  RR  /\  0  <_  ( normop `  T
) )  /\  (
( normh `  A )  e.  RR  /\  0  <_ 
( normh `  A )
) )  ->  0  <_  ( ( normop `  T
)  x.  ( normh `  A ) ) )
6918, 67, 68mpanl12 718 . . 3  |-  ( ( ( normh `  A )  e.  RR  /\  0  <_ 
( normh `  A )
)  ->  0  <_  ( ( normop `  T )  x.  ( normh `  A )
) )
7016, 26, 69syl2anc 693 . 2  |-  ( A  e.  ~H  ->  0  <_  ( ( normop `  T
)  x.  ( normh `  A ) ) )
711, 65, 70pm2.61ne 2879 1  |-  ( A  e.  ~H  ->  ( normh `  ( F `  A ) )  <_ 
( ( normop `  T
)  x.  ( normh `  A ) ) )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    <-> wb 196    /\ wa 384    = wceq 1483    e. wcel 1990    =/= wne 2794   A.wral 2912   class class class wbr 4653    |-> cmpt 4729   -->wf 5884   ` cfv 5888   iota_crio 6610  (class class class)co 6650   CCcc 9934   RRcr 9935   0cc0 9936    x. cmul 9941    < clt 10074    <_ cle 10075   2c2 11070   ^cexp 12860   abscabs 13974   ~Hchil 27776    .ih csp 27779   normhcno 27780   normopcnop 27802   ContOpccop 27803   LinOpclo 27804
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1722  ax-4 1737  ax-5 1839  ax-6 1888  ax-7 1935  ax-8 1992  ax-9 1999  ax-10 2019  ax-11 2034  ax-12 2047  ax-13 2246  ax-ext 2602  ax-rep 4771  ax-sep 4781  ax-nul 4789  ax-pow 4843  ax-pr 4906  ax-un 6949  ax-inf2 8538  ax-cc 9257  ax-cnex 9992  ax-resscn 9993  ax-1cn 9994  ax-icn 9995  ax-addcl 9996  ax-addrcl 9997  ax-mulcl 9998  ax-mulrcl 9999  ax-mulcom 10000  ax-addass 10001  ax-mulass 10002  ax-distr 10003  ax-i2m1 10004  ax-1ne0 10005  ax-1rid 10006  ax-rnegex 10007  ax-rrecex 10008  ax-cnre 10009  ax-pre-lttri 10010  ax-pre-lttrn 10011  ax-pre-ltadd 10012  ax-pre-mulgt0 10013  ax-pre-sup 10014  ax-addf 10015  ax-mulf 10016  ax-hilex 27856  ax-hfvadd 27857  ax-hvcom 27858  ax-hvass 27859  ax-hv0cl 27860  ax-hvaddid 27861  ax-hfvmul 27862  ax-hvmulid 27863  ax-hvmulass 27864  ax-hvdistr1 27865  ax-hvdistr2 27866  ax-hvmul0 27867  ax-hfi 27936  ax-his1 27939  ax-his2 27940  ax-his3 27941  ax-his4 27942  ax-hcompl 28059
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3or 1038  df-3an 1039  df-tru 1486  df-fal 1489  df-ex 1705  df-nf 1710  df-sb 1881  df-eu 2474  df-mo 2475  df-clab 2609  df-cleq 2615  df-clel 2618  df-nfc 2753  df-ne 2795  df-nel 2898  df-ral 2917  df-rex 2918  df-reu 2919  df-rmo 2920  df-rab 2921  df-v 3202  df-sbc 3436  df-csb 3534  df-dif 3577  df-un 3579  df-in 3581  df-ss 3588  df-pss 3590  df-nul 3916  df-if 4087  df-pw 4160  df-sn 4178  df-pr 4180  df-tp 4182  df-op 4184  df-uni 4437  df-int 4476  df-iun 4522  df-iin 4523  df-br 4654  df-opab 4713  df-mpt 4730  df-tr 4753  df-id 5024  df-eprel 5029  df-po 5035  df-so 5036  df-fr 5073  df-se 5074  df-we 5075  df-xp 5120  df-rel 5121  df-cnv 5122  df-co 5123  df-dm 5124  df-rn 5125  df-res 5126  df-ima 5127  df-pred 5680  df-ord 5726  df-on 5727  df-lim 5728  df-suc 5729  df-iota 5851  df-fun 5890  df-fn 5891  df-f 5892  df-f1 5893  df-fo 5894  df-f1o 5895  df-fv 5896  df-isom 5897  df-riota 6611  df-ov 6653  df-oprab 6654  df-mpt2 6655  df-of 6897  df-om 7066  df-1st 7168  df-2nd 7169  df-supp 7296  df-wrecs 7407  df-recs 7468  df-rdg 7506  df-1o 7560  df-2o 7561  df-oadd 7564  df-omul 7565  df-er 7742  df-map 7859  df-pm 7860  df-ixp 7909  df-en 7956  df-dom 7957  df-sdom 7958  df-fin 7959  df-fsupp 8276  df-fi 8317  df-sup 8348  df-inf 8349  df-oi 8415  df-card 8765  df-acn 8768  df-cda 8990  df-pnf 10076  df-mnf 10077  df-xr 10078  df-ltxr 10079  df-le 10080  df-sub 10268  df-neg 10269  df-div 10685  df-nn 11021  df-2 11079  df-3 11080  df-4 11081  df-5 11082  df-6 11083  df-7 11084  df-8 11085  df-9 11086  df-n0 11293  df-z 11378  df-dec 11494  df-uz 11688  df-q 11789  df-rp 11833  df-xneg 11946  df-xadd 11947  df-xmul 11948  df-ioo 12179  df-ico 12181  df-icc 12182  df-fz 12327  df-fzo 12466  df-fl 12593  df-seq 12802  df-exp 12861  df-hash 13118  df-cj 13839  df-re 13840  df-im 13841  df-sqrt 13975  df-abs 13976  df-clim 14219  df-rlim 14220  df-sum 14417  df-struct 15859  df-ndx 15860  df-slot 15861  df-base 15863  df-sets 15864  df-ress 15865  df-plusg 15954  df-mulr 15955  df-starv 15956  df-sca 15957  df-vsca 15958  df-ip 15959  df-tset 15960  df-ple 15961  df-ds 15964  df-unif 15965  df-hom 15966  df-cco 15967  df-rest 16083  df-topn 16084  df-0g 16102  df-gsum 16103  df-topgen 16104  df-pt 16105  df-prds 16108  df-xrs 16162  df-qtop 16167  df-imas 16168  df-xps 16170  df-mre 16246  df-mrc 16247  df-acs 16249  df-mgm 17242  df-sgrp 17284  df-mnd 17295  df-submnd 17336  df-mulg 17541  df-cntz 17750  df-cmn 18195  df-psmet 19738  df-xmet 19739  df-met 19740  df-bl 19741  df-mopn 19742  df-fbas 19743  df-fg 19744  df-cnfld 19747  df-top 20699  df-topon 20716  df-topsp 20737  df-bases 20750  df-cld 20823  df-ntr 20824  df-cls 20825  df-nei 20902  df-cn 21031  df-cnp 21032  df-lm 21033  df-t1 21118  df-haus 21119  df-tx 21365  df-hmeo 21558  df-fil 21650  df-fm 21742  df-flim 21743  df-flf 21744  df-xms 22125  df-ms 22126  df-tms 22127  df-cfil 23053  df-cau 23054  df-cmet 23055  df-grpo 27347  df-gid 27348  df-ginv 27349  df-gdiv 27350  df-ablo 27399  df-vc 27414  df-nv 27447  df-va 27450  df-ba 27451  df-sm 27452  df-0v 27453  df-vs 27454  df-nmcv 27455  df-ims 27456  df-dip 27556  df-ssp 27577  df-ph 27668  df-cbn 27719  df-hnorm 27825  df-hba 27826  df-hvsub 27828  df-hlim 27829  df-hcau 27830  df-sh 28064  df-ch 28078  df-oc 28109  df-ch0 28110  df-nmop 28698  df-cnop 28699  df-lnop 28700  df-nmfn 28704  df-nlfn 28705  df-cnfn 28706  df-lnfn 28707
This theorem is referenced by:  cnlnadjlem8  28933  nmopadjlei  28947
  Copyright terms: Public domain W3C validator