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

Theorem dochss 31480
Description: Subset law for orthocomplement. (Contributed by NM, 16-Apr-2014.)
Hypotheses
Ref Expression
dochss.h  |-  H  =  ( LHyp `  K
)
dochss.u  |-  U  =  ( ( DVecH `  K
) `  W )
dochss.v  |-  V  =  ( Base `  U
)
dochss.o  |-  ._|_  =  ( ( ocH `  K
) `  W )
Assertion
Ref Expression
dochss  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  (  ._|_  `  Y
)  C_  (  ._|_  `  X ) )

Proof of Theorem dochss
Dummy variable  z is distinct from all other variables.
StepHypRef Expression
1 simp1l 981 . . . . . 6  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  K  e.  HL )
2 hlclat 29473 . . . . . 6  |-  ( K  e.  HL  ->  K  e.  CLat )
31, 2syl 16 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  K  e.  CLat )
4 ssrab2 3371 . . . . . 6  |-  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) }  C_  ( Base `  K
)
54a1i 11 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) }  C_  ( Base `  K
) )
6 simpll3 998 . . . . . . . 8  |-  ( ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  /\  z  e.  ( Base `  K
) )  /\  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z )
)  ->  X  C_  Y
)
7 simpr 448 . . . . . . . 8  |-  ( ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  /\  z  e.  ( Base `  K
) )  /\  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z )
)  ->  Y  C_  (
( ( DIsoH `  K
) `  W ) `  z ) )
86, 7sstrd 3301 . . . . . . 7  |-  ( ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  /\  z  e.  ( Base `  K
) )  /\  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z )
)  ->  X  C_  (
( ( DIsoH `  K
) `  W ) `  z ) )
98ex 424 . . . . . 6  |-  ( ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  /\  z  e.  ( Base `  K
) )  ->  ( Y  C_  ( ( (
DIsoH `  K ) `  W ) `  z
)  ->  X  C_  (
( ( DIsoH `  K
) `  W ) `  z ) ) )
109ss2rabdv 3367 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) }  C_  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } )
11 eqid 2387 . . . . . 6  |-  ( Base `  K )  =  (
Base `  K )
12 eqid 2387 . . . . . 6  |-  ( le
`  K )  =  ( le `  K
)
13 eqid 2387 . . . . . 6  |-  ( glb `  K )  =  ( glb `  K )
1411, 12, 13clatglbss 14481 . . . . 5  |-  ( ( K  e.  CLat  /\  {
z  e.  ( Base `  K )  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) }  C_  ( Base `  K
)  /\  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) }  C_  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } )  ->  (
( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ( le
`  K ) ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) )
153, 5, 10, 14syl3anc 1184 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  ( ( glb `  K ) `  {
z  e.  ( Base `  K )  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ( le
`  K ) ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) )
16 hlop 29477 . . . . . 6  |-  ( K  e.  HL  ->  K  e.  OP )
171, 16syl 16 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  K  e.  OP )
1811, 13clatglbcl 14468 . . . . . 6  |-  ( ( K  e.  CLat  /\  {
z  e.  ( Base `  K )  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) }  C_  ( Base `  K
) )  ->  (
( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } )  e.  (
Base `  K )
)
193, 4, 18sylancl 644 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  ( ( glb `  K ) `  {
z  e.  ( Base `  K )  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } )  e.  (
Base `  K )
)
20 ssrab2 3371 . . . . . 6  |-  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) }  C_  ( Base `  K
)
2111, 13clatglbcl 14468 . . . . . 6  |-  ( ( K  e.  CLat  /\  {
z  e.  ( Base `  K )  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) }  C_  ( Base `  K
) )  ->  (
( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } )  e.  (
Base `  K )
)
223, 20, 21sylancl 644 . . . . 5  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  ( ( glb `  K ) `  {
z  e.  ( Base `  K )  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } )  e.  (
Base `  K )
)
23 eqid 2387 . . . . . 6  |-  ( oc
`  K )  =  ( oc `  K
)
2411, 12, 23oplecon3b 29315 . . . . 5  |-  ( ( K  e.  OP  /\  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } )  e.  (
Base `  K )  /\  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } )  e.  (
Base `  K )
)  ->  ( (
( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ( le
`  K ) ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } )  <->  ( ( oc `  K ) `  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) ( le `  K ) ( ( oc `  K ) `  (
( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) ) )
2517, 19, 22, 24syl3anc 1184 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  ( ( ( glb `  K ) `
 { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ( le
`  K ) ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } )  <->  ( ( oc `  K ) `  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) ( le `  K ) ( ( oc `  K ) `  (
( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) ) )
2615, 25mpbid 202 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  ( ( oc
`  K ) `  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) ( le `  K ) ( ( oc `  K ) `  (
( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) )
27 simp1 957 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  ( K  e.  HL  /\  W  e.  H ) )
2811, 23opoccl 29309 . . . . 5  |-  ( ( K  e.  OP  /\  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } )  e.  (
Base `  K )
)  ->  ( ( oc `  K ) `  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) )  e.  ( Base `  K
) )
2917, 22, 28syl2anc 643 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  ( ( oc
`  K ) `  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) )  e.  ( Base `  K
) )
3011, 23opoccl 29309 . . . . 5  |-  ( ( K  e.  OP  /\  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } )  e.  (
Base `  K )
)  ->  ( ( oc `  K ) `  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) )  e.  ( Base `  K
) )
3117, 19, 30syl2anc 643 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  ( ( oc
`  K ) `  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) )  e.  ( Base `  K
) )
32 dochss.h . . . . 5  |-  H  =  ( LHyp `  K
)
33 eqid 2387 . . . . 5  |-  ( (
DIsoH `  K ) `  W )  =  ( ( DIsoH `  K ) `  W )
3411, 12, 32, 33dihord 31379 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  ( ( oc
`  K ) `  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) )  e.  ( Base `  K
)  /\  ( ( oc `  K ) `  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) )  e.  ( Base `  K
) )  ->  (
( ( ( DIsoH `  K ) `  W
) `  ( ( oc `  K ) `  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) ) 
C_  ( ( (
DIsoH `  K ) `  W ) `  (
( oc `  K
) `  ( ( glb `  K ) `  { z  e.  (
Base `  K )  |  X  C_  ( ( ( DIsoH `  K ) `  W ) `  z
) } ) ) )  <->  ( ( oc
`  K ) `  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) ( le `  K ) ( ( oc `  K ) `  (
( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) ) )
3527, 29, 31, 34syl3anc 1184 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  ( ( ( ( DIsoH `  K ) `  W ) `  (
( oc `  K
) `  ( ( glb `  K ) `  { z  e.  (
Base `  K )  |  Y  C_  ( ( ( DIsoH `  K ) `  W ) `  z
) } ) ) )  C_  ( (
( DIsoH `  K ) `  W ) `  (
( oc `  K
) `  ( ( glb `  K ) `  { z  e.  (
Base `  K )  |  X  C_  ( ( ( DIsoH `  K ) `  W ) `  z
) } ) ) )  <->  ( ( oc
`  K ) `  ( ( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) ( le `  K ) ( ( oc `  K ) `  (
( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) ) )
3626, 35mpbird 224 . 2  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  ( ( (
DIsoH `  K ) `  W ) `  (
( oc `  K
) `  ( ( glb `  K ) `  { z  e.  (
Base `  K )  |  Y  C_  ( ( ( DIsoH `  K ) `  W ) `  z
) } ) ) )  C_  ( (
( DIsoH `  K ) `  W ) `  (
( oc `  K
) `  ( ( glb `  K ) `  { z  e.  (
Base `  K )  |  X  C_  ( ( ( DIsoH `  K ) `  W ) `  z
) } ) ) ) )
37 dochss.u . . . 4  |-  U  =  ( ( DVecH `  K
) `  W )
38 dochss.v . . . 4  |-  V  =  ( Base `  U
)
39 dochss.o . . . 4  |-  ._|_  =  ( ( ocH `  K
) `  W )
4011, 13, 23, 32, 33, 37, 38, 39dochval 31466 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V
)  ->  (  ._|_  `  Y )  =  ( ( ( DIsoH `  K
) `  W ) `  ( ( oc `  K ) `  (
( glb `  K
) `  { z  e.  ( Base `  K
)  |  Y  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) ) )
41403adant3 977 . 2  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  (  ._|_  `  Y
)  =  ( ( ( DIsoH `  K ) `  W ) `  (
( oc `  K
) `  ( ( glb `  K ) `  { z  e.  (
Base `  K )  |  Y  C_  ( ( ( DIsoH `  K ) `  W ) `  z
) } ) ) ) )
42 simp3 959 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  X  C_  Y
)
43 simp2 958 . . . 4  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  Y  C_  V
)
4442, 43sstrd 3301 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  X  C_  V
)
4511, 13, 23, 32, 33, 37, 38, 39dochval 31466 . . 3  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  X  C_  V
)  ->  (  ._|_  `  X )  =  ( ( ( DIsoH `  K
) `  W ) `  ( ( oc `  K ) `  (
( glb `  K
) `  { z  e.  ( Base `  K
)  |  X  C_  ( ( ( DIsoH `  K ) `  W
) `  z ) } ) ) ) )
4627, 44, 45syl2anc 643 . 2  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  (  ._|_  `  X
)  =  ( ( ( DIsoH `  K ) `  W ) `  (
( oc `  K
) `  ( ( glb `  K ) `  { z  e.  (
Base `  K )  |  X  C_  ( ( ( DIsoH `  K ) `  W ) `  z
) } ) ) ) )
4736, 41, 463sstr4d 3334 1  |-  ( ( ( K  e.  HL  /\  W  e.  H )  /\  Y  C_  V  /\  X  C_  Y )  ->  (  ._|_  `  Y
)  C_  (  ._|_  `  X ) )
Colors of variables: wff set class
Syntax hints:    -> wi 4    <-> wb 177    /\ wa 359    /\ w3a 936    = wceq 1649    e. wcel 1717   {crab 2653    C_ wss 3263   class class class wbr 4153   ` cfv 5394   Basecbs 13396   lecple 13463   occoc 13464   glbcglb 14327   CLatccla 14463   OPcops 29287   HLchlt 29465   LHypclh 30098   DVecHcdvh 31193   DIsoHcdih 31343   ocHcoch 31462
This theorem is referenced by:  dochsscl  31483  dochord  31485  dihoml4  31492  dochocsp  31494  dochdmj1  31505  dochpolN  31605  lclkrlem2p  31637  lclkrslem1  31652  lclkrslem2  31653  lcfrvalsnN  31656  mapdsn  31756
This theorem was proved from axioms:  ax-1 5  ax-2 6  ax-3 7  ax-mp 8  ax-gen 1552  ax-5 1563  ax-17 1623  ax-9 1661  ax-8 1682  ax-13 1719  ax-14 1721  ax-6 1736  ax-7 1741  ax-11 1753  ax-12 1939  ax-ext 2368  ax-rep 4261  ax-sep 4271  ax-nul 4279  ax-pow 4318  ax-pr 4344  ax-un 4641  ax-cnex 8979  ax-resscn 8980  ax-1cn 8981  ax-icn 8982  ax-addcl 8983  ax-addrcl 8984  ax-mulcl 8985  ax-mulrcl 8986  ax-mulcom 8987  ax-addass 8988  ax-mulass 8989  ax-distr 8990  ax-i2m1 8991  ax-1ne0 8992  ax-1rid 8993  ax-rnegex 8994  ax-rrecex 8995  ax-cnre 8996  ax-pre-lttri 8997  ax-pre-lttrn 8998  ax-pre-ltadd 8999  ax-pre-mulgt0 9000
This theorem depends on definitions:  df-bi 178  df-or 360  df-an 361  df-3or 937  df-3an 938  df-tru 1325  df-fal 1326  df-ex 1548  df-nf 1551  df-sb 1656  df-eu 2242  df-mo 2243  df-clab 2374  df-cleq 2380  df-clel 2383  df-nfc 2512  df-ne 2552  df-nel 2553  df-ral 2654  df-rex 2655  df-reu 2656  df-rmo 2657  df-rab 2658  df-v 2901  df-sbc 3105  df-csb 3195  df-dif 3266  df-un 3268  df-in 3270  df-ss 3277  df-pss 3279  df-nul 3572  df-if 3683  df-pw 3744  df-sn 3763  df-pr 3764  df-tp 3765  df-op 3766  df-uni 3958  df-int 3993  df-iun 4037  df-iin 4038  df-br 4154  df-opab 4208  df-mpt 4209  df-tr 4244  df-eprel 4435  df-id 4439  df-po 4444  df-so 4445  df-fr 4482  df-we 4484  df-ord 4525  df-on 4526  df-lim 4527  df-suc 4528  df-om 4786  df-xp 4824  df-rel 4825  df-cnv 4826  df-co 4827  df-dm 4828  df-rn 4829  df-res 4830  df-ima 4831  df-iota 5358  df-fun 5396  df-fn 5397  df-f 5398  df-f1 5399  df-fo 5400  df-f1o 5401  df-fv 5402  df-ov 6023  df-oprab 6024  df-mpt2 6025  df-1st 6288  df-2nd 6289  df-tpos 6415  df-undef 6479  df-riota 6485  df-recs 6569  df-rdg 6604  df-1o 6660  df-oadd 6664  df-er 6841  df-map 6956  df-en 7046  df-dom 7047  df-sdom 7048  df-fin 7049  df-pnf 9055  df-mnf 9056  df-xr 9057  df-ltxr 9058  df-le 9059  df-sub 9225  df-neg 9226  df-nn 9933  df-2 9990  df-3 9991  df-4 9992  df-5 9993  df-6 9994  df-n0 10154  df-z 10215  df-uz 10421  df-fz 10976  df-struct 13398  df-ndx 13399  df-slot 13400  df-base 13401  df-sets 13402  df-ress 13403  df-plusg 13469  df-mulr 13470  df-sca 13472  df-vsca 13473  df-0g 13654  df-poset 14330  df-plt 14342  df-lub 14358  df-glb 14359  df-join 14360  df-meet 14361  df-p0 14395  df-p1 14396  df-lat 14402  df-clat 14464  df-mnd 14617  df-submnd 14666  df-grp 14739  df-minusg 14740  df-sbg 14741  df-subg 14868  df-cntz 15043  df-lsm 15197  df-cmn 15341  df-abl 15342  df-mgp 15576  df-rng 15590  df-ur 15592  df-oppr 15655  df-dvdsr 15673  df-unit 15674  df-invr 15704  df-dvr 15715  df-drng 15764  df-lmod 15879  df-lss 15936  df-lsp 15975  df-lvec 16102  df-oposet 29291  df-ol 29293  df-oml 29294  df-covers 29381  df-ats 29382  df-atl 29413  df-cvlat 29437  df-hlat 29466  df-llines 29612  df-lplanes 29613  df-lvols 29614  df-lines 29615  df-psubsp 29617  df-pmap 29618  df-padd 29910  df-lhyp 30102  df-laut 30103  df-ldil 30218  df-ltrn 30219  df-trl 30273  df-tendo 30869  df-edring 30871  df-disoa 31144  df-dvech 31194  df-dib 31254  df-dic 31288  df-dih 31344  df-doch 31463
  Copyright terms: Public domain W3C validator