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

Theorem cdleme48bw 40485
Description: TODO: fix comment. TODO: Remove unnecessary 𝑃𝑄 from cdleme48bw 40485 cdlemeg46c 40496 cdlemeg46fvaw 40499 cdlemeg46rgv 40511 cdlemeg46gfv 40513? cdleme48d 40518? and possibly others they affect. (Contributed by NM, 9-Apr-2013.)
Hypotheses
Ref Expression
cdlemef46.b 𝐵 = (Base‘𝐾)
cdlemef46.l = (le‘𝐾)
cdlemef46.j = (join‘𝐾)
cdlemef46.m = (meet‘𝐾)
cdlemef46.a 𝐴 = (Atoms‘𝐾)
cdlemef46.h 𝐻 = (LHyp‘𝐾)
cdlemef46.u 𝑈 = ((𝑃 𝑄) 𝑊)
cdlemef46.d 𝐷 = ((𝑡 𝑈) (𝑄 ((𝑃 𝑡) 𝑊)))
cdlemefs46.e 𝐸 = ((𝑃 𝑄) (𝐷 ((𝑠 𝑡) 𝑊)))
cdlemef46.f 𝐹 = (𝑥𝐵 ↦ if((𝑃𝑄 ∧ ¬ 𝑥 𝑊), (𝑧𝐵𝑠𝐴 ((¬ 𝑠 𝑊 ∧ (𝑠 (𝑥 𝑊)) = 𝑥) → 𝑧 = (if(𝑠 (𝑃 𝑄), (𝑦𝐵𝑡𝐴 ((¬ 𝑡 𝑊 ∧ ¬ 𝑡 (𝑃 𝑄)) → 𝑦 = 𝐸)), 𝑠 / 𝑡𝐷) (𝑥 𝑊)))), 𝑥))
Assertion
Ref Expression
cdleme48bw ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → ¬ (𝐹𝑋) 𝑊)
Distinct variable groups:   𝑡,𝑠,𝑥,𝑦,𝑧,𝐴   𝐵,𝑠,𝑡,𝑥,𝑦,𝑧   𝐷,𝑠,𝑥,𝑦,𝑧   𝑥,𝐸,𝑦,𝑧   𝐻,𝑠,𝑡,𝑥,𝑦,𝑧   ,𝑠,𝑡,𝑥,𝑦,𝑧   𝐾,𝑠,𝑡,𝑥,𝑦,𝑧   ,𝑠,𝑡,𝑥,𝑦,𝑧   ,𝑠,𝑡,𝑥,𝑦,𝑧   𝑃,𝑠,𝑡,𝑥,𝑦,𝑧   𝑄,𝑠,𝑡,𝑥,𝑦,𝑧   𝑈,𝑠,𝑡,𝑥,𝑦,𝑧   𝑊,𝑠,𝑡,𝑥,𝑦,𝑧   𝑆,𝑠,𝑡,𝑥,𝑦,𝑧   𝑋,𝑠,𝑡,𝑥,𝑧
Allowed substitution hints:   𝐷(𝑡)   𝐸(𝑡,𝑠)   𝐹(𝑥,𝑦,𝑧,𝑡,𝑠)   𝑋(𝑦)

Proof of Theorem cdleme48bw
StepHypRef Expression
1 simp1 1136 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → ((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)))
2 simp3l 1202 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝑆𝐴 ∧ ¬ 𝑆 𝑊))
3 cdlemef46.b . . . . 5 𝐵 = (Base‘𝐾)
4 cdlemef46.l . . . . 5 = (le‘𝐾)
5 cdlemef46.j . . . . 5 = (join‘𝐾)
6 cdlemef46.m . . . . 5 = (meet‘𝐾)
7 cdlemef46.a . . . . 5 𝐴 = (Atoms‘𝐾)
8 cdlemef46.h . . . . 5 𝐻 = (LHyp‘𝐾)
9 cdlemef46.u . . . . 5 𝑈 = ((𝑃 𝑄) 𝑊)
10 cdlemef46.d . . . . 5 𝐷 = ((𝑡 𝑈) (𝑄 ((𝑃 𝑡) 𝑊)))
11 cdlemefs46.e . . . . 5 𝐸 = ((𝑃 𝑄) (𝐷 ((𝑠 𝑡) 𝑊)))
12 cdlemef46.f . . . . 5 𝐹 = (𝑥𝐵 ↦ if((𝑃𝑄 ∧ ¬ 𝑥 𝑊), (𝑧𝐵𝑠𝐴 ((¬ 𝑠 𝑊 ∧ (𝑠 (𝑥 𝑊)) = 𝑥) → 𝑧 = (if(𝑠 (𝑃 𝑄), (𝑦𝐵𝑡𝐴 ((¬ 𝑡 𝑊 ∧ ¬ 𝑡 (𝑃 𝑄)) → 𝑦 = 𝐸)), 𝑠 / 𝑡𝐷) (𝑥 𝑊)))), 𝑥))
133, 4, 5, 6, 7, 8, 9, 10, 11, 12cdleme46fvaw 40484 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑆𝐴 ∧ ¬ 𝑆 𝑊)) → ((𝐹𝑆) ∈ 𝐴 ∧ ¬ (𝐹𝑆) 𝑊))
141, 2, 13syl2anc 584 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → ((𝐹𝑆) ∈ 𝐴 ∧ ¬ (𝐹𝑆) 𝑊))
1514simprd 495 . 2 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → ¬ (𝐹𝑆) 𝑊)
16 simp11l 1285 . . . . . 6 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → 𝐾 ∈ HL)
1716hllatd 39347 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → 𝐾 ∈ Lat)
1814simpld 494 . . . . . 6 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝐹𝑆) ∈ 𝐴)
193, 7atbase 39272 . . . . . 6 ((𝐹𝑆) ∈ 𝐴 → (𝐹𝑆) ∈ 𝐵)
2018, 19syl 17 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝐹𝑆) ∈ 𝐵)
21 simp2rl 1243 . . . . . 6 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → 𝑋𝐵)
22 simp11r 1286 . . . . . . 7 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → 𝑊𝐻)
233, 8lhpbase 39981 . . . . . . 7 (𝑊𝐻𝑊𝐵)
2422, 23syl 17 . . . . . 6 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → 𝑊𝐵)
253, 6latmcl 18346 . . . . . 6 ((𝐾 ∈ Lat ∧ 𝑋𝐵𝑊𝐵) → (𝑋 𝑊) ∈ 𝐵)
2617, 21, 24, 25syl3anc 1373 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝑋 𝑊) ∈ 𝐵)
273, 4, 5latlej1 18354 . . . . 5 ((𝐾 ∈ Lat ∧ (𝐹𝑆) ∈ 𝐵 ∧ (𝑋 𝑊) ∈ 𝐵) → (𝐹𝑆) ((𝐹𝑆) (𝑋 𝑊)))
2817, 20, 26, 27syl3anc 1373 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝐹𝑆) ((𝐹𝑆) (𝑋 𝑊)))
293, 4, 5, 6, 7, 8, 9, 10, 11, 12cdleme48fv 40482 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝐹𝑋) = ((𝐹𝑆) (𝑋 𝑊)))
3028, 29breqtrrd 5120 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝐹𝑆) (𝐹𝑋))
31 vex 3440 . . . . . . 7 𝑠 ∈ V
32 eqid 2729 . . . . . . . 8 ((𝑠 𝑈) (𝑄 ((𝑃 𝑠) 𝑊))) = ((𝑠 𝑈) (𝑄 ((𝑃 𝑠) 𝑊)))
3310, 32cdleme31sc 40367 . . . . . . 7 (𝑠 ∈ V → 𝑠 / 𝑡𝐷 = ((𝑠 𝑈) (𝑄 ((𝑃 𝑠) 𝑊))))
3431, 33ax-mp 5 . . . . . 6 𝑠 / 𝑡𝐷 = ((𝑠 𝑈) (𝑄 ((𝑃 𝑠) 𝑊)))
35 eqid 2729 . . . . . 6 (𝑦𝐵𝑡𝐴 ((¬ 𝑡 𝑊 ∧ ¬ 𝑡 (𝑃 𝑄)) → 𝑦 = 𝐸)) = (𝑦𝐵𝑡𝐴 ((¬ 𝑡 𝑊 ∧ ¬ 𝑡 (𝑃 𝑄)) → 𝑦 = 𝐸))
36 eqid 2729 . . . . . 6 if(𝑠 (𝑃 𝑄), (𝑦𝐵𝑡𝐴 ((¬ 𝑡 𝑊 ∧ ¬ 𝑡 (𝑃 𝑄)) → 𝑦 = 𝐸)), 𝑠 / 𝑡𝐷) = if(𝑠 (𝑃 𝑄), (𝑦𝐵𝑡𝐴 ((¬ 𝑡 𝑊 ∧ ¬ 𝑡 (𝑃 𝑄)) → 𝑦 = 𝐸)), 𝑠 / 𝑡𝐷)
37 eqid 2729 . . . . . 6 (𝑧𝐵𝑠𝐴 ((¬ 𝑠 𝑊 ∧ (𝑠 (𝑥 𝑊)) = 𝑥) → 𝑧 = (if(𝑠 (𝑃 𝑄), (𝑦𝐵𝑡𝐴 ((¬ 𝑡 𝑊 ∧ ¬ 𝑡 (𝑃 𝑄)) → 𝑦 = 𝐸)), 𝑠 / 𝑡𝐷) (𝑥 𝑊)))) = (𝑧𝐵𝑠𝐴 ((¬ 𝑠 𝑊 ∧ (𝑠 (𝑥 𝑊)) = 𝑥) → 𝑧 = (if(𝑠 (𝑃 𝑄), (𝑦𝐵𝑡𝐴 ((¬ 𝑡 𝑊 ∧ ¬ 𝑡 (𝑃 𝑄)) → 𝑦 = 𝐸)), 𝑠 / 𝑡𝐷) (𝑥 𝑊))))
383, 4, 5, 6, 7, 8, 9, 34, 10, 11, 35, 36, 37, 12cdleme32fvcl 40423 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ 𝑋𝐵) → (𝐹𝑋) ∈ 𝐵)
391, 21, 38syl2anc 584 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝐹𝑋) ∈ 𝐵)
403, 4lattr 18350 . . . 4 ((𝐾 ∈ Lat ∧ ((𝐹𝑆) ∈ 𝐵 ∧ (𝐹𝑋) ∈ 𝐵𝑊𝐵)) → (((𝐹𝑆) (𝐹𝑋) ∧ (𝐹𝑋) 𝑊) → (𝐹𝑆) 𝑊))
4117, 20, 39, 24, 40syl13anc 1374 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (((𝐹𝑆) (𝐹𝑋) ∧ (𝐹𝑋) 𝑊) → (𝐹𝑆) 𝑊))
4230, 41mpand 695 . 2 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → ((𝐹𝑋) 𝑊 → (𝐹𝑆) 𝑊))
4315, 42mtod 198 1 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → ¬ (𝐹𝑋) 𝑊)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 395  w3a 1086   = wceq 1540  wcel 2109  wne 2925  wral 3044  Vcvv 3436  csb 3851  ifcif 4476   class class class wbr 5092  cmpt 5173  cfv 6482  crio 7305  (class class class)co 7349  Basecbs 17120  lecple 17168  joincjn 18217  meetcmee 18218  Latclat 18337  Atomscatm 39246  HLchlt 39333  LHypclh 39967
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1795  ax-4 1809  ax-5 1910  ax-6 1967  ax-7 2008  ax-8 2111  ax-9 2119  ax-10 2142  ax-11 2158  ax-12 2178  ax-ext 2701  ax-rep 5218  ax-sep 5235  ax-nul 5245  ax-pow 5304  ax-pr 5371  ax-un 7671  ax-riotaBAD 38936
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3or 1087  df-3an 1088  df-tru 1543  df-fal 1553  df-ex 1780  df-nf 1784  df-sb 2066  df-mo 2533  df-eu 2562  df-clab 2708  df-cleq 2721  df-clel 2803  df-nfc 2878  df-ne 2926  df-ral 3045  df-rex 3054  df-rmo 3343  df-reu 3344  df-rab 3395  df-v 3438  df-sbc 3743  df-csb 3852  df-dif 3906  df-un 3908  df-in 3910  df-ss 3920  df-nul 4285  df-if 4477  df-pw 4553  df-sn 4578  df-pr 4580  df-op 4584  df-uni 4859  df-iun 4943  df-iin 4944  df-br 5093  df-opab 5155  df-mpt 5174  df-id 5514  df-xp 5625  df-rel 5626  df-cnv 5627  df-co 5628  df-dm 5629  df-rn 5630  df-res 5631  df-ima 5632  df-iota 6438  df-fun 6484  df-fn 6485  df-f 6486  df-f1 6487  df-fo 6488  df-f1o 6489  df-fv 6490  df-riota 7306  df-ov 7352  df-oprab 7353  df-mpo 7354  df-1st 7924  df-2nd 7925  df-undef 8206  df-proset 18200  df-poset 18219  df-plt 18234  df-lub 18250  df-glb 18251  df-join 18252  df-meet 18253  df-p0 18329  df-p1 18330  df-lat 18338  df-clat 18405  df-oposet 39159  df-ol 39161  df-oml 39162  df-covers 39249  df-ats 39250  df-atl 39281  df-cvlat 39305  df-hlat 39334  df-llines 39481  df-lplanes 39482  df-lvols 39483  df-lines 39484  df-psubsp 39486  df-pmap 39487  df-padd 39779  df-lhyp 39971
This theorem is referenced by:  cdleme48d  40518
  Copyright terms: Public domain W3C validator