Users' Mathboxes Mathbox for Norm Megill < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  hdmap14lem12 Structured version   Visualization version   GIF version

Theorem hdmap14lem12 40688
Description: Lemma for proof of part 14 in [Baer] p. 50. (Contributed by NM, 6-Jun-2015.)
Hypotheses
Ref Expression
hdmap14lem12.h 𝐻 = (LHypβ€˜πΎ)
hdmap14lem12.u π‘ˆ = ((DVecHβ€˜πΎ)β€˜π‘Š)
hdmap14lem12.v 𝑉 = (Baseβ€˜π‘ˆ)
hdmap14lem12.t Β· = ( ·𝑠 β€˜π‘ˆ)
hdmap14lem12.r 𝑅 = (Scalarβ€˜π‘ˆ)
hdmap14lem12.b 𝐡 = (Baseβ€˜π‘…)
hdmap14lem12.c 𝐢 = ((LCDualβ€˜πΎ)β€˜π‘Š)
hdmap14lem12.e βˆ™ = ( ·𝑠 β€˜πΆ)
hdmap14lem12.s 𝑆 = ((HDMapβ€˜πΎ)β€˜π‘Š)
hdmap14lem12.k (πœ‘ β†’ (𝐾 ∈ HL ∧ π‘Š ∈ 𝐻))
hdmap14lem12.f (πœ‘ β†’ 𝐹 ∈ 𝐡)
hdmap14lem12.p 𝑃 = (Scalarβ€˜πΆ)
hdmap14lem12.a 𝐴 = (Baseβ€˜π‘ƒ)
hdmap14lem12.o 0 = (0gβ€˜π‘ˆ)
hdmap14lem12.x (πœ‘ β†’ 𝑋 ∈ (𝑉 βˆ– { 0 }))
hdmap14lem12.g (πœ‘ β†’ 𝐺 ∈ 𝐴)
Assertion
Ref Expression
hdmap14lem12 (πœ‘ β†’ ((π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ↔ βˆ€π‘¦ ∈ (𝑉 βˆ– { 0 })(π‘†β€˜(𝐹 Β· 𝑦)) = (𝐺 βˆ™ (π‘†β€˜π‘¦))))
Distinct variable groups:   𝑦,𝐴   𝑦, βˆ™   𝑦,𝐹   𝑦,𝐺   𝑦, 0   𝑦,𝑆   𝑦, Β·   𝑦,π‘ˆ   𝑦,𝑉   𝑦,𝑋   πœ‘,𝑦
Allowed substitution hints:   𝐡(𝑦)   𝐢(𝑦)   𝑃(𝑦)   𝑅(𝑦)   𝐻(𝑦)   𝐾(𝑦)   π‘Š(𝑦)

Proof of Theorem hdmap14lem12
Dummy variable 𝑔 is distinct from all other variables.
StepHypRef Expression
1 hdmap14lem12.h . . . . . 6 𝐻 = (LHypβ€˜πΎ)
2 hdmap14lem12.u . . . . . 6 π‘ˆ = ((DVecHβ€˜πΎ)β€˜π‘Š)
3 hdmap14lem12.v . . . . . 6 𝑉 = (Baseβ€˜π‘ˆ)
4 hdmap14lem12.t . . . . . 6 Β· = ( ·𝑠 β€˜π‘ˆ)
5 hdmap14lem12.r . . . . . 6 𝑅 = (Scalarβ€˜π‘ˆ)
6 hdmap14lem12.b . . . . . 6 𝐡 = (Baseβ€˜π‘…)
7 hdmap14lem12.c . . . . . 6 𝐢 = ((LCDualβ€˜πΎ)β€˜π‘Š)
8 hdmap14lem12.e . . . . . 6 βˆ™ = ( ·𝑠 β€˜πΆ)
9 eqid 2733 . . . . . 6 (LSpanβ€˜πΆ) = (LSpanβ€˜πΆ)
10 hdmap14lem12.p . . . . . 6 𝑃 = (Scalarβ€˜πΆ)
11 hdmap14lem12.a . . . . . 6 𝐴 = (Baseβ€˜π‘ƒ)
12 hdmap14lem12.s . . . . . 6 𝑆 = ((HDMapβ€˜πΎ)β€˜π‘Š)
13 hdmap14lem12.k . . . . . . 7 (πœ‘ β†’ (𝐾 ∈ HL ∧ π‘Š ∈ 𝐻))
14133ad2ant1 1134 . . . . . 6 ((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) β†’ (𝐾 ∈ HL ∧ π‘Š ∈ 𝐻))
15 simp3 1139 . . . . . . 7 ((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) β†’ 𝑦 ∈ (𝑉 βˆ– { 0 }))
1615eldifad 3959 . . . . . 6 ((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) β†’ 𝑦 ∈ 𝑉)
17 hdmap14lem12.f . . . . . . 7 (πœ‘ β†’ 𝐹 ∈ 𝐡)
18173ad2ant1 1134 . . . . . 6 ((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) β†’ 𝐹 ∈ 𝐡)
191, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18hdmap14lem2a 40676 . . . . 5 ((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) β†’ βˆƒπ‘” ∈ 𝐴 (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦)))
20 simp3 1139 . . . . . . 7 (((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) ∧ 𝑔 ∈ 𝐴 ∧ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦))) β†’ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦)))
21 eqid 2733 . . . . . . . . 9 (+gβ€˜π‘ˆ) = (+gβ€˜π‘ˆ)
22 hdmap14lem12.o . . . . . . . . 9 0 = (0gβ€˜π‘ˆ)
23 eqid 2733 . . . . . . . . 9 (LSpanβ€˜π‘ˆ) = (LSpanβ€˜π‘ˆ)
24 eqid 2733 . . . . . . . . 9 (+gβ€˜πΆ) = (+gβ€˜πΆ)
25 simp11 1204 . . . . . . . . . 10 (((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) ∧ 𝑔 ∈ 𝐴 ∧ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦))) β†’ πœ‘)
2625, 13syl 17 . . . . . . . . 9 (((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) ∧ 𝑔 ∈ 𝐴 ∧ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦))) β†’ (𝐾 ∈ HL ∧ π‘Š ∈ 𝐻))
27 hdmap14lem12.x . . . . . . . . . 10 (πœ‘ β†’ 𝑋 ∈ (𝑉 βˆ– { 0 }))
2825, 27syl 17 . . . . . . . . 9 (((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) ∧ 𝑔 ∈ 𝐴 ∧ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦))) β†’ 𝑋 ∈ (𝑉 βˆ– { 0 }))
29 simp13 1206 . . . . . . . . 9 (((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) ∧ 𝑔 ∈ 𝐴 ∧ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦))) β†’ 𝑦 ∈ (𝑉 βˆ– { 0 }))
3025, 17syl 17 . . . . . . . . 9 (((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) ∧ 𝑔 ∈ 𝐴 ∧ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦))) β†’ 𝐹 ∈ 𝐡)
31 hdmap14lem12.g . . . . . . . . . 10 (πœ‘ β†’ 𝐺 ∈ 𝐴)
3225, 31syl 17 . . . . . . . . 9 (((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) ∧ 𝑔 ∈ 𝐴 ∧ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦))) β†’ 𝐺 ∈ 𝐴)
33 simp2 1138 . . . . . . . . 9 (((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) ∧ 𝑔 ∈ 𝐴 ∧ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦))) β†’ 𝑔 ∈ 𝐴)
34 simp12 1205 . . . . . . . . 9 (((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) ∧ 𝑔 ∈ 𝐴 ∧ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦))) β†’ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)))
351, 2, 3, 21, 4, 22, 23, 5, 6, 7, 24, 8, 10, 11, 12, 26, 28, 29, 30, 32, 33, 34, 20hdmap14lem11 40687 . . . . . . . 8 (((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) ∧ 𝑔 ∈ 𝐴 ∧ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦))) β†’ 𝐺 = 𝑔)
3635oveq1d 7419 . . . . . . 7 (((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) ∧ 𝑔 ∈ 𝐴 ∧ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦))) β†’ (𝐺 βˆ™ (π‘†β€˜π‘¦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦)))
3720, 36eqtr4d 2776 . . . . . 6 (((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) ∧ 𝑔 ∈ 𝐴 ∧ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦))) β†’ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝐺 βˆ™ (π‘†β€˜π‘¦)))
3837rexlimdv3a 3160 . . . . 5 ((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) β†’ (βˆƒπ‘” ∈ 𝐴 (π‘†β€˜(𝐹 Β· 𝑦)) = (𝑔 βˆ™ (π‘†β€˜π‘¦)) β†’ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝐺 βˆ™ (π‘†β€˜π‘¦))))
3919, 38mpd 15 . . . 4 ((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ∧ 𝑦 ∈ (𝑉 βˆ– { 0 })) β†’ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝐺 βˆ™ (π‘†β€˜π‘¦)))
40393expia 1122 . . 3 ((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹))) β†’ (𝑦 ∈ (𝑉 βˆ– { 0 }) β†’ (π‘†β€˜(𝐹 Β· 𝑦)) = (𝐺 βˆ™ (π‘†β€˜π‘¦))))
4140ralrimiv 3146 . 2 ((πœ‘ ∧ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹))) β†’ βˆ€π‘¦ ∈ (𝑉 βˆ– { 0 })(π‘†β€˜(𝐹 Β· 𝑦)) = (𝐺 βˆ™ (π‘†β€˜π‘¦)))
42 oveq2 7412 . . . . . . 7 (𝑦 = 𝑋 β†’ (𝐹 Β· 𝑦) = (𝐹 Β· 𝑋))
4342fveq2d 6892 . . . . . 6 (𝑦 = 𝑋 β†’ (π‘†β€˜(𝐹 Β· 𝑦)) = (π‘†β€˜(𝐹 Β· 𝑋)))
44 fveq2 6888 . . . . . . 7 (𝑦 = 𝑋 β†’ (π‘†β€˜π‘¦) = (π‘†β€˜π‘‹))
4544oveq2d 7420 . . . . . 6 (𝑦 = 𝑋 β†’ (𝐺 βˆ™ (π‘†β€˜π‘¦)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)))
4643, 45eqeq12d 2749 . . . . 5 (𝑦 = 𝑋 β†’ ((π‘†β€˜(𝐹 Β· 𝑦)) = (𝐺 βˆ™ (π‘†β€˜π‘¦)) ↔ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹))))
4746rspcv 3608 . . . 4 (𝑋 ∈ (𝑉 βˆ– { 0 }) β†’ (βˆ€π‘¦ ∈ (𝑉 βˆ– { 0 })(π‘†β€˜(𝐹 Β· 𝑦)) = (𝐺 βˆ™ (π‘†β€˜π‘¦)) β†’ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹))))
4827, 47syl 17 . . 3 (πœ‘ β†’ (βˆ€π‘¦ ∈ (𝑉 βˆ– { 0 })(π‘†β€˜(𝐹 Β· 𝑦)) = (𝐺 βˆ™ (π‘†β€˜π‘¦)) β†’ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹))))
4948imp 408 . 2 ((πœ‘ ∧ βˆ€π‘¦ ∈ (𝑉 βˆ– { 0 })(π‘†β€˜(𝐹 Β· 𝑦)) = (𝐺 βˆ™ (π‘†β€˜π‘¦))) β†’ (π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)))
5041, 49impbida 800 1 (πœ‘ β†’ ((π‘†β€˜(𝐹 Β· 𝑋)) = (𝐺 βˆ™ (π‘†β€˜π‘‹)) ↔ βˆ€π‘¦ ∈ (𝑉 βˆ– { 0 })(π‘†β€˜(𝐹 Β· 𝑦)) = (𝐺 βˆ™ (π‘†β€˜π‘¦))))
Colors of variables: wff setvar class
Syntax hints:   β†’ wi 4   ↔ wb 205   ∧ wa 397   ∧ w3a 1088   = wceq 1542   ∈ wcel 2107  βˆ€wral 3062  βˆƒwrex 3071   βˆ– cdif 3944  {csn 4627  β€˜cfv 6540  (class class class)co 7404  Basecbs 17140  +gcplusg 17193  Scalarcsca 17196   ·𝑠 cvsca 17197  0gc0g 17381  LSpanclspn 20570  HLchlt 38158  LHypclh 38793  DVecHcdvh 39887  LCDualclcd 40395  HDMapchdma 40601
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1798  ax-4 1812  ax-5 1914  ax-6 1972  ax-7 2012  ax-8 2109  ax-9 2117  ax-10 2138  ax-11 2155  ax-12 2172  ax-ext 2704  ax-rep 5284  ax-sep 5298  ax-nul 5305  ax-pow 5362  ax-pr 5426  ax-un 7720  ax-cnex 11162  ax-resscn 11163  ax-1cn 11164  ax-icn 11165  ax-addcl 11166  ax-addrcl 11167  ax-mulcl 11168  ax-mulrcl 11169  ax-mulcom 11170  ax-addass 11171  ax-mulass 11172  ax-distr 11173  ax-i2m1 11174  ax-1ne0 11175  ax-1rid 11176  ax-rnegex 11177  ax-rrecex 11178  ax-cnre 11179  ax-pre-lttri 11180  ax-pre-lttrn 11181  ax-pre-ltadd 11182  ax-pre-mulgt0 11183  ax-riotaBAD 37761
This theorem depends on definitions:  df-bi 206  df-an 398  df-or 847  df-3or 1089  df-3an 1090  df-tru 1545  df-fal 1555  df-ex 1783  df-nf 1787  df-sb 2069  df-mo 2535  df-eu 2564  df-clab 2711  df-cleq 2725  df-clel 2811  df-nfc 2886  df-ne 2942  df-nel 3048  df-ral 3063  df-rex 3072  df-rmo 3377  df-reu 3378  df-rab 3434  df-v 3477  df-sbc 3777  df-csb 3893  df-dif 3950  df-un 3952  df-in 3954  df-ss 3964  df-pss 3966  df-nul 4322  df-if 4528  df-pw 4603  df-sn 4628  df-pr 4630  df-tp 4632  df-op 4634  df-ot 4636  df-uni 4908  df-int 4950  df-iun 4998  df-iin 4999  df-br 5148  df-opab 5210  df-mpt 5231  df-tr 5265  df-id 5573  df-eprel 5579  df-po 5587  df-so 5588  df-fr 5630  df-we 5632  df-xp 5681  df-rel 5682  df-cnv 5683  df-co 5684  df-dm 5685  df-rn 5686  df-res 5687  df-ima 5688  df-pred 6297  df-ord 6364  df-on 6365  df-lim 6366  df-suc 6367  df-iota 6492  df-fun 6542  df-fn 6543  df-f 6544  df-f1 6545  df-fo 6546  df-f1o 6547  df-fv 6548  df-riota 7360  df-ov 7407  df-oprab 7408  df-mpo 7409  df-of 7665  df-om 7851  df-1st 7970  df-2nd 7971  df-tpos 8206  df-undef 8253  df-frecs 8261  df-wrecs 8292  df-recs 8366  df-rdg 8405  df-1o 8461  df-er 8699  df-map 8818  df-en 8936  df-dom 8937  df-sdom 8938  df-fin 8939  df-pnf 11246  df-mnf 11247  df-xr 11248  df-ltxr 11249  df-le 11250  df-sub 11442  df-neg 11443  df-nn 12209  df-2 12271  df-3 12272  df-4 12273  df-5 12274  df-6 12275  df-n0 12469  df-z 12555  df-uz 12819  df-fz 13481  df-struct 17076  df-sets 17093  df-slot 17111  df-ndx 17123  df-base 17141  df-ress 17170  df-plusg 17206  df-mulr 17207  df-sca 17209  df-vsca 17210  df-0g 17383  df-mre 17526  df-mrc 17527  df-acs 17529  df-proset 18244  df-poset 18262  df-plt 18279  df-lub 18295  df-glb 18296  df-join 18297  df-meet 18298  df-p0 18374  df-p1 18375  df-lat 18381  df-clat 18448  df-mgm 18557  df-sgrp 18606  df-mnd 18622  df-submnd 18668  df-grp 18818  df-minusg 18819  df-sbg 18820  df-subg 18997  df-cntz 19175  df-oppg 19203  df-lsm 19497  df-cmn 19643  df-abl 19644  df-mgp 19980  df-ur 19997  df-ring 20049  df-oppr 20139  df-dvdsr 20160  df-unit 20161  df-invr 20191  df-dvr 20204  df-drng 20306  df-lmod 20461  df-lss 20531  df-lsp 20571  df-lvec 20702  df-lsatoms 37784  df-lshyp 37785  df-lcv 37827  df-lfl 37866  df-lkr 37894  df-ldual 37932  df-oposet 37984  df-ol 37986  df-oml 37987  df-covers 38074  df-ats 38075  df-atl 38106  df-cvlat 38130  df-hlat 38159  df-llines 38307  df-lplanes 38308  df-lvols 38309  df-lines 38310  df-psubsp 38312  df-pmap 38313  df-padd 38605  df-lhyp 38797  df-laut 38798  df-ldil 38913  df-ltrn 38914  df-trl 38968  df-tgrp 39552  df-tendo 39564  df-edring 39566  df-dveca 39812  df-disoa 39838  df-dvech 39888  df-dib 39948  df-dic 39982  df-dih 40038  df-doch 40157  df-djh 40204  df-lcdual 40396  df-mapd 40434  df-hvmap 40566  df-hdmap1 40602  df-hdmap 40603
This theorem is referenced by:  hdmap14lem13  40689
  Copyright terms: Public domain W3C validator