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

Theorem hdmapinvlem4 36030
Description: Part 1.1 of Proposition 1 of [Baer] p. 110. We use 𝐶, 𝐷, 𝐼, and 𝐽 for Baer's u, v, s, and t. Our unit vector 𝐸 has the required properties for his w by hdmapevec2 35945. Our ((𝑆𝐷)‘𝐶) means his f(u,v) (note argument reversal). (Contributed by NM, 12-Jun-2015.)
Hypotheses
Ref Expression
hdmapinvlem3.h 𝐻 = (LHyp‘𝐾)
hdmapinvlem3.e 𝐸 = ⟨( I ↾ (Base‘𝐾)), ( I ↾ ((LTrn‘𝐾)‘𝑊))⟩
hdmapinvlem3.o 𝑂 = ((ocH‘𝐾)‘𝑊)
hdmapinvlem3.u 𝑈 = ((DVecH‘𝐾)‘𝑊)
hdmapinvlem3.v 𝑉 = (Base‘𝑈)
hdmapinvlem3.p + = (+g𝑈)
hdmapinvlem3.m = (-g𝑈)
hdmapinvlem3.q · = ( ·𝑠𝑈)
hdmapinvlem3.r 𝑅 = (Scalar‘𝑈)
hdmapinvlem3.b 𝐵 = (Base‘𝑅)
hdmapinvlem3.t × = (.r𝑅)
hdmapinvlem3.z 0 = (0g𝑅)
hdmapinvlem3.s 𝑆 = ((HDMap‘𝐾)‘𝑊)
hdmapinvlem3.g 𝐺 = ((HGMap‘𝐾)‘𝑊)
hdmapinvlem3.k (𝜑 → (𝐾 ∈ HL ∧ 𝑊𝐻))
hdmapinvlem3.c (𝜑𝐶 ∈ (𝑂‘{𝐸}))
hdmapinvlem3.d (𝜑𝐷 ∈ (𝑂‘{𝐸}))
hdmapinvlem3.i (𝜑𝐼𝐵)
hdmapinvlem3.j (𝜑𝐽𝐵)
hdmapinvlem3.ij (𝜑 → (𝐼 × (𝐺𝐽)) = ((𝑆𝐷)‘𝐶))
Assertion
Ref Expression
hdmapinvlem4 (𝜑 → (𝐽 × (𝐺𝐼)) = ((𝑆𝐶)‘𝐷))

Proof of Theorem hdmapinvlem4
StepHypRef Expression
1 hdmapinvlem3.h . . . 4 𝐻 = (LHyp‘𝐾)
2 hdmapinvlem3.u . . . 4 𝑈 = ((DVecH‘𝐾)‘𝑊)
3 hdmapinvlem3.v . . . 4 𝑉 = (Base‘𝑈)
4 hdmapinvlem3.m . . . 4 = (-g𝑈)
5 hdmapinvlem3.r . . . 4 𝑅 = (Scalar‘𝑈)
6 eqid 2605 . . . 4 (-g𝑅) = (-g𝑅)
7 hdmapinvlem3.s . . . 4 𝑆 = ((HDMap‘𝐾)‘𝑊)
8 hdmapinvlem3.k . . . 4 (𝜑 → (𝐾 ∈ HL ∧ 𝑊𝐻))
91, 2, 8dvhlmod 35216 . . . . 5 (𝜑𝑈 ∈ LMod)
10 hdmapinvlem3.j . . . . 5 (𝜑𝐽𝐵)
11 eqid 2605 . . . . . . 7 (Base‘𝐾) = (Base‘𝐾)
12 eqid 2605 . . . . . . 7 ((LTrn‘𝐾)‘𝑊) = ((LTrn‘𝐾)‘𝑊)
13 eqid 2605 . . . . . . 7 (0g𝑈) = (0g𝑈)
14 hdmapinvlem3.e . . . . . . 7 𝐸 = ⟨( I ↾ (Base‘𝐾)), ( I ↾ ((LTrn‘𝐾)‘𝑊))⟩
151, 11, 12, 2, 3, 13, 14, 8dvheveccl 35218 . . . . . 6 (𝜑𝐸 ∈ (𝑉 ∖ {(0g𝑈)}))
1615eldifad 3547 . . . . 5 (𝜑𝐸𝑉)
17 hdmapinvlem3.q . . . . . 6 · = ( ·𝑠𝑈)
18 hdmapinvlem3.b . . . . . 6 𝐵 = (Base‘𝑅)
193, 5, 17, 18lmodvscl 18645 . . . . 5 ((𝑈 ∈ LMod ∧ 𝐽𝐵𝐸𝑉) → (𝐽 · 𝐸) ∈ 𝑉)
209, 10, 16, 19syl3anc 1317 . . . 4 (𝜑 → (𝐽 · 𝐸) ∈ 𝑉)
2116snssd 4276 . . . . . 6 (𝜑 → {𝐸} ⊆ 𝑉)
22 hdmapinvlem3.o . . . . . . 7 𝑂 = ((ocH‘𝐾)‘𝑊)
231, 2, 3, 22dochssv 35461 . . . . . 6 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ {𝐸} ⊆ 𝑉) → (𝑂‘{𝐸}) ⊆ 𝑉)
248, 21, 23syl2anc 690 . . . . 5 (𝜑 → (𝑂‘{𝐸}) ⊆ 𝑉)
25 hdmapinvlem3.d . . . . 5 (𝜑𝐷 ∈ (𝑂‘{𝐸}))
2624, 25sseldd 3564 . . . 4 (𝜑𝐷𝑉)
27 hdmapinvlem3.i . . . . . 6 (𝜑𝐼𝐵)
283, 5, 17, 18lmodvscl 18645 . . . . . 6 ((𝑈 ∈ LMod ∧ 𝐼𝐵𝐸𝑉) → (𝐼 · 𝐸) ∈ 𝑉)
299, 27, 16, 28syl3anc 1317 . . . . 5 (𝜑 → (𝐼 · 𝐸) ∈ 𝑉)
30 hdmapinvlem3.c . . . . . 6 (𝜑𝐶 ∈ (𝑂‘{𝐸}))
3124, 30sseldd 3564 . . . . 5 (𝜑𝐶𝑉)
32 hdmapinvlem3.p . . . . . 6 + = (+g𝑈)
333, 32lmodvacl 18642 . . . . 5 ((𝑈 ∈ LMod ∧ (𝐼 · 𝐸) ∈ 𝑉𝐶𝑉) → ((𝐼 · 𝐸) + 𝐶) ∈ 𝑉)
349, 29, 31, 33syl3anc 1317 . . . 4 (𝜑 → ((𝐼 · 𝐸) + 𝐶) ∈ 𝑉)
351, 2, 3, 4, 5, 6, 7, 8, 20, 26, 34hdmaplns1 36017 . . 3 (𝜑 → ((𝑆‘((𝐼 · 𝐸) + 𝐶))‘((𝐽 · 𝐸) 𝐷)) = (((𝑆‘((𝐼 · 𝐸) + 𝐶))‘(𝐽 · 𝐸))(-g𝑅)((𝑆‘((𝐼 · 𝐸) + 𝐶))‘𝐷)))
36 hdmapinvlem3.t . . . . 5 × = (.r𝑅)
37 hdmapinvlem3.z . . . . 5 0 = (0g𝑅)
38 hdmapinvlem3.g . . . . 5 𝐺 = ((HGMap‘𝐾)‘𝑊)
39 hdmapinvlem3.ij . . . . 5 (𝜑 → (𝐼 × (𝐺𝐽)) = ((𝑆𝐷)‘𝐶))
401, 14, 22, 2, 3, 32, 4, 17, 5, 18, 36, 37, 7, 38, 8, 30, 25, 27, 10, 39hdmapinvlem3 36029 . . . 4 (𝜑 → ((𝑆‘((𝐽 · 𝐸) 𝐷))‘((𝐼 · 𝐸) + 𝐶)) = 0 )
413, 4lmodvsubcl 18673 . . . . . 6 ((𝑈 ∈ LMod ∧ (𝐽 · 𝐸) ∈ 𝑉𝐷𝑉) → ((𝐽 · 𝐸) 𝐷) ∈ 𝑉)
429, 20, 26, 41syl3anc 1317 . . . . 5 (𝜑 → ((𝐽 · 𝐸) 𝐷) ∈ 𝑉)
431, 2, 3, 5, 37, 7, 8, 42, 34hdmapip0com 36026 . . . 4 (𝜑 → (((𝑆‘((𝐽 · 𝐸) 𝐷))‘((𝐼 · 𝐸) + 𝐶)) = 0 ↔ ((𝑆‘((𝐼 · 𝐸) + 𝐶))‘((𝐽 · 𝐸) 𝐷)) = 0 ))
4440, 43mpbid 220 . . 3 (𝜑 → ((𝑆‘((𝐼 · 𝐸) + 𝐶))‘((𝐽 · 𝐸) 𝐷)) = 0 )
451, 2, 3, 17, 5, 18, 36, 7, 8, 16, 34, 10hdmaplnm1 36018 . . . . 5 (𝜑 → ((𝑆‘((𝐼 · 𝐸) + 𝐶))‘(𝐽 · 𝐸)) = (𝐽 × ((𝑆‘((𝐼 · 𝐸) + 𝐶))‘𝐸)))
46 eqid 2605 . . . . . . . 8 (+g𝑅) = (+g𝑅)
471, 2, 3, 32, 5, 46, 7, 8, 16, 29, 31hdmaplna2 36019 . . . . . . 7 (𝜑 → ((𝑆‘((𝐼 · 𝐸) + 𝐶))‘𝐸) = (((𝑆‘(𝐼 · 𝐸))‘𝐸)(+g𝑅)((𝑆𝐶)‘𝐸)))
481, 14, 22, 2, 3, 5, 18, 36, 37, 7, 8, 30hdmapinvlem2 36028 . . . . . . . 8 (𝜑 → ((𝑆𝐶)‘𝐸) = 0 )
4948oveq2d 6539 . . . . . . 7 (𝜑 → (((𝑆‘(𝐼 · 𝐸))‘𝐸)(+g𝑅)((𝑆𝐶)‘𝐸)) = (((𝑆‘(𝐼 · 𝐸))‘𝐸)(+g𝑅) 0 ))
505lmodring 18636 . . . . . . . . . . 11 (𝑈 ∈ LMod → 𝑅 ∈ Ring)
519, 50syl 17 . . . . . . . . . 10 (𝜑𝑅 ∈ Ring)
52 ringgrp 18317 . . . . . . . . . 10 (𝑅 ∈ Ring → 𝑅 ∈ Grp)
5351, 52syl 17 . . . . . . . . 9 (𝜑𝑅 ∈ Grp)
541, 2, 3, 5, 18, 7, 8, 16, 29hdmapipcl 36014 . . . . . . . . 9 (𝜑 → ((𝑆‘(𝐼 · 𝐸))‘𝐸) ∈ 𝐵)
5518, 46, 37grprid 17218 . . . . . . . . 9 ((𝑅 ∈ Grp ∧ ((𝑆‘(𝐼 · 𝐸))‘𝐸) ∈ 𝐵) → (((𝑆‘(𝐼 · 𝐸))‘𝐸)(+g𝑅) 0 ) = ((𝑆‘(𝐼 · 𝐸))‘𝐸))
5653, 54, 55syl2anc 690 . . . . . . . 8 (𝜑 → (((𝑆‘(𝐼 · 𝐸))‘𝐸)(+g𝑅) 0 ) = ((𝑆‘(𝐼 · 𝐸))‘𝐸))
571, 2, 3, 17, 5, 18, 36, 7, 38, 8, 16, 16, 27hdmapglnm2 36020 . . . . . . . 8 (𝜑 → ((𝑆‘(𝐼 · 𝐸))‘𝐸) = (((𝑆𝐸)‘𝐸) × (𝐺𝐼)))
58 eqid 2605 . . . . . . . . . . 11 ((HVMap‘𝐾)‘𝑊) = ((HVMap‘𝐾)‘𝑊)
59 eqid 2605 . . . . . . . . . . 11 (1r𝑅) = (1r𝑅)
601, 14, 58, 7, 8, 2, 5, 59hdmapevec2 35945 . . . . . . . . . 10 (𝜑 → ((𝑆𝐸)‘𝐸) = (1r𝑅))
6160oveq1d 6538 . . . . . . . . 9 (𝜑 → (((𝑆𝐸)‘𝐸) × (𝐺𝐼)) = ((1r𝑅) × (𝐺𝐼)))
621, 2, 5, 18, 38, 8, 27hgmapcl 35998 . . . . . . . . . 10 (𝜑 → (𝐺𝐼) ∈ 𝐵)
6318, 36, 59ringlidm 18336 . . . . . . . . . 10 ((𝑅 ∈ Ring ∧ (𝐺𝐼) ∈ 𝐵) → ((1r𝑅) × (𝐺𝐼)) = (𝐺𝐼))
6451, 62, 63syl2anc 690 . . . . . . . . 9 (𝜑 → ((1r𝑅) × (𝐺𝐼)) = (𝐺𝐼))
6561, 64eqtrd 2639 . . . . . . . 8 (𝜑 → (((𝑆𝐸)‘𝐸) × (𝐺𝐼)) = (𝐺𝐼))
6656, 57, 653eqtrd 2643 . . . . . . 7 (𝜑 → (((𝑆‘(𝐼 · 𝐸))‘𝐸)(+g𝑅) 0 ) = (𝐺𝐼))
6747, 49, 663eqtrd 2643 . . . . . 6 (𝜑 → ((𝑆‘((𝐼 · 𝐸) + 𝐶))‘𝐸) = (𝐺𝐼))
6867oveq2d 6539 . . . . 5 (𝜑 → (𝐽 × ((𝑆‘((𝐼 · 𝐸) + 𝐶))‘𝐸)) = (𝐽 × (𝐺𝐼)))
6945, 68eqtrd 2639 . . . 4 (𝜑 → ((𝑆‘((𝐼 · 𝐸) + 𝐶))‘(𝐽 · 𝐸)) = (𝐽 × (𝐺𝐼)))
701, 2, 3, 32, 5, 46, 7, 8, 26, 29, 31hdmaplna2 36019 . . . . 5 (𝜑 → ((𝑆‘((𝐼 · 𝐸) + 𝐶))‘𝐷) = (((𝑆‘(𝐼 · 𝐸))‘𝐷)(+g𝑅)((𝑆𝐶)‘𝐷)))
711, 2, 3, 17, 5, 18, 36, 7, 38, 8, 26, 16, 27hdmapglnm2 36020 . . . . . . 7 (𝜑 → ((𝑆‘(𝐼 · 𝐸))‘𝐷) = (((𝑆𝐸)‘𝐷) × (𝐺𝐼)))
721, 14, 22, 2, 3, 5, 18, 36, 37, 7, 8, 25hdmapinvlem1 36027 . . . . . . . 8 (𝜑 → ((𝑆𝐸)‘𝐷) = 0 )
7372oveq1d 6538 . . . . . . 7 (𝜑 → (((𝑆𝐸)‘𝐷) × (𝐺𝐼)) = ( 0 × (𝐺𝐼)))
7418, 36, 37ringlz 18352 . . . . . . . 8 ((𝑅 ∈ Ring ∧ (𝐺𝐼) ∈ 𝐵) → ( 0 × (𝐺𝐼)) = 0 )
7551, 62, 74syl2anc 690 . . . . . . 7 (𝜑 → ( 0 × (𝐺𝐼)) = 0 )
7671, 73, 753eqtrd 2643 . . . . . 6 (𝜑 → ((𝑆‘(𝐼 · 𝐸))‘𝐷) = 0 )
7776oveq1d 6538 . . . . 5 (𝜑 → (((𝑆‘(𝐼 · 𝐸))‘𝐷)(+g𝑅)((𝑆𝐶)‘𝐷)) = ( 0 (+g𝑅)((𝑆𝐶)‘𝐷)))
781, 2, 3, 5, 18, 7, 8, 26, 31hdmapipcl 36014 . . . . . 6 (𝜑 → ((𝑆𝐶)‘𝐷) ∈ 𝐵)
7918, 46, 37grplid 17217 . . . . . 6 ((𝑅 ∈ Grp ∧ ((𝑆𝐶)‘𝐷) ∈ 𝐵) → ( 0 (+g𝑅)((𝑆𝐶)‘𝐷)) = ((𝑆𝐶)‘𝐷))
8053, 78, 79syl2anc 690 . . . . 5 (𝜑 → ( 0 (+g𝑅)((𝑆𝐶)‘𝐷)) = ((𝑆𝐶)‘𝐷))
8170, 77, 803eqtrd 2643 . . . 4 (𝜑 → ((𝑆‘((𝐼 · 𝐸) + 𝐶))‘𝐷) = ((𝑆𝐶)‘𝐷))
8269, 81oveq12d 6541 . . 3 (𝜑 → (((𝑆‘((𝐼 · 𝐸) + 𝐶))‘(𝐽 · 𝐸))(-g𝑅)((𝑆‘((𝐼 · 𝐸) + 𝐶))‘𝐷)) = ((𝐽 × (𝐺𝐼))(-g𝑅)((𝑆𝐶)‘𝐷)))
8335, 44, 823eqtr3rd 2648 . 2 (𝜑 → ((𝐽 × (𝐺𝐼))(-g𝑅)((𝑆𝐶)‘𝐷)) = 0 )
845, 18, 36lmodmcl 18640 . . . 4 ((𝑈 ∈ LMod ∧ 𝐽𝐵 ∧ (𝐺𝐼) ∈ 𝐵) → (𝐽 × (𝐺𝐼)) ∈ 𝐵)
859, 10, 62, 84syl3anc 1317 . . 3 (𝜑 → (𝐽 × (𝐺𝐼)) ∈ 𝐵)
8618, 37, 6grpsubeq0 17266 . . 3 ((𝑅 ∈ Grp ∧ (𝐽 × (𝐺𝐼)) ∈ 𝐵 ∧ ((𝑆𝐶)‘𝐷) ∈ 𝐵) → (((𝐽 × (𝐺𝐼))(-g𝑅)((𝑆𝐶)‘𝐷)) = 0 ↔ (𝐽 × (𝐺𝐼)) = ((𝑆𝐶)‘𝐷)))
8753, 85, 78, 86syl3anc 1317 . 2 (𝜑 → (((𝐽 × (𝐺𝐼))(-g𝑅)((𝑆𝐶)‘𝐷)) = 0 ↔ (𝐽 × (𝐺𝐼)) = ((𝑆𝐶)‘𝐷)))
8883, 87mpbid 220 1 (𝜑 → (𝐽 × (𝐺𝐼)) = ((𝑆𝐶)‘𝐷))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 194  wa 382   = wceq 1474  wcel 1975  wss 3535  {csn 4120  cop 4126   I cid 4934  cres 5026  cfv 5786  (class class class)co 6523  Basecbs 15637  +gcplusg 15710  .rcmulr 15711  Scalarcsca 15713   ·𝑠 cvsca 15714  0gc0g 15865  Grpcgrp 17187  -gcsg 17189  1rcur 18266  Ringcrg 18312  LModclmod 18628  HLchlt 33454  LHypclh 34087  LTrncltrn 34204  DVecHcdvh 35184  ocHcoch 35453  HVMapchvm 35862  HDMapchdma 35899  HGMapchg 35992
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1711  ax-4 1726  ax-5 1825  ax-6 1873  ax-7 1920  ax-8 1977  ax-9 1984  ax-10 2004  ax-11 2019  ax-12 2031  ax-13 2228  ax-ext 2585  ax-rep 4689  ax-sep 4699  ax-nul 4708  ax-pow 4760  ax-pr 4824  ax-un 6820  ax-cnex 9844  ax-resscn 9845  ax-1cn 9846  ax-icn 9847  ax-addcl 9848  ax-addrcl 9849  ax-mulcl 9850  ax-mulrcl 9851  ax-mulcom 9852  ax-addass 9853  ax-mulass 9854  ax-distr 9855  ax-i2m1 9856  ax-1ne0 9857  ax-1rid 9858  ax-rnegex 9859  ax-rrecex 9860  ax-cnre 9861  ax-pre-lttri 9862  ax-pre-lttrn 9863  ax-pre-ltadd 9864  ax-pre-mulgt0 9865  ax-riotaBAD 33056
This theorem depends on definitions:  df-bi 195  df-or 383  df-an 384  df-3or 1031  df-3an 1032  df-tru 1477  df-fal 1480  df-ex 1695  df-nf 1700  df-sb 1866  df-eu 2457  df-mo 2458  df-clab 2592  df-cleq 2598  df-clel 2601  df-nfc 2735  df-ne 2777  df-nel 2778  df-ral 2896  df-rex 2897  df-reu 2898  df-rmo 2899  df-rab 2900  df-v 3170  df-sbc 3398  df-csb 3495  df-dif 3538  df-un 3540  df-in 3542  df-ss 3549  df-pss 3551  df-nul 3870  df-if 4032  df-pw 4105  df-sn 4121  df-pr 4123  df-tp 4125  df-op 4127  df-ot 4129  df-uni 4363  df-int 4401  df-iun 4447  df-iin 4448  df-br 4574  df-opab 4634  df-mpt 4635  df-tr 4671  df-eprel 4935  df-id 4939  df-po 4945  df-so 4946  df-fr 4983  df-we 4985  df-xp 5030  df-rel 5031  df-cnv 5032  df-co 5033  df-dm 5034  df-rn 5035  df-res 5036  df-ima 5037  df-pred 5579  df-ord 5625  df-on 5626  df-lim 5627  df-suc 5628  df-iota 5750  df-fun 5788  df-fn 5789  df-f 5790  df-f1 5791  df-fo 5792  df-f1o 5793  df-fv 5794  df-riota 6485  df-ov 6526  df-oprab 6527  df-mpt2 6528  df-of 6768  df-om 6931  df-1st 7032  df-2nd 7033  df-tpos 7212  df-undef 7259  df-wrecs 7267  df-recs 7328  df-rdg 7366  df-1o 7420  df-oadd 7424  df-er 7602  df-map 7719  df-en 7815  df-dom 7816  df-sdom 7817  df-fin 7818  df-pnf 9928  df-mnf 9929  df-xr 9930  df-ltxr 9931  df-le 9932  df-sub 10115  df-neg 10116  df-nn 10864  df-2 10922  df-3 10923  df-4 10924  df-5 10925  df-6 10926  df-n0 11136  df-z 11207  df-uz 11516  df-fz 12149  df-struct 15639  df-ndx 15640  df-slot 15641  df-base 15642  df-sets 15643  df-ress 15644  df-plusg 15723  df-mulr 15724  df-sca 15726  df-vsca 15727  df-0g 15867  df-mre 16011  df-mrc 16012  df-acs 16014  df-preset 16693  df-poset 16711  df-plt 16723  df-lub 16739  df-glb 16740  df-join 16741  df-meet 16742  df-p0 16804  df-p1 16805  df-lat 16811  df-clat 16873  df-mgm 17007  df-sgrp 17049  df-mnd 17060  df-submnd 17101  df-grp 17190  df-minusg 17191  df-sbg 17192  df-subg 17356  df-cntz 17515  df-oppg 17541  df-lsm 17816  df-cmn 17960  df-abl 17961  df-mgp 18255  df-ur 18267  df-ring 18314  df-oppr 18388  df-dvdsr 18406  df-unit 18407  df-invr 18437  df-dvr 18448  df-drng 18514  df-lmod 18630  df-lss 18696  df-lsp 18735  df-lvec 18866  df-lsatoms 33080  df-lshyp 33081  df-lcv 33123  df-lfl 33162  df-lkr 33190  df-ldual 33228  df-oposet 33280  df-ol 33282  df-oml 33283  df-covers 33370  df-ats 33371  df-atl 33402  df-cvlat 33426  df-hlat 33455  df-llines 33601  df-lplanes 33602  df-lvols 33603  df-lines 33604  df-psubsp 33606  df-pmap 33607  df-padd 33899  df-lhyp 34091  df-laut 34092  df-ldil 34207  df-ltrn 34208  df-trl 34263  df-tgrp 34848  df-tendo 34860  df-edring 34862  df-dveca 35108  df-disoa 35135  df-dvech 35185  df-dib 35245  df-dic 35279  df-dih 35335  df-doch 35454  df-djh 35501  df-lcdual 35693  df-mapd 35731  df-hvmap 35863  df-hdmap1 35900  df-hdmap 35901  df-hgmap 35993
This theorem is referenced by:  hdmapglem5  36031  hgmapvvlem1  36032
  Copyright terms: Public domain W3C validator