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

Theorem mapdval2N 37421
 Description: Value of projectivity from vector space H to dual space. (Contributed by NM, 31-Jan-2015.) (New usage is discouraged.)
Hypotheses
Ref Expression
mapdval2.h 𝐻 = (LHyp‘𝐾)
mapdval2.u 𝑈 = ((DVecH‘𝐾)‘𝑊)
mapdval2.s 𝑆 = (LSubSp‘𝑈)
mapdval2.n 𝑁 = (LSpan‘𝑈)
mapdval2.f 𝐹 = (LFnl‘𝑈)
mapdval2.l 𝐿 = (LKer‘𝑈)
mapdval2.o 𝑂 = ((ocH‘𝐾)‘𝑊)
mapdval2.m 𝑀 = ((mapd‘𝐾)‘𝑊)
mapdval2.k (𝜑 → (𝐾 ∈ HL ∧ 𝑊𝐻))
mapdval2.t (𝜑𝑇𝑆)
mapdval2.c 𝐶 = {𝑔𝐹 ∣ (𝑂‘(𝑂‘(𝐿𝑔))) = (𝐿𝑔)}
Assertion
Ref Expression
mapdval2N (𝜑 → (𝑀𝑇) = {𝑓𝐶 ∣ ∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})})
Distinct variable groups:   𝑣,𝐶   𝑓,𝑔,𝐹   𝑓,𝐾   𝑣,𝑔,𝐿   𝑣,𝑁   𝑔,𝑂,𝑣   𝑣,𝑓,𝑇   𝑣,𝑈   𝑓,𝑊   𝜑,𝑓,𝑣
Allowed substitution hints:   𝜑(𝑔)   𝐶(𝑓,𝑔)   𝑆(𝑣,𝑓,𝑔)   𝑇(𝑔)   𝑈(𝑓,𝑔)   𝐹(𝑣)   𝐻(𝑣,𝑓,𝑔)   𝐾(𝑣,𝑔)   𝐿(𝑓)   𝑀(𝑣,𝑓,𝑔)   𝑁(𝑓,𝑔)   𝑂(𝑓)   𝑊(𝑣,𝑔)

Proof of Theorem mapdval2N
StepHypRef Expression
1 mapdval2.h . . 3 𝐻 = (LHyp‘𝐾)
2 mapdval2.u . . 3 𝑈 = ((DVecH‘𝐾)‘𝑊)
3 mapdval2.s . . 3 𝑆 = (LSubSp‘𝑈)
4 mapdval2.f . . 3 𝐹 = (LFnl‘𝑈)
5 mapdval2.l . . 3 𝐿 = (LKer‘𝑈)
6 mapdval2.o . . 3 𝑂 = ((ocH‘𝐾)‘𝑊)
7 mapdval2.m . . 3 𝑀 = ((mapd‘𝐾)‘𝑊)
8 mapdval2.k . . 3 (𝜑 → (𝐾 ∈ HL ∧ 𝑊𝐻))
9 mapdval2.t . . 3 (𝜑𝑇𝑆)
10 mapdval2.c . . 3 𝐶 = {𝑔𝐹 ∣ (𝑂‘(𝑂‘(𝐿𝑔))) = (𝐿𝑔)}
111, 2, 3, 4, 5, 6, 7, 8, 9, 10mapdvalc 37420 . 2 (𝜑 → (𝑀𝑇) = {𝑓𝐶 ∣ (𝑂‘(𝐿𝑓)) ⊆ 𝑇})
121, 2, 8dvhlmod 36901 . . . . . . . . 9 (𝜑𝑈 ∈ LMod)
1312ad3antrrr 768 . . . . . . . 8 ((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) → 𝑈 ∈ LMod)
14 simplr 809 . . . . . . . 8 ((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) → (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈))
15 eqid 2760 . . . . . . . . 9 (Base‘𝑈) = (Base‘𝑈)
16 mapdval2.n . . . . . . . . 9 𝑁 = (LSpan‘𝑈)
17 eqid 2760 . . . . . . . . 9 (LSAtoms‘𝑈) = (LSAtoms‘𝑈)
1815, 16, 17islsati 34784 . . . . . . . 8 ((𝑈 ∈ LMod ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) → ∃𝑣 ∈ (Base‘𝑈)(𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))
1913, 14, 18syl2anc 696 . . . . . . 7 ((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) → ∃𝑣 ∈ (Base‘𝑈)(𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))
20 simprr 813 . . . . . . . . . . . 12 (((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) ∧ (𝑣 ∈ (Base‘𝑈) ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))) → (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))
21 simplr 809 . . . . . . . . . . . 12 (((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) ∧ (𝑣 ∈ (Base‘𝑈) ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))) → (𝑂‘(𝐿𝑓)) ⊆ 𝑇)
2220, 21eqsstr3d 3781 . . . . . . . . . . 11 (((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) ∧ (𝑣 ∈ (Base‘𝑈) ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))) → (𝑁‘{𝑣}) ⊆ 𝑇)
2312adantr 472 . . . . . . . . . . . . 13 ((𝜑𝑓𝐶) → 𝑈 ∈ LMod)
2423ad3antrrr 768 . . . . . . . . . . . 12 (((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) ∧ (𝑣 ∈ (Base‘𝑈) ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))) → 𝑈 ∈ LMod)
259adantr 472 . . . . . . . . . . . . 13 ((𝜑𝑓𝐶) → 𝑇𝑆)
2625ad3antrrr 768 . . . . . . . . . . . 12 (((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) ∧ (𝑣 ∈ (Base‘𝑈) ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))) → 𝑇𝑆)
27 simprl 811 . . . . . . . . . . . 12 (((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) ∧ (𝑣 ∈ (Base‘𝑈) ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))) → 𝑣 ∈ (Base‘𝑈))
2815, 3, 16, 24, 26, 27lspsnel5 19197 . . . . . . . . . . 11 (((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) ∧ (𝑣 ∈ (Base‘𝑈) ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))) → (𝑣𝑇 ↔ (𝑁‘{𝑣}) ⊆ 𝑇))
2922, 28mpbird 247 . . . . . . . . . 10 (((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) ∧ (𝑣 ∈ (Base‘𝑈) ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))) → 𝑣𝑇)
3029, 20jca 555 . . . . . . . . 9 (((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) ∧ (𝑣 ∈ (Base‘𝑈) ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))) → (𝑣𝑇 ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})))
3130ex 449 . . . . . . . 8 ((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) → ((𝑣 ∈ (Base‘𝑈) ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})) → (𝑣𝑇 ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))))
3231reximdv2 3152 . . . . . . 7 ((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) → (∃𝑣 ∈ (Base‘𝑈)(𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}) → ∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})))
3319, 32mpd 15 . . . . . 6 ((((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) ∧ (𝑂‘(𝐿𝑓)) ⊆ 𝑇) → ∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))
3433ex 449 . . . . 5 (((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈)) → ((𝑂‘(𝐿𝑓)) ⊆ 𝑇 → ∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})))
35 eqid 2760 . . . . . . . . . . 11 (0g𝑈) = (0g𝑈)
3635, 3lss0cl 19149 . . . . . . . . . 10 ((𝑈 ∈ LMod ∧ 𝑇𝑆) → (0g𝑈) ∈ 𝑇)
3712, 9, 36syl2anc 696 . . . . . . . . 9 (𝜑 → (0g𝑈) ∈ 𝑇)
3837adantr 472 . . . . . . . 8 ((𝜑 ∧ (𝑂‘(𝐿𝑓)) = {(0g𝑈)}) → (0g𝑈) ∈ 𝑇)
39 simpr 479 . . . . . . . . 9 ((𝜑 ∧ (𝑂‘(𝐿𝑓)) = {(0g𝑈)}) → (𝑂‘(𝐿𝑓)) = {(0g𝑈)})
4012adantr 472 . . . . . . . . . 10 ((𝜑 ∧ (𝑂‘(𝐿𝑓)) = {(0g𝑈)}) → 𝑈 ∈ LMod)
4135, 16lspsn0 19210 . . . . . . . . . 10 (𝑈 ∈ LMod → (𝑁‘{(0g𝑈)}) = {(0g𝑈)})
4240, 41syl 17 . . . . . . . . 9 ((𝜑 ∧ (𝑂‘(𝐿𝑓)) = {(0g𝑈)}) → (𝑁‘{(0g𝑈)}) = {(0g𝑈)})
4339, 42eqtr4d 2797 . . . . . . . 8 ((𝜑 ∧ (𝑂‘(𝐿𝑓)) = {(0g𝑈)}) → (𝑂‘(𝐿𝑓)) = (𝑁‘{(0g𝑈)}))
44 sneq 4331 . . . . . . . . . . 11 (𝑣 = (0g𝑈) → {𝑣} = {(0g𝑈)})
4544fveq2d 6356 . . . . . . . . . 10 (𝑣 = (0g𝑈) → (𝑁‘{𝑣}) = (𝑁‘{(0g𝑈)}))
4645eqeq2d 2770 . . . . . . . . 9 (𝑣 = (0g𝑈) → ((𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}) ↔ (𝑂‘(𝐿𝑓)) = (𝑁‘{(0g𝑈)})))
4746rspcev 3449 . . . . . . . 8 (((0g𝑈) ∈ 𝑇 ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{(0g𝑈)})) → ∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))
4838, 43, 47syl2anc 696 . . . . . . 7 ((𝜑 ∧ (𝑂‘(𝐿𝑓)) = {(0g𝑈)}) → ∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))
4948adantlr 753 . . . . . 6 (((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) = {(0g𝑈)}) → ∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))
5049a1d 25 . . . . 5 (((𝜑𝑓𝐶) ∧ (𝑂‘(𝐿𝑓)) = {(0g𝑈)}) → ((𝑂‘(𝐿𝑓)) ⊆ 𝑇 → ∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})))
518adantr 472 . . . . . 6 ((𝜑𝑓𝐶) → (𝐾 ∈ HL ∧ 𝑊𝐻))
5210lcfl1lem 37282 . . . . . . . 8 (𝑓𝐶 ↔ (𝑓𝐹 ∧ (𝑂‘(𝑂‘(𝐿𝑓))) = (𝐿𝑓)))
5352simplbi 478 . . . . . . 7 (𝑓𝐶𝑓𝐹)
5453adantl 473 . . . . . 6 ((𝜑𝑓𝐶) → 𝑓𝐹)
551, 6, 2, 35, 17, 4, 5, 51, 54dochsat0 37248 . . . . 5 ((𝜑𝑓𝐶) → ((𝑂‘(𝐿𝑓)) ∈ (LSAtoms‘𝑈) ∨ (𝑂‘(𝐿𝑓)) = {(0g𝑈)}))
5634, 50, 55mpjaodan 862 . . . 4 ((𝜑𝑓𝐶) → ((𝑂‘(𝐿𝑓)) ⊆ 𝑇 → ∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})))
57 simp3 1133 . . . . . 6 (((𝜑𝑓𝐶) ∧ 𝑣𝑇 ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})) → (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}))
58233ad2ant1 1128 . . . . . . 7 (((𝜑𝑓𝐶) ∧ 𝑣𝑇 ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})) → 𝑈 ∈ LMod)
59253ad2ant1 1128 . . . . . . 7 (((𝜑𝑓𝐶) ∧ 𝑣𝑇 ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})) → 𝑇𝑆)
60 simp2 1132 . . . . . . 7 (((𝜑𝑓𝐶) ∧ 𝑣𝑇 ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})) → 𝑣𝑇)
613, 16, 58, 59, 60lspsnel5a 19198 . . . . . 6 (((𝜑𝑓𝐶) ∧ 𝑣𝑇 ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})) → (𝑁‘{𝑣}) ⊆ 𝑇)
6257, 61eqsstrd 3780 . . . . 5 (((𝜑𝑓𝐶) ∧ 𝑣𝑇 ∧ (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})) → (𝑂‘(𝐿𝑓)) ⊆ 𝑇)
6362rexlimdv3a 3171 . . . 4 ((𝜑𝑓𝐶) → (∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣}) → (𝑂‘(𝐿𝑓)) ⊆ 𝑇))
6456, 63impbid 202 . . 3 ((𝜑𝑓𝐶) → ((𝑂‘(𝐿𝑓)) ⊆ 𝑇 ↔ ∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})))
6564rabbidva 3328 . 2 (𝜑 → {𝑓𝐶 ∣ (𝑂‘(𝐿𝑓)) ⊆ 𝑇} = {𝑓𝐶 ∣ ∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})})
6611, 65eqtrd 2794 1 (𝜑 → (𝑀𝑇) = {𝑓𝐶 ∣ ∃𝑣𝑇 (𝑂‘(𝐿𝑓)) = (𝑁‘{𝑣})})
 Colors of variables: wff setvar class Syntax hints:   → wi 4   ∧ wa 383   ∧ w3a 1072   = wceq 1632   ∈ wcel 2139  ∃wrex 3051  {crab 3054   ⊆ wss 3715  {csn 4321  ‘cfv 6049  Basecbs 16059  0gc0g 16302  LModclmod 19065  LSubSpclss 19134  LSpanclspn 19173  LSAtomsclsa 34764  LFnlclfn 34847  LKerclk 34875  HLchlt 35140  LHypclh 35773  DVecHcdvh 36869  ocHcoch 37138  mapdcmpd 37415 This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1871  ax-4 1886  ax-5 1988  ax-6 2054  ax-7 2090  ax-8 2141  ax-9 2148  ax-10 2168  ax-11 2183  ax-12 2196  ax-13 2391  ax-ext 2740  ax-rep 4923  ax-sep 4933  ax-nul 4941  ax-pow 4992  ax-pr 5055  ax-un 7114  ax-cnex 10184  ax-resscn 10185  ax-1cn 10186  ax-icn 10187  ax-addcl 10188  ax-addrcl 10189  ax-mulcl 10190  ax-mulrcl 10191  ax-mulcom 10192  ax-addass 10193  ax-mulass 10194  ax-distr 10195  ax-i2m1 10196  ax-1ne0 10197  ax-1rid 10198  ax-rnegex 10199  ax-rrecex 10200  ax-cnre 10201  ax-pre-lttri 10202  ax-pre-lttrn 10203  ax-pre-ltadd 10204  ax-pre-mulgt0 10205  ax-riotaBAD 34742 This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3or 1073  df-3an 1074  df-tru 1635  df-fal 1638  df-ex 1854  df-nf 1859  df-sb 2047  df-eu 2611  df-mo 2612  df-clab 2747  df-cleq 2753  df-clel 2756  df-nfc 2891  df-ne 2933  df-nel 3036  df-ral 3055  df-rex 3056  df-reu 3057  df-rmo 3058  df-rab 3059  df-v 3342  df-sbc 3577  df-csb 3675  df-dif 3718  df-un 3720  df-in 3722  df-ss 3729  df-pss 3731  df-nul 4059  df-if 4231  df-pw 4304  df-sn 4322  df-pr 4324  df-tp 4326  df-op 4328  df-uni 4589  df-int 4628  df-iun 4674  df-iin 4675  df-br 4805  df-opab 4865  df-mpt 4882  df-tr 4905  df-id 5174  df-eprel 5179  df-po 5187  df-so 5188  df-fr 5225  df-we 5227  df-xp 5272  df-rel 5273  df-cnv 5274  df-co 5275  df-dm 5276  df-rn 5277  df-res 5278  df-ima 5279  df-pred 5841  df-ord 5887  df-on 5888  df-lim 5889  df-suc 5890  df-iota 6012  df-fun 6051  df-fn 6052  df-f 6053  df-f1 6054  df-fo 6055  df-f1o 6056  df-fv 6057  df-riota 6774  df-ov 6816  df-oprab 6817  df-mpt2 6818  df-om 7231  df-1st 7333  df-2nd 7334  df-tpos 7521  df-undef 7568  df-wrecs 7576  df-recs 7637  df-rdg 7675  df-1o 7729  df-oadd 7733  df-er 7911  df-map 8025  df-en 8122  df-dom 8123  df-sdom 8124  df-fin 8125  df-pnf 10268  df-mnf 10269  df-xr 10270  df-ltxr 10271  df-le 10272  df-sub 10460  df-neg 10461  df-nn 11213  df-2 11271  df-3 11272  df-4 11273  df-5 11274  df-6 11275  df-n0 11485  df-z 11570  df-uz 11880  df-fz 12520  df-struct 16061  df-ndx 16062  df-slot 16063  df-base 16065  df-sets 16066  df-ress 16067  df-plusg 16156  df-mulr 16157  df-sca 16159  df-vsca 16160  df-0g 16304  df-preset 17129  df-poset 17147  df-plt 17159  df-lub 17175  df-glb 17176  df-join 17177  df-meet 17178  df-p0 17240  df-p1 17241  df-lat 17247  df-clat 17309  df-mgm 17443  df-sgrp 17485  df-mnd 17496  df-submnd 17537  df-grp 17626  df-minusg 17627  df-sbg 17628  df-subg 17792  df-cntz 17950  df-lsm 18251  df-cmn 18395  df-abl 18396  df-mgp 18690  df-ur 18702  df-ring 18749  df-oppr 18823  df-dvdsr 18841  df-unit 18842  df-invr 18872  df-dvr 18883  df-drng 18951  df-lmod 19067  df-lss 19135  df-lsp 19174  df-lvec 19305  df-lsatoms 34766  df-lshyp 34767  df-lfl 34848  df-lkr 34876  df-oposet 34966  df-ol 34968  df-oml 34969  df-covers 35056  df-ats 35057  df-atl 35088  df-cvlat 35112  df-hlat 35141  df-llines 35287  df-lplanes 35288  df-lvols 35289  df-lines 35290  df-psubsp 35292  df-pmap 35293  df-padd 35585  df-lhyp 35777  df-laut 35778  df-ldil 35893  df-ltrn 35894  df-trl 35949  df-tgrp 36533  df-tendo 36545  df-edring 36547  df-dveca 36793  df-disoa 36820  df-dvech 36870  df-dib 36930  df-dic 36964  df-dih 37020  df-doch 37139  df-djh 37186  df-mapd 37416 This theorem is referenced by:  mapdval3N  37422  mapdval4N  37423
 Copyright terms: Public domain W3C validator