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

Theorem cdlemb 34557
 Description: Given two atoms not less than or equal to an element covered by 1, there is a third. Lemma B in [Crawley] p. 112. (Contributed by NM, 8-May-2012.)
Hypotheses
Ref Expression
cdlemb.b 𝐵 = (Base‘𝐾)
cdlemb.l = (le‘𝐾)
cdlemb.j = (join‘𝐾)
cdlemb.u 1 = (1.‘𝐾)
cdlemb.c 𝐶 = ( ⋖ ‘𝐾)
cdlemb.a 𝐴 = (Atoms‘𝐾)
Assertion
Ref Expression
cdlemb (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → ∃𝑟𝐴𝑟 𝑋 ∧ ¬ 𝑟 (𝑃 𝑄)))
Distinct variable groups:   𝐴,𝑟   𝐵,𝑟   𝐶,𝑟   ,𝑟   𝐾,𝑟   ,𝑟   𝑃,𝑟   𝑄,𝑟   1 ,𝑟   𝑋,𝑟

Proof of Theorem cdlemb
Dummy variable 𝑢 is distinct from all other variables.
StepHypRef Expression
1 simp11 1089 . . 3 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → 𝐾 ∈ HL)
2 simp12 1090 . . . 4 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → 𝑃𝐴)
3 simp13 1091 . . . 4 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → 𝑄𝐴)
4 simp2l 1085 . . . 4 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → 𝑋𝐵)
5 simp2r 1086 . . . 4 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → 𝑃𝑄)
6 simp31 1095 . . . 4 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → 𝑋𝐶 1 )
7 simp32 1096 . . . 4 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → ¬ 𝑃 𝑋)
8 cdlemb.b . . . . 5 𝐵 = (Base‘𝐾)
9 cdlemb.l . . . . 5 = (le‘𝐾)
10 cdlemb.j . . . . 5 = (join‘𝐾)
11 eqid 2621 . . . . 5 (meet‘𝐾) = (meet‘𝐾)
12 cdlemb.u . . . . 5 1 = (1.‘𝐾)
13 cdlemb.c . . . . 5 𝐶 = ( ⋖ ‘𝐾)
14 cdlemb.a . . . . 5 𝐴 = (Atoms‘𝐾)
158, 9, 10, 11, 12, 13, 141cvrat 34239 . . . 4 ((𝐾 ∈ HL ∧ (𝑃𝐴𝑄𝐴𝑋𝐵) ∧ (𝑃𝑄𝑋𝐶 1 ∧ ¬ 𝑃 𝑋)) → ((𝑃 𝑄)(meet‘𝐾)𝑋) ∈ 𝐴)
161, 2, 3, 4, 5, 6, 7, 15syl133anc 1346 . . 3 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → ((𝑃 𝑄)(meet‘𝐾)𝑋) ∈ 𝐴)
17 hllat 34127 . . . . . 6 (𝐾 ∈ HL → 𝐾 ∈ Lat)
181, 17syl 17 . . . . 5 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → 𝐾 ∈ Lat)
198, 14atbase 34053 . . . . . . 7 (𝑃𝐴𝑃𝐵)
202, 19syl 17 . . . . . 6 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → 𝑃𝐵)
218, 14atbase 34053 . . . . . . 7 (𝑄𝐴𝑄𝐵)
223, 21syl 17 . . . . . 6 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → 𝑄𝐵)
238, 10latjcl 16972 . . . . . 6 ((𝐾 ∈ Lat ∧ 𝑃𝐵𝑄𝐵) → (𝑃 𝑄) ∈ 𝐵)
2418, 20, 22, 23syl3anc 1323 . . . . 5 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → (𝑃 𝑄) ∈ 𝐵)
258, 9, 11latmle2 16998 . . . . 5 ((𝐾 ∈ Lat ∧ (𝑃 𝑄) ∈ 𝐵𝑋𝐵) → ((𝑃 𝑄)(meet‘𝐾)𝑋) 𝑋)
2618, 24, 4, 25syl3anc 1323 . . . 4 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → ((𝑃 𝑄)(meet‘𝐾)𝑋) 𝑋)
27 eqid 2621 . . . . 5 (lt‘𝐾) = (lt‘𝐾)
288, 9, 27, 12, 13, 141cvratlt 34237 . . . 4 (((𝐾 ∈ HL ∧ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∈ 𝐴𝑋𝐵) ∧ (𝑋𝐶 1 ∧ ((𝑃 𝑄)(meet‘𝐾)𝑋) 𝑋)) → ((𝑃 𝑄)(meet‘𝐾)𝑋)(lt‘𝐾)𝑋)
291, 16, 4, 6, 26, 28syl32anc 1331 . . 3 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → ((𝑃 𝑄)(meet‘𝐾)𝑋)(lt‘𝐾)𝑋)
308, 27, 142atlt 34202 . . 3 (((𝐾 ∈ HL ∧ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∈ 𝐴𝑋𝐵) ∧ ((𝑃 𝑄)(meet‘𝐾)𝑋)(lt‘𝐾)𝑋) → ∃𝑢𝐴 (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))
311, 16, 4, 29, 30syl31anc 1326 . 2 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → ∃𝑢𝐴 (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))
32 simpl11 1134 . . . 4 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → 𝐾 ∈ HL)
33 simpl12 1135 . . . 4 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → 𝑃𝐴)
34 simprl 793 . . . 4 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → 𝑢𝐴)
35 simpl32 1141 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → ¬ 𝑃 𝑋)
36 simprrr 804 . . . . . . . 8 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → 𝑢(lt‘𝐾)𝑋)
37 simpl2l 1112 . . . . . . . . 9 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → 𝑋𝐵)
389, 27pltle 16882 . . . . . . . . 9 ((𝐾 ∈ HL ∧ 𝑢𝐴𝑋𝐵) → (𝑢(lt‘𝐾)𝑋𝑢 𝑋))
3932, 34, 37, 38syl3anc 1323 . . . . . . . 8 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → (𝑢(lt‘𝐾)𝑋𝑢 𝑋))
4036, 39mpd 15 . . . . . . 7 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → 𝑢 𝑋)
41 breq1 4616 . . . . . . 7 (𝑃 = 𝑢 → (𝑃 𝑋𝑢 𝑋))
4240, 41syl5ibrcom 237 . . . . . 6 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → (𝑃 = 𝑢𝑃 𝑋))
4342necon3bd 2804 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → (¬ 𝑃 𝑋𝑃𝑢))
4435, 43mpd 15 . . . 4 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → 𝑃𝑢)
459, 10, 14hlsupr 34149 . . . 4 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑢𝐴) ∧ 𝑃𝑢) → ∃𝑟𝐴 (𝑟𝑃𝑟𝑢𝑟 (𝑃 𝑢)))
4632, 33, 34, 44, 45syl31anc 1326 . . 3 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → ∃𝑟𝐴 (𝑟𝑃𝑟𝑢𝑟 (𝑃 𝑢)))
47 eqid 2621 . . . . . . . 8 ((𝑃 𝑄)(meet‘𝐾)𝑋) = ((𝑃 𝑄)(meet‘𝐾)𝑋)
488, 9, 10, 12, 13, 14, 27, 11, 47cdlemblem 34556 . . . . . . 7 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋)) ∧ (𝑟𝐴 ∧ (𝑟𝑃𝑟𝑢𝑟 (𝑃 𝑢)))) → (¬ 𝑟 𝑋 ∧ ¬ 𝑟 (𝑃 𝑄)))
49483exp 1261 . . . . . 6 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → ((𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋)) → ((𝑟𝐴 ∧ (𝑟𝑃𝑟𝑢𝑟 (𝑃 𝑢))) → (¬ 𝑟 𝑋 ∧ ¬ 𝑟 (𝑃 𝑄)))))
5049exp4a 632 . . . . 5 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → ((𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋)) → (𝑟𝐴 → ((𝑟𝑃𝑟𝑢𝑟 (𝑃 𝑢)) → (¬ 𝑟 𝑋 ∧ ¬ 𝑟 (𝑃 𝑄))))))
5150imp 445 . . . 4 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → (𝑟𝐴 → ((𝑟𝑃𝑟𝑢𝑟 (𝑃 𝑢)) → (¬ 𝑟 𝑋 ∧ ¬ 𝑟 (𝑃 𝑄)))))
5251reximdvai 3009 . . 3 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → (∃𝑟𝐴 (𝑟𝑃𝑟𝑢𝑟 (𝑃 𝑢)) → ∃𝑟𝐴𝑟 𝑋 ∧ ¬ 𝑟 (𝑃 𝑄))))
5346, 52mpd 15 . 2 ((((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) ∧ (𝑢𝐴 ∧ (𝑢 ≠ ((𝑃 𝑄)(meet‘𝐾)𝑋) ∧ 𝑢(lt‘𝐾)𝑋))) → ∃𝑟𝐴𝑟 𝑋 ∧ ¬ 𝑟 (𝑃 𝑄)))
5431, 53rexlimddv 3028 1 (((𝐾 ∈ HL ∧ 𝑃𝐴𝑄𝐴) ∧ (𝑋𝐵𝑃𝑄) ∧ (𝑋𝐶 1 ∧ ¬ 𝑃 𝑋 ∧ ¬ 𝑄 𝑋)) → ∃𝑟𝐴𝑟 𝑋 ∧ ¬ 𝑟 (𝑃 𝑄)))
 Colors of variables: wff setvar class Syntax hints:  ¬ wn 3   → wi 4   ∧ wa 384   ∧ w3a 1036   = wceq 1480   ∈ wcel 1987   ≠ wne 2790  ∃wrex 2908   class class class wbr 4613  ‘cfv 5847  (class class class)co 6604  Basecbs 15781  lecple 15869  ltcplt 16862  joincjn 16865  meetcmee 16866  1.cp1 16959  Latclat 16966   ⋖ ccvr 34026  Atomscatm 34027  HLchlt 34114 This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1719  ax-4 1734  ax-5 1836  ax-6 1885  ax-7 1932  ax-8 1989  ax-9 1996  ax-10 2016  ax-11 2031  ax-12 2044  ax-13 2245  ax-ext 2601  ax-rep 4731  ax-sep 4741  ax-nul 4749  ax-pow 4803  ax-pr 4867  ax-un 6902 This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3an 1038  df-tru 1483  df-ex 1702  df-nf 1707  df-sb 1878  df-eu 2473  df-mo 2474  df-clab 2608  df-cleq 2614  df-clel 2617  df-nfc 2750  df-ne 2791  df-ral 2912  df-rex 2913  df-reu 2914  df-rab 2916  df-v 3188  df-sbc 3418  df-csb 3515  df-dif 3558  df-un 3560  df-in 3562  df-ss 3569  df-nul 3892  df-if 4059  df-pw 4132  df-sn 4149  df-pr 4151  df-op 4155  df-uni 4403  df-iun 4487  df-br 4614  df-opab 4674  df-mpt 4675  df-id 4989  df-xp 5080  df-rel 5081  df-cnv 5082  df-co 5083  df-dm 5084  df-rn 5085  df-res 5086  df-ima 5087  df-iota 5810  df-fun 5849  df-fn 5850  df-f 5851  df-f1 5852  df-fo 5853  df-f1o 5854  df-fv 5855  df-riota 6565  df-ov 6607  df-oprab 6608  df-preset 16849  df-poset 16867  df-plt 16879  df-lub 16895  df-glb 16896  df-join 16897  df-meet 16898  df-p0 16960  df-p1 16961  df-lat 16967  df-clat 17029  df-oposet 33940  df-ol 33942  df-oml 33943  df-covers 34030  df-ats 34031  df-atl 34062  df-cvlat 34086  df-hlat 34115 This theorem is referenced by:  cdlemb2  34804
 Copyright terms: Public domain W3C validator