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

Theorem cdleme41sn3a 31304
Description: Show that  [_ R  /  s ]_ N is under  P 
.\/  Q when  R  .<_  ( P 
.\/  Q ). (Contributed by NM, 19-Mar-2013.)
Hypotheses
Ref Expression
cdleme32.b  |-  B  =  ( Base `  K
)
cdleme32.l  |-  .<_  =  ( le `  K )
cdleme32.j  |-  .\/  =  ( join `  K )
cdleme32.m  |-  ./\  =  ( meet `  K )
cdleme32.a  |-  A  =  ( Atoms `  K )
cdleme32.h  |-  H  =  ( LHyp `  K
)
cdleme32.u  |-  U  =  ( ( P  .\/  Q )  ./\  W )
cdleme32.c  |-  C  =  ( ( s  .\/  U )  ./\  ( Q  .\/  ( ( P  .\/  s )  ./\  W
) ) )
cdleme32.d  |-  D  =  ( ( t  .\/  U )  ./\  ( Q  .\/  ( ( P  .\/  t )  ./\  W
) ) )
cdleme32.e  |-  E  =  ( ( P  .\/  Q )  ./\  ( D  .\/  ( ( s  .\/  t )  ./\  W
) ) )
cdleme32.i  |-  I  =  ( iota_ y  e.  B A. t  e.  A  ( ( -.  t  .<_  W  /\  -.  t  .<_  ( P  .\/  Q
) )  ->  y  =  E ) )
cdleme32.n  |-  N  =  if ( s  .<_  ( P  .\/  Q ) ,  I ,  C
)
cdleme32a1.y  |-  Y  =  ( ( P  .\/  Q )  ./\  ( D  .\/  ( ( R  .\/  t )  ./\  W
) ) )
cdleme32a1.z  |-  Z  =  ( iota_ y  e.  B A. t  e.  A  ( ( -.  t  .<_  W  /\  -.  t  .<_  ( P  .\/  Q
) )  ->  y  =  Y ) )
Assertion
Ref Expression
cdleme41sn3a  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  [_ R  / 
s ]_ N  .<_  ( P 
.\/  Q ) )
Distinct variable groups:    t, s,
y, A    B, s,
t, y    y, C    D, s, y    y, E    H, s, t    .\/ , s,
t, y    K, s,
t    .<_ , s, t, y    ./\ , s, t, y    P, s, t, y    Q, s, t, y    U, s, t, y    W, s, t, y    R, s, t, y    y, H   
y, K    y, Y
Allowed substitution hints:    C( t, s)    D( t)    E( t, s)    I( y, t, s)    N( y, t, s)    Y( t, s)    Z( y, t, s)

Proof of Theorem cdleme41sn3a
StepHypRef Expression
1 simp2rl 1027 . . 3  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  R  e.  A )
2 simp3 960 . . 3  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  R  .<_  ( P  .\/  Q ) )
3 cdleme32.e . . . 4  |-  E  =  ( ( P  .\/  Q )  ./\  ( D  .\/  ( ( s  .\/  t )  ./\  W
) ) )
4 cdleme32.i . . . 4  |-  I  =  ( iota_ y  e.  B A. t  e.  A  ( ( -.  t  .<_  W  /\  -.  t  .<_  ( P  .\/  Q
) )  ->  y  =  E ) )
5 cdleme32.n . . . 4  |-  N  =  if ( s  .<_  ( P  .\/  Q ) ,  I ,  C
)
6 cdleme32a1.y . . . 4  |-  Y  =  ( ( P  .\/  Q )  ./\  ( D  .\/  ( ( R  .\/  t )  ./\  W
) ) )
7 cdleme32a1.z . . . 4  |-  Z  =  ( iota_ y  e.  B A. t  e.  A  ( ( -.  t  .<_  W  /\  -.  t  .<_  ( P  .\/  Q
) )  ->  y  =  Y ) )
83, 4, 5, 6, 7cdleme31sn1c 31259 . . 3  |-  ( ( R  e.  A  /\  R  .<_  ( P  .\/  Q ) )  ->  [_ R  /  s ]_ N  =  Z )
91, 2, 8syl2anc 644 . 2  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  [_ R  / 
s ]_ N  =  Z )
10 cdleme32.b . . . 4  |-  B  =  ( Base `  K
)
11 fvex 5745 . . . 4  |-  ( Base `  K )  e.  _V
1210, 11eqeltri 2508 . . 3  |-  B  e. 
_V
13 nfv 1630 . . . 4  |-  F/ t ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )
14 nfra1 2758 . . . . . . . 8  |-  F/ t A. t  e.  A  ( ( -.  t  .<_  W  /\  -.  t  .<_  ( P  .\/  Q
) )  ->  y  =  Y )
15 nfcv 2574 . . . . . . . 8  |-  F/_ t B
1614, 15nfriota 6562 . . . . . . 7  |-  F/_ t
( iota_ y  e.  B A. t  e.  A  ( ( -.  t  .<_  W  /\  -.  t  .<_  ( P  .\/  Q
) )  ->  y  =  Y ) )
177, 16nfcxfr 2571 . . . . . 6  |-  F/_ t Z
18 nfcv 2574 . . . . . 6  |-  F/_ t  .<_
19 nfcv 2574 . . . . . 6  |-  F/_ t
( P  .\/  Q
)
2017, 18, 19nfbr 4259 . . . . 5  |-  F/ t  Z  .<_  ( P  .\/  Q )
2120a1i 11 . . . 4  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  F/ t  Z  .<_  ( P  .\/  Q ) )
227a1i 11 . . . 4  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  Z  =  ( iota_ y  e.  B A. t  e.  A  ( ( -.  t  .<_  W  /\  -.  t  .<_  ( P  .\/  Q
) )  ->  y  =  Y ) ) )
23 breq1 4218 . . . . 5  |-  ( Y  =  Z  ->  ( Y  .<_  ( P  .\/  Q )  <->  Z  .<_  ( P 
.\/  Q ) ) )
2423adantl 454 . . . 4  |-  ( ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  /\  Y  =  Z )  ->  ( Y  .<_  ( P  .\/  Q )  <->  Z  .<_  ( P 
.\/  Q ) ) )
25 simpl11 1033 . . . . . 6  |-  ( ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  /\  ( t  e.  A  /\  ( -.  t  .<_  W  /\  -.  t  .<_  ( P 
.\/  Q ) ) ) )  ->  ( K  e.  HL  /\  W  e.  H ) )
26 simp12l 1071 . . . . . . 7  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  P  e.  A )
2726adantr 453 . . . . . 6  |-  ( ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  /\  ( t  e.  A  /\  ( -.  t  .<_  W  /\  -.  t  .<_  ( P 
.\/  Q ) ) ) )  ->  P  e.  A )
28 simp13l 1073 . . . . . . 7  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  Q  e.  A )
2928adantr 453 . . . . . 6  |-  ( ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  /\  ( t  e.  A  /\  ( -.  t  .<_  W  /\  -.  t  .<_  ( P 
.\/  Q ) ) ) )  ->  Q  e.  A )
301adantr 453 . . . . . 6  |-  ( ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  /\  ( t  e.  A  /\  ( -.  t  .<_  W  /\  -.  t  .<_  ( P 
.\/  Q ) ) ) )  ->  R  e.  A )
31 simprl 734 . . . . . 6  |-  ( ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  /\  ( t  e.  A  /\  ( -.  t  .<_  W  /\  -.  t  .<_  ( P 
.\/  Q ) ) ) )  ->  t  e.  A )
32 cdleme32.l . . . . . . 7  |-  .<_  =  ( le `  K )
33 cdleme32.j . . . . . . 7  |-  .\/  =  ( join `  K )
34 cdleme32.m . . . . . . 7  |-  ./\  =  ( meet `  K )
35 cdleme32.a . . . . . . 7  |-  A  =  ( Atoms `  K )
36 cdleme32.h . . . . . . 7  |-  H  =  ( LHyp `  K
)
37 cdleme32.u . . . . . . 7  |-  U  =  ( ( P  .\/  Q )  ./\  W )
38 cdleme32.d . . . . . . 7  |-  D  =  ( ( t  .\/  U )  ./\  ( Q  .\/  ( ( P  .\/  t )  ./\  W
) ) )
3932, 33, 34, 35, 36, 37, 38, 6cdleme4a 31110 . . . . . 6  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  Q  e.  A  /\  R  e.  A )  /\  t  e.  A )  ->  Y  .<_  ( P  .\/  Q
) )
4025, 27, 29, 30, 31, 39syl131anc 1198 . . . . 5  |-  ( ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  /\  ( t  e.  A  /\  ( -.  t  .<_  W  /\  -.  t  .<_  ( P 
.\/  Q ) ) ) )  ->  Y  .<_  ( P  .\/  Q
) )
4140ex 425 . . . 4  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  ( (
t  e.  A  /\  ( -.  t  .<_  W  /\  -.  t  .<_  ( P  .\/  Q ) ) )  ->  Y  .<_  ( P  .\/  Q
) ) )
42 simp1 958 . . . . 5  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) ) )
43 simp2rr 1028 . . . . 5  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  -.  R  .<_  W )
44 simp2l 984 . . . . 5  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  P  =/=  Q )
4510, 32, 33, 34, 35, 36, 37, 38, 6, 7cdleme25cl 31228 . . . . 5  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( R  e.  A  /\  -.  R  .<_  W )  /\  ( P  =/= 
Q  /\  R  .<_  ( P  .\/  Q ) ) )  ->  Z  e.  B )
4642, 1, 43, 44, 2, 45syl122anc 1194 . . . 4  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  Z  e.  B )
47 simp11 988 . . . . 5  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  ( K  e.  HL  /\  W  e.  H ) )
48 simp12 989 . . . . 5  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  ( P  e.  A  /\  -.  P  .<_  W ) )
49 simp13 990 . . . . 5  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  ( Q  e.  A  /\  -.  Q  .<_  W ) )
5032, 33, 35, 36cdlemb2 30912 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  P  =/= 
Q )  ->  E. t  e.  A  ( -.  t  .<_  W  /\  -.  t  .<_  ( P  .\/  Q ) ) )
5147, 48, 49, 44, 50syl121anc 1190 . . . 4  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  E. t  e.  A  ( -.  t  .<_  W  /\  -.  t  .<_  ( P  .\/  Q ) ) )
5213, 21, 22, 24, 41, 46, 51riotasv3d 6601 . . 3  |-  ( ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  /\  B  e. 
_V )  ->  Z  .<_  ( P  .\/  Q
) )
5312, 52mpan2 654 . 2  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  Z  .<_  ( P  .\/  Q ) )
549, 53eqbrtrd 4235 1  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( P  e.  A  /\  -.  P  .<_  W )  /\  ( Q  e.  A  /\  -.  Q  .<_  W ) )  /\  ( P  =/=  Q  /\  ( R  e.  A  /\  -.  R  .<_  W ) )  /\  R  .<_  ( P  .\/  Q ) )  ->  [_ R  / 
s ]_ N  .<_  ( P 
.\/  Q ) )
Colors of variables: wff set class
Syntax hints:   -. wn 3    -> wi 4    <-> wb 178    /\ wa 360    /\ w3a 937   F/wnf 1554    = wceq 1653    e. wcel 1726    =/= wne 2601   A.wral 2707   E.wrex 2708   _Vcvv 2958   [_csb 3253   ifcif 3741   class class class wbr 4215   ` cfv 5457  (class class class)co 6084   iota_crio 6545   Basecbs 13474   lecple 13541   joincjn 14406   meetcmee 14407   Atomscatm 30135   HLchlt 30222   LHypclh 30855
This theorem is referenced by:  cdleme41sn3aw  31345  cdleme46fsvlpq  31376
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1556  ax-5 1567  ax-17 1627  ax-9 1667  ax-8 1688  ax-13 1728  ax-14 1730  ax-6 1745  ax-7 1750  ax-11 1762  ax-12 1951  ax-ext 2419  ax-rep 4323  ax-sep 4333  ax-nul 4341  ax-pow 4380  ax-pr 4406  ax-un 4704
This theorem depends on definitions:  df-bi 179  df-or 361  df-an 362  df-3or 938  df-3an 939  df-tru 1329  df-ex 1552  df-nf 1555  df-sb 1660  df-eu 2287  df-mo 2288  df-clab 2425  df-cleq 2431  df-clel 2434  df-nfc 2563  df-ne 2603  df-nel 2604  df-ral 2712  df-rex 2713  df-reu 2714  df-rmo 2715  df-rab 2716  df-v 2960  df-sbc 3164  df-csb 3254  df-dif 3325  df-un 3327  df-in 3329  df-ss 3336  df-nul 3631  df-if 3742  df-pw 3803  df-sn 3822  df-pr 3823  df-op 3825  df-uni 4018  df-iun 4097  df-iin 4098  df-br 4216  df-opab 4270  df-mpt 4271  df-id 4501  df-xp 4887  df-rel 4888  df-cnv 4889  df-co 4890  df-dm 4891  df-rn 4892  df-res 4893  df-ima 4894  df-iota 5421  df-fun 5459  df-fn 5460  df-f 5461  df-f1 5462  df-fo 5463  df-f1o 5464  df-fv 5465  df-ov 6087  df-oprab 6088  df-mpt2 6089  df-1st 6352  df-2nd 6353  df-undef 6546  df-riota 6552  df-poset 14408  df-plt 14420  df-lub 14436  df-glb 14437  df-join 14438  df-meet 14439  df-p0 14473  df-p1 14474  df-lat 14480  df-clat 14542  df-oposet 30048  df-ol 30050  df-oml 30051  df-covers 30138  df-ats 30139  df-atl 30170  df-cvlat 30194  df-hlat 30223  df-llines 30369  df-lplanes 30370  df-lvols 30371  df-lines 30372  df-psubsp 30374  df-pmap 30375  df-padd 30667  df-lhyp 30859
  Copyright terms: Public domain W3C validator