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 40469
Description: TODO: fix comment. TODO: Remove unnecessary 𝑃𝑄 from cdleme48bw 40469 cdlemeg46c 40480 cdlemeg46fvaw 40483 cdlemeg46rgv 40495 cdlemeg46gfv 40497? cdleme48d 40502? 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 40468 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑆𝐴 ∧ ¬ 𝑆 𝑊)) → ((𝐹𝑆) ∈ 𝐴 ∧ ¬ (𝐹𝑆) 𝑊))
141, 2, 13syl2anc 584 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → ((𝐹𝑆) ∈ 𝐴 ∧ ¬ (𝐹𝑆) 𝑊))
1514simprd 495 . 2 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → ¬ (𝐹𝑆) 𝑊)
16 simp11l 1285 . . . . . 6 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → 𝐾 ∈ HL)
1716hllatd 39330 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → 𝐾 ∈ Lat)
1814simpld 494 . . . . . 6 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝐹𝑆) ∈ 𝐴)
193, 7atbase 39255 . . . . . 6 ((𝐹𝑆) ∈ 𝐴 → (𝐹𝑆) ∈ 𝐵)
2018, 19syl 17 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝐹𝑆) ∈ 𝐵)
21 simp2rl 1243 . . . . . 6 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → 𝑋𝐵)
22 simp11r 1286 . . . . . . 7 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → 𝑊𝐻)
233, 8lhpbase 39965 . . . . . . 7 (𝑊𝐻𝑊𝐵)
2422, 23syl 17 . . . . . 6 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → 𝑊𝐵)
253, 6latmcl 18375 . . . . . 6 ((𝐾 ∈ Lat ∧ 𝑋𝐵𝑊𝐵) → (𝑋 𝑊) ∈ 𝐵)
2617, 21, 24, 25syl3anc 1373 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝑋 𝑊) ∈ 𝐵)
273, 4, 5latlej1 18383 . . . . 5 ((𝐾 ∈ Lat ∧ (𝐹𝑆) ∈ 𝐵 ∧ (𝑋 𝑊) ∈ 𝐵) → (𝐹𝑆) ((𝐹𝑆) (𝑋 𝑊)))
2817, 20, 26, 27syl3anc 1373 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝐹𝑆) ((𝐹𝑆) (𝑋 𝑊)))
293, 4, 5, 6, 7, 8, 9, 10, 11, 12cdleme48fv 40466 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝐹𝑋) = ((𝐹𝑆) (𝑋 𝑊)))
3028, 29breqtrrd 5130 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝐹𝑆) (𝐹𝑋))
31 vex 3448 . . . . . . 7 𝑠 ∈ V
32 eqid 2729 . . . . . . . 8 ((𝑠 𝑈) (𝑄 ((𝑃 𝑠) 𝑊))) = ((𝑠 𝑈) (𝑄 ((𝑃 𝑠) 𝑊)))
3310, 32cdleme31sc 40351 . . . . . . 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 40407 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ 𝑋𝐵) → (𝐹𝑋) ∈ 𝐵)
391, 21, 38syl2anc 584 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑃𝑄 ∧ (𝑋𝐵 ∧ ¬ 𝑋 𝑊)) ∧ ((𝑆𝐴 ∧ ¬ 𝑆 𝑊) ∧ (𝑆 (𝑋 𝑊)) = 𝑋)) → (𝐹𝑋) ∈ 𝐵)
403, 4lattr 18379 . . . 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 3444  csb 3859  ifcif 4484   class class class wbr 5102  cmpt 5183  cfv 6499  crio 7325  (class class class)co 7369  Basecbs 17155  lecple 17203  joincjn 18248  meetcmee 18249  Latclat 18366  Atomscatm 39229  HLchlt 39316  LHypclh 39951
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 5229  ax-sep 5246  ax-nul 5256  ax-pow 5315  ax-pr 5382  ax-un 7691  ax-riotaBAD 38919
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 3351  df-reu 3352  df-rab 3403  df-v 3446  df-sbc 3751  df-csb 3860  df-dif 3914  df-un 3916  df-in 3918  df-ss 3928  df-nul 4293  df-if 4485  df-pw 4561  df-sn 4586  df-pr 4588  df-op 4592  df-uni 4868  df-iun 4953  df-iin 4954  df-br 5103  df-opab 5165  df-mpt 5184  df-id 5526  df-xp 5637  df-rel 5638  df-cnv 5639  df-co 5640  df-dm 5641  df-rn 5642  df-res 5643  df-ima 5644  df-iota 6452  df-fun 6501  df-fn 6502  df-f 6503  df-f1 6504  df-fo 6505  df-f1o 6506  df-fv 6507  df-riota 7326  df-ov 7372  df-oprab 7373  df-mpo 7374  df-1st 7947  df-2nd 7948  df-undef 8229  df-proset 18231  df-poset 18250  df-plt 18265  df-lub 18281  df-glb 18282  df-join 18283  df-meet 18284  df-p0 18360  df-p1 18361  df-lat 18367  df-clat 18434  df-oposet 39142  df-ol 39144  df-oml 39145  df-covers 39232  df-ats 39233  df-atl 39264  df-cvlat 39288  df-hlat 39317  df-llines 39465  df-lplanes 39466  df-lvols 39467  df-lines 39468  df-psubsp 39470  df-pmap 39471  df-padd 39763  df-lhyp 39955
This theorem is referenced by:  cdleme48d  40502
  Copyright terms: Public domain W3C validator