MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  chebbnd2 Unicode version

Theorem chebbnd2 20588
Description: The Chebyshev bound, part 2: The function π ( x ) is eventually upper bounded by a positive constant times  x  /  log ( x ). Alternatively stated, the function π ( x )  /  (
x  /  log (
x ) ) is eventually bounded. (Contributed by Mario Carneiro, 22-Sep-2014.)
Assertion
Ref Expression
chebbnd2  |-  ( x  e.  ( 2 [,) 
+oo )  |->  ( (π `  x )  /  (
x  /  ( log `  x ) ) ) )  e.  O ( 1 )

Proof of Theorem chebbnd2
StepHypRef Expression
1 ovex 5817 . . . . . 6  |-  ( 2 [,)  +oo )  e.  _V
21a1i 12 . . . . 5  |-  (  T. 
->  ( 2 [,)  +oo )  e.  _V )
3 ovex 5817 . . . . . 6  |-  ( (
theta `  x )  /  x )  e.  _V
43a1i 12 . . . . 5  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
( theta `  x )  /  x )  e.  _V )
5 ovex 5817 . . . . . 6  |-  ( ( (π `  x )  x.  ( log `  x
) )  /  ( theta `  x ) )  e.  _V
65a1i 12 . . . . 5  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
( (π `  x )  x.  ( log `  x
) )  /  ( theta `  x ) )  e.  _V )
7 eqidd 2259 . . . . 5  |-  (  T. 
->  ( x  e.  ( 2 [,)  +oo )  |->  ( ( theta `  x
)  /  x ) )  =  ( x  e.  ( 2 [,) 
+oo )  |->  ( (
theta `  x )  /  x ) ) )
8 simpr 449 . . . . . . . . . 10  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  x  e.  ( 2 [,)  +oo ) )
9 2re 9783 . . . . . . . . . . 11  |-  2  e.  RR
10 elicopnf 10705 . . . . . . . . . . 11  |-  ( 2  e.  RR  ->  (
x  e.  ( 2 [,)  +oo )  <->  ( x  e.  RR  /\  2  <_  x ) ) )
119, 10ax-mp 10 . . . . . . . . . 10  |-  ( x  e.  ( 2 [,) 
+oo )  <->  ( x  e.  RR  /\  2  <_  x ) )
128, 11sylib 190 . . . . . . . . 9  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
x  e.  RR  /\  2  <_  x ) )
13 chtrpcl 20375 . . . . . . . . 9  |-  ( ( x  e.  RR  /\  2  <_  x )  -> 
( theta `  x )  e.  RR+ )
1412, 13syl 17 . . . . . . . 8  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  ( theta `  x )  e.  RR+ )
1514rpcnne0d 10366 . . . . . . 7  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
( theta `  x )  e.  CC  /\  ( theta `  x )  =/=  0
) )
16 ppinncl 20374 . . . . . . . . . . 11  |-  ( ( x  e.  RR  /\  2  <_  x )  -> 
(π `  x )  e.  NN )
1712, 16syl 17 . . . . . . . . . 10  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (π `  x )  e.  NN )
1817nnrpd 10356 . . . . . . . . 9  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (π `  x )  e.  RR+ )
1912simpld 447 . . . . . . . . . 10  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  x  e.  RR )
20 1re 8805 . . . . . . . . . . . 12  |-  1  e.  RR
2120a1i 12 . . . . . . . . . . 11  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  1  e.  RR )
229a1i 12 . . . . . . . . . . 11  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  2  e.  RR )
23 1lt2 9853 . . . . . . . . . . . 12  |-  1  <  2
2423a1i 12 . . . . . . . . . . 11  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  1  <  2 )
2512simprd 451 . . . . . . . . . . 11  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  2  <_  x )
2621, 22, 19, 24, 25ltletrd 8944 . . . . . . . . . 10  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  1  <  x )
2719, 26rplogcld 19942 . . . . . . . . 9  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  ( log `  x )  e.  RR+ )
2818, 27rpmulcld 10373 . . . . . . . 8  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
(π `  x )  x.  ( log `  x
) )  e.  RR+ )
2928rpcnne0d 10366 . . . . . . 7  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
( (π `  x )  x.  ( log `  x
) )  e.  CC  /\  ( (π `  x )  x.  ( log `  x
) )  =/=  0
) )
30 recdiv 9434 . . . . . . 7  |-  ( ( ( ( theta `  x
)  e.  CC  /\  ( theta `  x )  =/=  0 )  /\  (
( (π `  x )  x.  ( log `  x
) )  e.  CC  /\  ( (π `  x )  x.  ( log `  x
) )  =/=  0
) )  ->  (
1  /  ( (
theta `  x )  / 
( (π `  x )  x.  ( log `  x
) ) ) )  =  ( ( (π `  x )  x.  ( log `  x ) )  /  ( theta `  x
) ) )
3115, 29, 30syl2anc 645 . . . . . 6  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
1  /  ( (
theta `  x )  / 
( (π `  x )  x.  ( log `  x
) ) ) )  =  ( ( (π `  x )  x.  ( log `  x ) )  /  ( theta `  x
) ) )
3231mpteq2dva 4080 . . . . 5  |-  (  T. 
->  ( x  e.  ( 2 [,)  +oo )  |->  ( 1  /  (
( theta `  x )  /  ( (π `  x
)  x.  ( log `  x ) ) ) ) )  =  ( x  e.  ( 2 [,)  +oo )  |->  ( ( (π `  x )  x.  ( log `  x
) )  /  ( theta `  x ) ) ) )
332, 4, 6, 7, 32offval2 6029 . . . 4  |-  (  T. 
->  ( ( x  e.  ( 2 [,)  +oo )  |->  ( ( theta `  x )  /  x
) )  o F  x.  ( x  e.  ( 2 [,)  +oo )  |->  ( 1  / 
( ( theta `  x
)  /  ( (π `  x )  x.  ( log `  x ) ) ) ) ) )  =  ( x  e.  ( 2 [,)  +oo )  |->  ( ( (
theta `  x )  /  x )  x.  (
( (π `  x )  x.  ( log `  x
) )  /  ( theta `  x ) ) ) ) )
34 0re 8806 . . . . . . . . . . 11  |-  0  e.  RR
3534a1i 12 . . . . . . . . . 10  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  0  e.  RR )
36 2pos 9796 . . . . . . . . . . 11  |-  0  <  2
3736a1i 12 . . . . . . . . . 10  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  0  <  2 )
3835, 22, 19, 37, 25ltletrd 8944 . . . . . . . . 9  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  0  <  x )
3919, 38elrpd 10355 . . . . . . . 8  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  x  e.  RR+ )
4039rpcnne0d 10366 . . . . . . 7  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
x  e.  CC  /\  x  =/=  0 ) )
4128rpcnd 10359 . . . . . . 7  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
(π `  x )  x.  ( log `  x
) )  e.  CC )
42 dmdcan 9438 . . . . . . 7  |-  ( ( ( ( theta `  x
)  e.  CC  /\  ( theta `  x )  =/=  0 )  /\  (
x  e.  CC  /\  x  =/=  0 )  /\  ( (π `  x )  x.  ( log `  x
) )  e.  CC )  ->  ( ( (
theta `  x )  /  x )  x.  (
( (π `  x )  x.  ( log `  x
) )  /  ( theta `  x ) ) )  =  ( ( (π `  x )  x.  ( log `  x
) )  /  x
) )
4315, 40, 41, 42syl3anc 1187 . . . . . 6  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
( ( theta `  x
)  /  x )  x.  ( ( (π `  x )  x.  ( log `  x ) )  /  ( theta `  x
) ) )  =  ( ( (π `  x
)  x.  ( log `  x ) )  /  x ) )
4418rpcnd 10359 . . . . . . 7  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (π `  x )  e.  CC )
4527rpcnne0d 10366 . . . . . . 7  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
( log `  x
)  e.  CC  /\  ( log `  x )  =/=  0 ) )
46 divdiv2 9440 . . . . . . 7  |-  ( ( (π `  x )  e.  CC  /\  ( x  e.  CC  /\  x  =/=  0 )  /\  (
( log `  x
)  e.  CC  /\  ( log `  x )  =/=  0 ) )  ->  ( (π `  x
)  /  ( x  /  ( log `  x
) ) )  =  ( ( (π `  x
)  x.  ( log `  x ) )  /  x ) )
4744, 40, 45, 46syl3anc 1187 . . . . . 6  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
(π `  x )  / 
( x  /  ( log `  x ) ) )  =  ( ( (π `  x )  x.  ( log `  x
) )  /  x
) )
4843, 47eqtr4d 2293 . . . . 5  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
( ( theta `  x
)  /  x )  x.  ( ( (π `  x )  x.  ( log `  x ) )  /  ( theta `  x
) ) )  =  ( (π `  x )  / 
( x  /  ( log `  x ) ) ) )
4948mpteq2dva 4080 . . . 4  |-  (  T. 
->  ( x  e.  ( 2 [,)  +oo )  |->  ( ( ( theta `  x )  /  x
)  x.  ( ( (π `  x )  x.  ( log `  x
) )  /  ( theta `  x ) ) ) )  =  ( x  e.  ( 2 [,)  +oo )  |->  ( (π `  x )  /  (
x  /  ( log `  x ) ) ) ) )
5033, 49eqtrd 2290 . . 3  |-  (  T. 
->  ( ( x  e.  ( 2 [,)  +oo )  |->  ( ( theta `  x )  /  x
) )  o F  x.  ( x  e.  ( 2 [,)  +oo )  |->  ( 1  / 
( ( theta `  x
)  /  ( (π `  x )  x.  ( log `  x ) ) ) ) ) )  =  ( x  e.  ( 2 [,)  +oo )  |->  ( (π `  x
)  /  ( x  /  ( log `  x
) ) ) ) )
5139ex 425 . . . . . 6  |-  (  T. 
->  ( x  e.  ( 2 [,)  +oo )  ->  x  e.  RR+ )
)
5251ssrdv 3160 . . . . 5  |-  (  T. 
->  ( 2 [,)  +oo )  C_  RR+ )
53 chto1ub 20587 . . . . . 6  |-  ( x  e.  RR+  |->  ( (
theta `  x )  /  x ) )  e.  O ( 1 )
5453a1i 12 . . . . 5  |-  (  T. 
->  ( x  e.  RR+  |->  ( ( theta `  x
)  /  x ) )  e.  O ( 1 ) )
5552, 54o1res2 12002 . . . 4  |-  (  T. 
->  ( x  e.  ( 2 [,)  +oo )  |->  ( ( theta `  x
)  /  x ) )  e.  O ( 1 ) )
56 ax-1cn 8763 . . . . . . 7  |-  1  e.  CC
5756a1i 12 . . . . . 6  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  1  e.  CC )
5814, 28rpdivcld 10374 . . . . . . 7  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
( theta `  x )  /  ( (π `  x
)  x.  ( log `  x ) ) )  e.  RR+ )
5958rpcnd 10359 . . . . . 6  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
( theta `  x )  /  ( (π `  x
)  x.  ( log `  x ) ) )  e.  CC )
60 pnfxr 10422 . . . . . . . . 9  |-  +oo  e.  RR*
61 icossre 10696 . . . . . . . . 9  |-  ( ( 2  e.  RR  /\  +oo 
e.  RR* )  ->  (
2 [,)  +oo )  C_  RR )
629, 60, 61mp2an 656 . . . . . . . 8  |-  ( 2 [,)  +oo )  C_  RR
63 rlimconst 11983 . . . . . . . 8  |-  ( ( ( 2 [,)  +oo )  C_  RR  /\  1  e.  CC )  ->  (
x  e.  ( 2 [,)  +oo )  |->  1 )  ~~> r  1 )
6462, 56, 63mp2an 656 . . . . . . 7  |-  ( x  e.  ( 2 [,) 
+oo )  |->  1 )  ~~> r  1
6564a1i 12 . . . . . 6  |-  (  T. 
->  ( x  e.  ( 2 [,)  +oo )  |->  1 )  ~~> r  1 )
66 chtppilim 20586 . . . . . . 7  |-  ( x  e.  ( 2 [,) 
+oo )  |->  ( (
theta `  x )  / 
( (π `  x )  x.  ( log `  x
) ) ) )  ~~> r  1
6766a1i 12 . . . . . 6  |-  (  T. 
->  ( x  e.  ( 2 [,)  +oo )  |->  ( ( theta `  x
)  /  ( (π `  x )  x.  ( log `  x ) ) ) )  ~~> r  1 )
68 ax-1ne0 8774 . . . . . . 7  |-  1  =/=  0
6968a1i 12 . . . . . 6  |-  (  T. 
->  1  =/=  0
)
7058rpne0d 10362 . . . . . 6  |-  ( (  T.  /\  x  e.  ( 2 [,)  +oo ) )  ->  (
( theta `  x )  /  ( (π `  x
)  x.  ( log `  x ) ) )  =/=  0 )
7157, 59, 65, 67, 69, 70rlimdiv 12084 . . . . 5  |-  (  T. 
->  ( x  e.  ( 2 [,)  +oo )  |->  ( 1  /  (
( theta `  x )  /  ( (π `  x
)  x.  ( log `  x ) ) ) ) )  ~~> r  ( 1  /  1 ) )
72 rlimo1 12055 . . . . 5  |-  ( ( x  e.  ( 2 [,)  +oo )  |->  ( 1  /  ( ( theta `  x )  /  (
(π `  x )  x.  ( log `  x
) ) ) ) )  ~~> r  ( 1  /  1 )  -> 
( x  e.  ( 2 [,)  +oo )  |->  ( 1  /  (
( theta `  x )  /  ( (π `  x
)  x.  ( log `  x ) ) ) ) )  e.  O
( 1 ) )
7371, 72syl 17 . . . 4  |-  (  T. 
->  ( x  e.  ( 2 [,)  +oo )  |->  ( 1  /  (
( theta `  x )  /  ( (π `  x
)  x.  ( log `  x ) ) ) ) )  e.  O
( 1 ) )
74 o1mul 12053 . . . 4  |-  ( ( ( x  e.  ( 2 [,)  +oo )  |->  ( ( theta `  x
)  /  x ) )  e.  O ( 1 )  /\  (
x  e.  ( 2 [,)  +oo )  |->  ( 1  /  ( ( theta `  x )  /  (
(π `  x )  x.  ( log `  x
) ) ) ) )  e.  O ( 1 ) )  -> 
( ( x  e.  ( 2 [,)  +oo )  |->  ( ( theta `  x )  /  x
) )  o F  x.  ( x  e.  ( 2 [,)  +oo )  |->  ( 1  / 
( ( theta `  x
)  /  ( (π `  x )  x.  ( log `  x ) ) ) ) ) )  e.  O ( 1 ) )
7555, 73, 74syl2anc 645 . . 3  |-  (  T. 
->  ( ( x  e.  ( 2 [,)  +oo )  |->  ( ( theta `  x )  /  x
) )  o F  x.  ( x  e.  ( 2 [,)  +oo )  |->  ( 1  / 
( ( theta `  x
)  /  ( (π `  x )  x.  ( log `  x ) ) ) ) ) )  e.  O ( 1 ) )
7650, 75eqeltrrd 2333 . 2  |-  (  T. 
->  ( x  e.  ( 2 [,)  +oo )  |->  ( (π `  x )  / 
( x  /  ( log `  x ) ) ) )  e.  O
( 1 ) )
7776trud 1320 1  |-  ( x  e.  ( 2 [,) 
+oo )  |->  ( (π `  x )  /  (
x  /  ( log `  x ) ) ) )  e.  O ( 1 )
Colors of variables: wff set class
Syntax hints:    <-> wb 178    /\ wa 360    T. wtru 1312    = wceq 1619    e. wcel 1621    =/= wne 2421   _Vcvv 2763    C_ wss 3127   class class class wbr 3997    e. cmpt 4051   ` cfv 4673  (class class class)co 5792    o Fcof 6010   CCcc 8703   RRcr 8704   0cc0 8705   1c1 8706    x. cmul 8710    +oocpnf 8832   RR*cxr 8834    < clt 8835    <_ cle 8836    / cdiv 9391   NNcn 9714   2c2 9763   RR+crp 10321   [,)cico 10624    ~~> r crli 11924   O (
1 )co1 11925   logclog 19874   thetaccht 20290  πcppi 20293
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 1927  ax-ext 2239  ax-rep 4105  ax-sep 4115  ax-nul 4123  ax-pow 4160  ax-pr 4186  ax-un 4484  ax-inf2 7310  ax-cnex 8761  ax-resscn 8762  ax-1cn 8763  ax-icn 8764  ax-addcl 8765  ax-addrcl 8766  ax-mulcl 8767  ax-mulrcl 8768  ax-mulcom 8769  ax-addass 8770  ax-mulass 8771  ax-distr 8772  ax-i2m1 8773  ax-1ne0 8774  ax-1rid 8775  ax-rnegex 8776  ax-rrecex 8777  ax-cnre 8778  ax-pre-lttri 8779  ax-pre-lttrn 8780  ax-pre-ltadd 8781  ax-pre-mulgt0 8782  ax-pre-sup 8783  ax-addf 8784  ax-mulf 8785
This theorem depends on definitions:  df-bi 179  df-or 361  df-an 362  df-3or 940  df-3an 941  df-tru 1315  df-ex 1538  df-nf 1540  df-sb 1884  df-eu 2122  df-mo 2123  df-clab 2245  df-cleq 2251  df-clel 2254  df-nfc 2383  df-ne 2423  df-nel 2424  df-ral 2523  df-rex 2524  df-reu 2525  df-rmo 2526  df-rab 2527  df-v 2765  df-sbc 2967  df-csb 3057  df-dif 3130  df-un 3132  df-in 3134  df-ss 3141  df-pss 3143  df-nul 3431  df-if 3540  df-pw 3601  df-sn 3620  df-pr 3621  df-tp 3622  df-op 3623  df-uni 3802  df-int 3837  df-iun 3881  df-iin 3882  df-br 3998  df-opab 4052  df-mpt 4053  df-tr 4088  df-eprel 4277  df-id 4281  df-po 4286  df-so 4287  df-fr 4324  df-se 4325  df-we 4326  df-ord 4367  df-on 4368  df-lim 4369  df-suc 4370  df-om 4629  df-xp 4675  df-rel 4676  df-cnv 4677  df-co 4678  df-dm 4679  df-rn 4680  df-res 4681  df-ima 4682  df-fun 4683  df-fn 4684  df-f 4685  df-f1 4686  df-fo 4687  df-f1o 4688  df-fv 4689  df-isom 4690  df-ov 5795  df-oprab 5796  df-mpt2 5797  df-of 6012  df-1st 6056  df-2nd 6057  df-iota 6225  df-riota 6272  df-recs 6356  df-rdg 6391  df-1o 6447  df-2o 6448  df-oadd 6451  df-er 6628  df-map 6742  df-pm 6743  df-ixp 6786  df-en 6832  df-dom 6833  df-sdom 6834  df-fin 6835  df-fi 7133  df-sup 7162  df-oi 7193  df-card 7540  df-cda 7762  df-pnf 8837  df-mnf 8838  df-xr 8839  df-ltxr 8840  df-le 8841  df-sub 9007  df-neg 9008  df-div 9392  df-n 9715  df-2 9772  df-3 9773  df-4 9774  df-5 9775  df-6 9776  df-7 9777  df-8 9778  df-9 9779  df-10 9780  df-n0 9933  df-z 9992  df-dec 10092  df-uz 10198  df-q 10284  df-rp 10322  df-xneg 10419  df-xadd 10420  df-xmul 10421  df-ioo 10626  df-ioc 10627  df-ico 10628  df-icc 10629  df-fz 10749  df-fzo 10837  df-fl 10891  df-mod 10940  df-seq 11013  df-exp 11071  df-fac 11255  df-bc 11282  df-hash 11304  df-shft 11527  df-cj 11549  df-re 11550  df-im 11551  df-sqr 11685  df-abs 11686  df-limsup 11910  df-clim 11927  df-rlim 11928  df-o1 11929  df-lo1 11930  df-sum 12124  df-ef 12311  df-e 12312  df-sin 12313  df-cos 12314  df-pi 12316  df-divides 12494  df-gcd 12648  df-prime 12721  df-pc 12852  df-struct 13112  df-ndx 13113  df-slot 13114  df-base 13115  df-sets 13116  df-ress 13117  df-plusg 13183  df-mulr 13184  df-starv 13185  df-sca 13186  df-vsca 13187  df-tset 13189  df-ple 13190  df-ds 13192  df-hom 13194  df-cco 13195  df-rest 13289  df-topn 13290  df-topgen 13306  df-pt 13307  df-prds 13310  df-xrs 13365  df-0g 13366  df-gsum 13367  df-qtop 13372  df-imas 13373  df-xps 13375  df-mre 13450  df-mrc 13451  df-acs 13453  df-mnd 14329  df-submnd 14378  df-mulg 14454  df-cntz 14755  df-cmn 15053  df-xmet 16335  df-met 16336  df-bl 16337  df-mopn 16338  df-cnfld 16340  df-top 16598  df-bases 16600  df-topon 16601  df-topsp 16602  df-cld 16718  df-ntr 16719  df-cls 16720  df-nei 16797  df-lp 16830  df-perf 16831  df-cn 16919  df-cnp 16920  df-haus 17005  df-tx 17219  df-hmeo 17408  df-fbas 17482  df-fg 17483  df-fil 17503  df-fm 17595  df-flim 17596  df-flf 17597  df-xms 17847  df-ms 17848  df-tms 17849  df-cncf 18344  df-limc 19178  df-dv 19179  df-log 19876  df-cxp 19877  df-cht 20296  df-ppi 20299
  Copyright terms: Public domain W3C validator