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

Theorem cdlemg39 40814
Description: Eliminate conditions from cdlemg38 40813. TODO: Would this better be done at cdlemg35 40811? TODO: Fix comment. (Contributed by NM, 31-May-2013.)
Hypotheses
Ref Expression
cdlemg35.l = (le‘𝐾)
cdlemg35.j = (join‘𝐾)
cdlemg35.m = (meet‘𝐾)
cdlemg35.a 𝐴 = (Atoms‘𝐾)
cdlemg35.h 𝐻 = (LHyp‘𝐾)
cdlemg35.t 𝑇 = ((LTrn‘𝐾)‘𝑊)
cdlemg35.r 𝑅 = ((trL‘𝐾)‘𝑊)
Assertion
Ref Expression
cdlemg39 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) → ((𝑃 (𝐹‘(𝐺𝑃))) 𝑊) = ((𝑄 (𝐹‘(𝐺𝑄))) 𝑊))

Proof of Theorem cdlemg39
StepHypRef Expression
1 simpl1 1192 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) = (𝑅𝐺)) → (𝐾 ∈ HL ∧ 𝑊𝐻))
2 simpl2l 1227 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) = (𝑅𝐺)) → (𝑃𝐴 ∧ ¬ 𝑃 𝑊))
3 simpl2r 1228 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) = (𝑅𝐺)) → (𝑄𝐴 ∧ ¬ 𝑄 𝑊))
4 simpl31 1255 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) = (𝑅𝐺)) → 𝐹𝑇)
5 simpl32 1256 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) = (𝑅𝐺)) → 𝐺𝑇)
6 simpr 484 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) = (𝑅𝐺)) → (𝑅𝐹) = (𝑅𝐺))
7 cdlemg35.l . . . 4 = (le‘𝐾)
8 cdlemg35.j . . . 4 = (join‘𝐾)
9 cdlemg35.m . . . 4 = (meet‘𝐾)
10 cdlemg35.a . . . 4 𝐴 = (Atoms‘𝐾)
11 cdlemg35.h . . . 4 𝐻 = (LHyp‘𝐾)
12 cdlemg35.t . . . 4 𝑇 = ((LTrn‘𝐾)‘𝑊)
13 cdlemg35.r . . . 4 𝑅 = ((trL‘𝐾)‘𝑊)
147, 8, 9, 10, 11, 12, 13cdlemg15 40754 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇) ∧ (𝑅𝐹) = (𝑅𝐺)) → ((𝑃 (𝐹‘(𝐺𝑃))) 𝑊) = ((𝑄 (𝐹‘(𝐺𝑄))) 𝑊))
151, 2, 3, 4, 5, 6, 14syl321anc 1394 . 2 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) = (𝑅𝐺)) → ((𝑃 (𝐹‘(𝐺𝑃))) 𝑊) = ((𝑄 (𝐹‘(𝐺𝑄))) 𝑊))
16 simpll1 1213 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ (𝐹𝑃) = 𝑃) → (𝐾 ∈ HL ∧ 𝑊𝐻))
17 simpll2 1214 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ (𝐹𝑃) = 𝑃) → ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)))
18 simpl31 1255 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) → 𝐹𝑇)
1918adantr 480 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ (𝐹𝑃) = 𝑃) → 𝐹𝑇)
20 simpl32 1256 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) → 𝐺𝑇)
2120adantr 480 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ (𝐹𝑃) = 𝑃) → 𝐺𝑇)
22 simpr 484 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ (𝐹𝑃) = 𝑃) → (𝐹𝑃) = 𝑃)
237, 8, 9, 10, 11, 12, 13cdlemg14f 40751 . . . 4 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇 ∧ (𝐹𝑃) = 𝑃)) → ((𝑃 (𝐹‘(𝐺𝑃))) 𝑊) = ((𝑄 (𝐹‘(𝐺𝑄))) 𝑊))
2416, 17, 19, 21, 22, 23syl113anc 1384 . . 3 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ (𝐹𝑃) = 𝑃) → ((𝑃 (𝐹‘(𝐺𝑃))) 𝑊) = ((𝑄 (𝐹‘(𝐺𝑄))) 𝑊))
25 simpll1 1213 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ (𝐺𝑃) = 𝑃) → (𝐾 ∈ HL ∧ 𝑊𝐻))
26 simpll2 1214 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ (𝐺𝑃) = 𝑃) → ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)))
2718adantr 480 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ (𝐺𝑃) = 𝑃) → 𝐹𝑇)
2820adantr 480 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ (𝐺𝑃) = 𝑃) → 𝐺𝑇)
29 simpr 484 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ (𝐺𝑃) = 𝑃) → (𝐺𝑃) = 𝑃)
307, 8, 9, 10, 11, 12, 13cdlemg14g 40752 . . . 4 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇 ∧ (𝐺𝑃) = 𝑃)) → ((𝑃 (𝐹‘(𝐺𝑃))) 𝑊) = ((𝑄 (𝐹‘(𝐺𝑄))) 𝑊))
3125, 26, 27, 28, 29, 30syl113anc 1384 . . 3 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ (𝐺𝑃) = 𝑃) → ((𝑃 (𝐹‘(𝐺𝑃))) 𝑊) = ((𝑄 (𝐹‘(𝐺𝑄))) 𝑊))
32 simpll1 1213 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ ((𝐹𝑃) ≠ 𝑃 ∧ (𝐺𝑃) ≠ 𝑃)) → (𝐾 ∈ HL ∧ 𝑊𝐻))
33 simpl2l 1227 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) → (𝑃𝐴 ∧ ¬ 𝑃 𝑊))
3433adantr 480 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ ((𝐹𝑃) ≠ 𝑃 ∧ (𝐺𝑃) ≠ 𝑃)) → (𝑃𝐴 ∧ ¬ 𝑃 𝑊))
35 simpl2r 1228 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) → (𝑄𝐴 ∧ ¬ 𝑄 𝑊))
3635adantr 480 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ ((𝐹𝑃) ≠ 𝑃 ∧ (𝐺𝑃) ≠ 𝑃)) → (𝑄𝐴 ∧ ¬ 𝑄 𝑊))
37 simpll3 1215 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ ((𝐹𝑃) ≠ 𝑃 ∧ (𝐺𝑃) ≠ 𝑃)) → (𝐹𝑇𝐺𝑇𝑃𝑄))
38 simpr 484 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ ((𝐹𝑃) ≠ 𝑃 ∧ (𝐺𝑃) ≠ 𝑃)) → ((𝐹𝑃) ≠ 𝑃 ∧ (𝐺𝑃) ≠ 𝑃))
39 simplr 768 . . . 4 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ ((𝐹𝑃) ≠ 𝑃 ∧ (𝐺𝑃) ≠ 𝑃)) → (𝑅𝐹) ≠ (𝑅𝐺))
407, 8, 9, 10, 11, 12, 13cdlemg38 40813 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄) ∧ (((𝐹𝑃) ≠ 𝑃 ∧ (𝐺𝑃) ≠ 𝑃) ∧ (𝑅𝐹) ≠ (𝑅𝐺))) → ((𝑃 (𝐹‘(𝐺𝑃))) 𝑊) = ((𝑄 (𝐹‘(𝐺𝑄))) 𝑊))
4132, 34, 36, 37, 38, 39, 40syl312anc 1393 . . 3 (((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) ∧ ((𝐹𝑃) ≠ 𝑃 ∧ (𝐺𝑃) ≠ 𝑃)) → ((𝑃 (𝐹‘(𝐺𝑃))) 𝑊) = ((𝑄 (𝐹‘(𝐺𝑄))) 𝑊))
4224, 31, 41pm2.61da2ne 3016 . 2 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) ∧ (𝑅𝐹) ≠ (𝑅𝐺)) → ((𝑃 (𝐹‘(𝐺𝑃))) 𝑊) = ((𝑄 (𝐹‘(𝐺𝑄))) 𝑊))
4315, 42pm2.61dane 3015 1 (((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝐹𝑇𝐺𝑇𝑃𝑄)) → ((𝑃 (𝐹‘(𝐺𝑃))) 𝑊) = ((𝑄 (𝐹‘(𝐺𝑄))) 𝑊))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wa 395  w3a 1086   = wceq 1541  wcel 2111  wne 2928   class class class wbr 5089  cfv 6481  (class class class)co 7346  lecple 17168  joincjn 18217  meetcmee 18218  Atomscatm 39361  HLchlt 39448  LHypclh 40082  LTrncltrn 40199  trLctrl 40256
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1796  ax-4 1810  ax-5 1911  ax-6 1968  ax-7 2009  ax-8 2113  ax-9 2121  ax-10 2144  ax-11 2160  ax-12 2180  ax-ext 2703  ax-rep 5215  ax-sep 5232  ax-nul 5242  ax-pow 5301  ax-pr 5368  ax-un 7668  ax-riotaBAD 39051
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3or 1087  df-3an 1088  df-tru 1544  df-fal 1554  df-ex 1781  df-nf 1785  df-sb 2068  df-mo 2535  df-eu 2564  df-clab 2710  df-cleq 2723  df-clel 2806  df-nfc 2881  df-ne 2929  df-ral 3048  df-rex 3057  df-rmo 3346  df-reu 3347  df-rab 3396  df-v 3438  df-sbc 3737  df-csb 3846  df-dif 3900  df-un 3902  df-in 3904  df-ss 3914  df-nul 4281  df-if 4473  df-pw 4549  df-sn 4574  df-pr 4576  df-op 4580  df-uni 4857  df-iun 4941  df-iin 4942  df-br 5090  df-opab 5152  df-mpt 5171  df-id 5509  df-xp 5620  df-rel 5621  df-cnv 5622  df-co 5623  df-dm 5624  df-rn 5625  df-res 5626  df-ima 5627  df-iota 6437  df-fun 6483  df-fn 6484  df-f 6485  df-f1 6486  df-fo 6487  df-f1o 6488  df-fv 6489  df-riota 7303  df-ov 7349  df-oprab 7350  df-mpo 7351  df-1st 7921  df-2nd 7922  df-undef 8203  df-map 8752  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 39274  df-ol 39276  df-oml 39277  df-covers 39364  df-ats 39365  df-atl 39396  df-cvlat 39420  df-hlat 39449  df-llines 39596  df-lplanes 39597  df-lvols 39598  df-lines 39599  df-psubsp 39601  df-pmap 39602  df-padd 39894  df-lhyp 40086  df-laut 40087  df-ldil 40202  df-ltrn 40203  df-trl 40257
This theorem is referenced by:  cdlemg40  40815
  Copyright terms: Public domain W3C validator