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

Theorem cdleme26f2ALTN 41166
Description: Part of proof of Lemma E in [Crawley] p. 113. cdleme26fALTN 41164 with s and t swapped (this case is not mentioned by them). If s t v, then f(s) fs(t) v. TODO: FIX COMMENT. (Contributed by NM, 1-Feb-2013.) (New usage is discouraged.)
Hypotheses
Ref Expression
cdleme26.b 𝐵 = (Base‘𝐾)
cdleme26.l = (le‘𝐾)
cdleme26.j = (join‘𝐾)
cdleme26.m = (meet‘𝐾)
cdleme26.a 𝐴 = (Atoms‘𝐾)
cdleme26.h 𝐻 = (LHyp‘𝐾)
cdleme26f2.u 𝑈 = ((𝑃 𝑄) 𝑊)
cdleme26f2.f 𝐺 = ((𝑠 𝑈) (𝑄 ((𝑃 𝑠) 𝑊)))
cdleme26f2.n 𝑂 = ((𝑃 𝑄) (𝐺 ((𝑇 𝑠) 𝑊)))
cdleme26f2.e 𝐸 = (𝑢𝐵𝑠𝐴 ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) → 𝑢 = 𝑂))
Assertion
Ref Expression
cdleme26f2ALTN ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → 𝐺 (𝐸 𝑉))
Distinct variable groups:   𝑢,𝑠,𝐴   𝐵,𝑠,𝑢   𝐻,𝑠   ,𝑠,𝑢   𝐾,𝑠   ,𝑠,𝑢   ,𝑠,𝑢   𝑢,𝑂   𝑃,𝑠,𝑢   𝑄,𝑠,𝑢   𝑇,𝑠,𝑢   𝑈,𝑠,𝑢   𝑊,𝑠,𝑢
Allowed substitution hints:   𝐸(𝑢, 𝑠)   𝐺(𝑢, 𝑠)   𝐻(𝑢)   𝐾(𝑢)   𝑂(𝑠)   𝑉(𝑢, 𝑠)

Proof of Theorem cdleme26f2ALTN
StepHypRef Expression
1 simp11 1222 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → (𝐾 ∈ HL ∧ 𝑊𝐻))
2 simp23 1227 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → (𝑇𝐴 ∧ ¬ 𝑇 𝑊))
3 simp31r 1316 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → ¬ 𝑠 (𝑃 𝑄))
4 simp12r 1306 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → 𝑇 (𝑃 𝑄))
5 simp12l 1305 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → 𝑃𝑄)
63, 4, 53jca 1146 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → (¬ 𝑠 (𝑃 𝑄) ∧ 𝑇 (𝑃 𝑄) ∧ 𝑃𝑄))
7 simp21 1225 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → (𝑃𝐴 ∧ ¬ 𝑃 𝑊))
8 simp22 1226 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → (𝑄𝐴 ∧ ¬ 𝑄 𝑊))
9 simp13 1224 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → (𝑠𝐴 ∧ ¬ 𝑠 𝑊))
10 simp32 1229 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → (𝑠𝑇𝑠 (𝑇 𝑉)))
11 simp33 1230 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → (𝑉𝐴𝑉 𝑊))
12 cdleme26.l . . . 4 = (le‘𝐾)
13 cdleme26.j . . . 4 = (join‘𝐾)
14 cdleme26.m . . . 4 = (meet‘𝐾)
15 cdleme26.a . . . 4 𝐴 = (Atoms‘𝐾)
16 cdleme26.h . . . 4 𝐻 = (LHyp‘𝐾)
17 cdleme26f2.u . . . 4 𝑈 = ((𝑃 𝑄) 𝑊)
18 cdleme26f2.f . . . 4 𝐺 = ((𝑠 𝑈) (𝑄 ((𝑃 𝑠) 𝑊)))
19 cdleme26f2.n . . . 4 𝑂 = ((𝑃 𝑄) (𝐺 ((𝑇 𝑠) 𝑊)))
2012, 13, 14, 15, 16, 17, 18, 19cdleme22f2 41149 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊) ∧ (¬ 𝑠 (𝑃 𝑄) ∧ 𝑇 (𝑃 𝑄) ∧ 𝑃𝑄)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ ((𝑠𝐴 ∧ ¬ 𝑠 𝑊) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → 𝐺 (𝑂 𝑉))
211, 2, 6, 7, 8, 9, 10, 11, 20syl323anc 1427 . 2 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → 𝐺 (𝑂 𝑉))
22 simp23l 1313 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → 𝑇𝐴)
23 simp23r 1314 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → ¬ 𝑇 𝑊)
24 cdleme26.b . . . . . 6 𝐵 = (Base‘𝐾)
25 cdleme26f2.e . . . . . 6 𝐸 = (𝑢𝐵𝑠𝐴 ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) → 𝑢 = 𝑂))
2624, 12, 13, 14, 15, 16, 17, 18, 19, 25cdleme25cl 41159 . . . . 5 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊)) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊) ∧ (𝑃𝑄𝑇 (𝑃 𝑄))) → 𝐸𝐵)
271, 7, 8, 22, 23, 5, 4, 26syl322anc 1425 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → 𝐸𝐵)
28 simp13l 1307 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → 𝑠𝐴)
29 simp31 1228 . . . 4 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → (¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)))
3024fvexi 6895 . . . . 5 𝐵 ∈ V
3130, 25riotasv 39761 . . . 4 ((𝐸𝐵𝑠𝐴 ∧ (¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄))) → 𝐸 = 𝑂)
3227, 28, 29, 31syl3anc 1398 . . 3 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → 𝐸 = 𝑂)
3332oveq1d 7425 . 2 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → (𝐸 𝑉) = (𝑂 𝑉))
3421, 33breqtrrd 5139 1 ((((𝐾 ∈ HL ∧ 𝑊𝐻) ∧ (𝑃𝑄𝑇 (𝑃 𝑄)) ∧ (𝑠𝐴 ∧ ¬ 𝑠 𝑊)) ∧ ((𝑃𝐴 ∧ ¬ 𝑃 𝑊) ∧ (𝑄𝐴 ∧ ¬ 𝑄 𝑊) ∧ (𝑇𝐴 ∧ ¬ 𝑇 𝑊)) ∧ ((¬ 𝑠 𝑊 ∧ ¬ 𝑠 (𝑃 𝑄)) ∧ (𝑠𝑇𝑠 (𝑇 𝑉)) ∧ (𝑉𝐴𝑉 𝑊))) → 𝐺 (𝐸 𝑉))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:  ¬ wn 3  wi 4  wa 400  w3a 1103   = wceq 1570  wcel 2143  wne 2958  wral 3079   class class class wbr 5109  cfv 6536  crio 7366  (class class class)co 7410  Basecbs 17273  lecple 17321  joincjn 18371  meetcmee 18372  Atomscatm 40065  HLchlt 40152  LHypclh 40786
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1825  ax-4 1839  ax-5 1940  ax-6 1997  ax-7 2038  ax-8 2145  ax-9 2153  ax-10 2176  ax-11 2192  ax-12 2213  ax-ext 2735  ax-rep 5238  ax-sep 5257  ax-nul 5269  ax-pow 5336  ax-pr 5404  ax-un 7732  ax-riotaBAD 39755
This proof depends on definitions:  df-bi 210  df-an 401  df-or 861  df-3or 1104  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1810  df-nf 1814  df-sb 2097  df-mo 2567  df-eu 2597  df-clab 2742  df-cleq 2755  df-clel 2838  df-nfc 2912  df-ne 2959  df-ral 3080  df-rex 3090  df-rmo 3369  df-reu 3370  df-rab 3417  df-v 3457  df-sbc 3745  df-csb 3854  df-dif 3908  df-un 3910  df-in 3912  df-ss 3922  df-nul 4287  df-if 4488  df-pw 4564  df-sn 4590  df-pr 4592  df-op 4596  df-uni 4873  df-iun 4958  df-iin 4959  df-br 5110  df-opab 5174  df-mpt 5193  df-id 5556  df-xp 5667  df-rel 5668  df-cnv 5669  df-co 5670  df-dm 5671  df-rn 5672  df-res 5673  df-ima 5674  df-iota 6492  df-fun 6538  df-fn 6539  df-f 6540  df-f1 6541  df-fo 6542  df-f1o 6543  df-fv 6544  df-riota 7367  df-ov 7413  df-oprab 7414  df-mpo 7415  df-1st 7982  df-2nd 7983  df-undef 8265  df-proset 18354  df-poset 18373  df-plt 18388  df-lub 18404  df-glb 18405  df-join 18406  df-meet 18407  df-p0 18483  df-p1 18484  df-lat 18492  df-clat 18559  df-oposet 39978  df-ol 39980  df-oml 39981  df-covers 40068  df-ats 40069  df-atl 40100  df-cvlat 40124  df-hlat 40153  df-llines 40300  df-lplanes 40301  df-lvols 40302  df-lines 40303  df-psubsp 40305  df-pmap 40306  df-padd 40598  df-lhyp 40790
This theorem is used by: (None)
  Copyright terms: Public domain W3C validator