Users' Mathboxes Mathbox for Norm Megill < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  cdleme30a Unicode version

Theorem cdleme30a 29368
Description: Part of proof of Lemma E in [Crawley] p. 113. (Contributed by NM, 9-Feb-2013.)
Hypotheses
Ref Expression
cdleme30.b  |-  B  =  ( Base `  K
)
cdleme30.l  |-  .<_  =  ( le `  K )
cdleme30.j  |-  .\/  =  ( join `  K )
cdleme30.m  |-  ./\  =  ( meet `  K )
cdleme30.a  |-  A  =  ( Atoms `  K )
cdleme30.h  |-  H  =  ( LHyp `  K
)
Assertion
Ref Expression
cdleme30a  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( s  .\/  ( Y  ./\  W ) )  =  Y )

Proof of Theorem cdleme30a
StepHypRef Expression
1 simp1l 984 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  K  e.  HL )
2 hllat 28354 . . . 4  |-  ( K  e.  HL  ->  K  e.  Lat )
31, 2syl 17 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  K  e.  Lat )
4 simp21 993 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  s  e.  A
)
5 cdleme30.b . . . . 5  |-  B  =  ( Base `  K
)
6 cdleme30.a . . . . 5  |-  A  =  ( Atoms `  K )
75, 6atbase 28280 . . . 4  |-  ( s  e.  A  ->  s  e.  B )
84, 7syl 17 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  s  e.  B
)
9 simp23 995 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  Y  e.  B
)
10 simp1r 985 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  W  e.  H
)
11 cdleme30.h . . . . . 6  |-  H  =  ( LHyp `  K
)
125, 11lhpbase 28988 . . . . 5  |-  ( W  e.  H  ->  W  e.  B )
1310, 12syl 17 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  W  e.  B
)
14 cdleme30.m . . . . 5  |-  ./\  =  ( meet `  K )
155, 14latmcl 14001 . . . 4  |-  ( ( K  e.  Lat  /\  Y  e.  B  /\  W  e.  B )  ->  ( Y  ./\  W
)  e.  B )
163, 9, 13, 15syl3anc 1187 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( Y  ./\  W )  e.  B )
17 simp22l 1079 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  X  e.  B
)
18 cdleme30.j . . . 4  |-  .\/  =  ( join `  K )
195, 18latjass 14045 . . 3  |-  ( ( K  e.  Lat  /\  ( s  e.  B  /\  ( Y  ./\  W
)  e.  B  /\  X  e.  B )
)  ->  ( (
s  .\/  ( Y  ./\ 
W ) )  .\/  X )  =  ( s 
.\/  ( ( Y 
./\  W )  .\/  X ) ) )
203, 8, 16, 17, 19syl13anc 1189 . 2  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( ( s 
.\/  ( Y  ./\  W ) )  .\/  X
)  =  ( s 
.\/  ( ( Y 
./\  W )  .\/  X ) ) )
21 simp3l 988 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( s  .\/  ( X  ./\  W ) )  =  X )
22 simp3r 989 . . . . . 6  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  X  .<_  Y )
23 cdleme30.l . . . . . . . 8  |-  .<_  =  ( le `  K )
245, 23, 14latmlem1 14031 . . . . . . 7  |-  ( ( K  e.  Lat  /\  ( X  e.  B  /\  Y  e.  B  /\  W  e.  B
) )  ->  ( X  .<_  Y  ->  ( X  ./\  W )  .<_  ( Y  ./\  W ) ) )
253, 17, 9, 13, 24syl13anc 1189 . . . . . 6  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( X  .<_  Y  ->  ( X  ./\  W )  .<_  ( Y  ./\ 
W ) ) )
2622, 25mpd 16 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( X  ./\  W )  .<_  ( Y  ./\ 
W ) )
275, 14latmcl 14001 . . . . . . 7  |-  ( ( K  e.  Lat  /\  X  e.  B  /\  W  e.  B )  ->  ( X  ./\  W
)  e.  B )
283, 17, 13, 27syl3anc 1187 . . . . . 6  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( X  ./\  W )  e.  B )
295, 23, 18latjlej2 14016 . . . . . 6  |-  ( ( K  e.  Lat  /\  ( ( X  ./\  W )  e.  B  /\  ( Y  ./\  W )  e.  B  /\  s  e.  B ) )  -> 
( ( X  ./\  W )  .<_  ( Y  ./\ 
W )  ->  (
s  .\/  ( X  ./\ 
W ) )  .<_  ( s  .\/  ( Y  ./\  W ) ) ) )
303, 28, 16, 8, 29syl13anc 1189 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( ( X 
./\  W )  .<_  ( Y  ./\  W )  ->  ( s  .\/  ( X  ./\  W ) )  .<_  ( s  .\/  ( Y  ./\  W
) ) ) )
3126, 30mpd 16 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( s  .\/  ( X  ./\  W ) )  .<_  ( s  .\/  ( Y  ./\  W
) ) )
3221, 31eqbrtrrd 3942 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  X  .<_  ( s 
.\/  ( Y  ./\  W ) ) )
335, 18latjcl 14000 . . . . 5  |-  ( ( K  e.  Lat  /\  s  e.  B  /\  ( Y  ./\  W )  e.  B )  -> 
( s  .\/  ( Y  ./\  W ) )  e.  B )
343, 8, 16, 33syl3anc 1187 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( s  .\/  ( Y  ./\  W ) )  e.  B )
355, 23, 18latleeqj2 14014 . . . 4  |-  ( ( K  e.  Lat  /\  X  e.  B  /\  ( s  .\/  ( Y  ./\  W ) )  e.  B )  -> 
( X  .<_  ( s 
.\/  ( Y  ./\  W ) )  <->  ( (
s  .\/  ( Y  ./\ 
W ) )  .\/  X )  =  ( s 
.\/  ( Y  ./\  W ) ) ) )
363, 17, 34, 35syl3anc 1187 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( X  .<_  ( s  .\/  ( Y 
./\  W ) )  <-> 
( ( s  .\/  ( Y  ./\  W ) )  .\/  X )  =  ( s  .\/  ( Y  ./\  W ) ) ) )
3732, 36mpbid 203 . 2  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( ( s 
.\/  ( Y  ./\  W ) )  .\/  X
)  =  ( s 
.\/  ( Y  ./\  W ) ) )
38 simp1 960 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( K  e.  HL  /\  W  e.  H ) )
395, 23, 18, 14, 11lhpmod2i2 29028 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( Y  e.  B  /\  X  e.  B )  /\  X  .<_  Y )  ->  (
( Y  ./\  W
)  .\/  X )  =  ( Y  ./\  ( W  .\/  X ) ) )
4038, 9, 17, 22, 39syl121anc 1192 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( ( Y 
./\  W )  .\/  X )  =  ( Y 
./\  ( W  .\/  X ) ) )
4140oveq2d 5726 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( s  .\/  ( ( Y  ./\  W )  .\/  X ) )  =  ( s 
.\/  ( Y  ./\  ( W  .\/  X ) ) ) )
42 simp22 994 . . . . . . 7  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( X  e.  B  /\  -.  X  .<_  W ) )
43 eqid 2253 . . . . . . . 8  |-  ( 1.
`  K )  =  ( 1. `  K
)
445, 23, 18, 43, 11lhpj1 29012 . . . . . . 7  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( X  e.  B  /\  -.  X  .<_  W ) )  -> 
( W  .\/  X
)  =  ( 1.
`  K ) )
4538, 42, 44syl2anc 645 . . . . . 6  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( W  .\/  X )  =  ( 1.
`  K ) )
4645oveq2d 5726 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( Y  ./\  ( W  .\/  X ) )  =  ( Y 
./\  ( 1. `  K ) ) )
47 hlol 28352 . . . . . . 7  |-  ( K  e.  HL  ->  K  e.  OL )
481, 47syl 17 . . . . . 6  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  K  e.  OL )
495, 14, 43olm11 28218 . . . . . 6  |-  ( ( K  e.  OL  /\  Y  e.  B )  ->  ( Y  ./\  ( 1. `  K ) )  =  Y )
5048, 9, 49syl2anc 645 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( Y  ./\  ( 1. `  K ) )  =  Y )
5146, 50eqtrd 2285 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( Y  ./\  ( W  .\/  X ) )  =  Y )
5251oveq2d 5726 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( s  .\/  ( Y  ./\  ( W 
.\/  X ) ) )  =  ( s 
.\/  Y ) )
535, 23, 18latlej1 14010 . . . . . . 7  |-  ( ( K  e.  Lat  /\  s  e.  B  /\  ( X  ./\  W )  e.  B )  -> 
s  .<_  ( s  .\/  ( X  ./\  W ) ) )
543, 8, 28, 53syl3anc 1187 . . . . . 6  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  s  .<_  ( s 
.\/  ( X  ./\  W ) ) )
5554, 21breqtrd 3944 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  s  .<_  X )
565, 23, 3, 8, 17, 9, 55, 22lattrd 14008 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  s  .<_  Y )
575, 23, 18latleeqj1 14013 . . . . 5  |-  ( ( K  e.  Lat  /\  s  e.  B  /\  Y  e.  B )  ->  ( s  .<_  Y  <->  ( s  .\/  Y )  =  Y ) )
583, 8, 9, 57syl3anc 1187 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( s  .<_  Y 
<->  ( s  .\/  Y
)  =  Y ) )
5956, 58mpbid 203 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( s  .\/  Y )  =  Y )
6041, 52, 593eqtrd 2289 . 2  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( s  .\/  ( ( Y  ./\  W )  .\/  X ) )  =  Y )
6120, 37, 603eqtr3d 2293 1  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( s  e.  A  /\  ( X  e.  B  /\  -.  X  .<_  W )  /\  Y  e.  B )  /\  ( ( s  .\/  ( X  ./\  W ) )  =  X  /\  X  .<_  Y ) )  ->  ( s  .\/  ( Y  ./\  W ) )  =  Y )
Colors of variables: wff set class
Syntax hints:   -. wn 5    -> wi 6    <-> wb 178    /\ wa 360    /\ w3a 939    = wceq 1619    e. wcel 1621   class class class wbr 3920   ` cfv 4592  (class class class)co 5710   Basecbs 13022   lecple 13089   joincjn 13922   meetcmee 13923   1.cp1 13988   Latclat 13995   OLcol 28165   Atomscatm 28254   HLchlt 28341   LHypclh 28974
This theorem is referenced by:  cdleme32b  29432
This theorem was proved from axioms:  ax-1 7  ax-2 8  ax-3 9  ax-mp 10  ax-5 1533  ax-6 1534  ax-7 1535  ax-gen 1536  ax-8 1623  ax-11 1624  ax-13 1625  ax-14 1626  ax-17 1628  ax-12o 1664  ax-10 1678  ax-9 1684  ax-4 1692  ax-16 1926  ax-ext 2234  ax-rep 4028  ax-sep 4038  ax-nul 4046  ax-pow 4082  ax-pr 4108  ax-un 4403
This theorem depends on definitions:  df-bi 179  df-or 361  df-an 362  df-3an 941  df-tru 1315  df-ex 1538  df-nf 1540  df-sb 1883  df-eu 2118  df-mo 2119  df-clab 2240  df-cleq 2246  df-clel 2249  df-nfc 2374  df-ne 2414  df-nel 2415  df-ral 2513  df-rex 2514  df-reu 2515  df-rab 2516  df-v 2729  df-sbc 2922  df-csb 3010  df-dif 3081  df-un 3083  df-in 3085  df-ss 3089  df-nul 3363  df-if 3471  df-pw 3532  df-sn 3550  df-pr 3551  df-op 3553  df-uni 3728  df-iun 3805  df-iin 3806  df-br 3921  df-opab 3975  df-mpt 3976  df-id 4202  df-xp 4594  df-rel 4595  df-cnv 4596  df-co 4597  df-dm 4598  df-rn 4599  df-res 4600  df-ima 4601  df-fun 4602  df-fn 4603  df-f 4604  df-f1 4605  df-fo 4606  df-f1o 4607  df-fv 4608  df-ov 5713  df-oprab 5714  df-mpt2 5715  df-1st 5974  df-2nd 5975  df-iota 6143  df-undef 6182  df-riota 6190  df-poset 13924  df-plt 13936  df-lub 13952  df-glb 13953  df-join 13954  df-meet 13955  df-p0 13989  df-p1 13990  df-lat 13996  df-clat 14058  df-oposet 28167  df-ol 28169  df-oml 28170  df-covers 28257  df-ats 28258  df-atl 28289  df-cvlat 28313  df-hlat 28342  df-psubsp 28493  df-pmap 28494  df-padd 28786  df-lhyp 28978
  Copyright terms: Public domain W3C validator