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

Theorem tfrlem5 6329
Description: Lemma for transfinite recursion. The values of two acceptable functions are the same within their domains. (Contributed by NM, 9-Apr-1995.)
Hypothesis
Ref Expression
tfrlem.1  |-  A  =  { f  |  E. x  e.  On  (
f  Fn  x  /\  A. y  e.  x  ( f `  y )  =  ( F `  ( f  |`  y
) ) ) }
Assertion
Ref Expression
tfrlem5  |-  ( ( g  e.  A  /\  h  e.  A )  ->  ( ( <. x ,  u >.  e.  g  /\  <. x ,  v
>.  e.  h )  ->  u  =  v )
)
Distinct variable groups:    f, g, x, y, h, u, v, F    A, g, h
Allowed substitution hints:    A( x, y, v, u, f)

Proof of Theorem tfrlem5
StepHypRef Expression
1 tfrlem.1 . . . . . 6  |-  A  =  { f  |  E. x  e.  On  (
f  Fn  x  /\  A. y  e.  x  ( f `  y )  =  ( F `  ( f  |`  y
) ) ) }
21tfrlem3 6326 . . . . 5  |-  A  =  { g  |  E. z  e.  On  (
g  Fn  z  /\  A. y  e.  z  ( g `  y )  =  ( F `  ( g  |`  y
) ) ) }
32abeq2i 2363 . . . 4  |-  ( g  e.  A  <->  E. z  e.  On  ( g  Fn  z  /\  A. y  e.  z  ( g `  y )  =  ( F `  ( g  |`  y ) ) ) )
41tfrlem3 6326 . . . . 5  |-  A  =  { h  |  E. w  e.  On  (
h  Fn  w  /\  A. y  e.  w  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) }
54abeq2i 2363 . . . 4  |-  ( h  e.  A  <->  E. w  e.  On  ( h  Fn  w  /\  A. y  e.  w  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) )
63, 5anbi12i 681 . . 3  |-  ( ( g  e.  A  /\  h  e.  A )  <->  ( E. z  e.  On  ( g  Fn  z  /\  A. y  e.  z  ( g `  y
)  =  ( F `
 ( g  |`  y ) ) )  /\  E. w  e.  On  ( h  Fn  w  /\  A. y  e.  w  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) ) )
7 reeanv 2678 . . 3  |-  ( E. z  e.  On  E. w  e.  On  (
( g  Fn  z  /\  A. y  e.  z  ( g `  y
)  =  ( F `
 ( g  |`  y ) ) )  /\  ( h  Fn  w  /\  A. y  e.  w  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) )  <->  ( E. z  e.  On  ( g  Fn  z  /\  A. y  e.  z  ( g `  y )  =  ( F `  ( g  |`  y ) ) )  /\  E. w  e.  On  ( h  Fn  w  /\  A. y  e.  w  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) ) )
86, 7bitr4i 245 . 2  |-  ( ( g  e.  A  /\  h  e.  A )  <->  E. z  e.  On  E. w  e.  On  (
( g  Fn  z  /\  A. y  e.  z  ( g `  y
)  =  ( F `
 ( g  |`  y ) ) )  /\  ( h  Fn  w  /\  A. y  e.  w  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) ) )
9 onin 4360 . . . . 5  |-  ( ( z  e.  On  /\  w  e.  On )  ->  ( z  i^i  w
)  e.  On )
10 r19.26m 2649 . . . . . . . 8  |-  ( A. y ( ( y  e.  z  ->  (
g `  y )  =  ( F `  ( g  |`  y
) ) )  /\  ( y  e.  w  ->  ( h `  y
)  =  ( F `
 ( h  |`  y ) ) ) )  <->  ( A. y  e.  z  ( g `  y )  =  ( F `  ( g  |`  y ) )  /\  A. y  e.  w  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) )
11 simpr 449 . . . . . . . . . . . . 13  |-  ( ( ( z  i^i  w
)  e.  On  /\  y  e.  ( z  i^i  w ) )  -> 
y  e.  ( z  i^i  w ) )
12 elin 3300 . . . . . . . . . . . . 13  |-  ( y  e.  ( z  i^i  w )  <->  ( y  e.  z  /\  y  e.  w ) )
1311, 12sylib 190 . . . . . . . . . . . 12  |-  ( ( ( z  i^i  w
)  e.  On  /\  y  e.  ( z  i^i  w ) )  -> 
( y  e.  z  /\  y  e.  w
) )
14 prth 557 . . . . . . . . . . . 12  |-  ( ( ( y  e.  z  ->  ( g `  y )  =  ( F `  ( g  |`  y ) ) )  /\  ( y  e.  w  ->  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) )  ->  ( (
y  e.  z  /\  y  e.  w )  ->  ( ( g `  y )  =  ( F `  ( g  |`  y ) )  /\  ( h `  y
)  =  ( F `
 ( h  |`  y ) ) ) ) )
1513, 14syl5 30 . . . . . . . . . . 11  |-  ( ( ( y  e.  z  ->  ( g `  y )  =  ( F `  ( g  |`  y ) ) )  /\  ( y  e.  w  ->  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) )  ->  ( (
( z  i^i  w
)  e.  On  /\  y  e.  ( z  i^i  w ) )  -> 
( ( g `  y )  =  ( F `  ( g  |`  y ) )  /\  ( h `  y
)  =  ( F `
 ( h  |`  y ) ) ) ) )
16 onelss 4371 . . . . . . . . . . . . . 14  |-  ( ( z  i^i  w )  e.  On  ->  (
y  e.  ( z  i^i  w )  -> 
y  C_  ( z  i^i  w ) ) )
1716impac 607 . . . . . . . . . . . . 13  |-  ( ( ( z  i^i  w
)  e.  On  /\  y  e.  ( z  i^i  w ) )  -> 
( y  C_  (
z  i^i  w )  /\  y  e.  (
z  i^i  w )
) )
18 fvres 5440 . . . . . . . . . . . . . . 15  |-  ( y  e.  ( z  i^i  w )  ->  (
( g  |`  (
z  i^i  w )
) `  y )  =  ( g `  y ) )
19 resabs1 4937 . . . . . . . . . . . . . . . 16  |-  ( y 
C_  ( z  i^i  w )  ->  (
( g  |`  (
z  i^i  w )
)  |`  y )  =  ( g  |`  y
) )
2019fveq2d 5427 . . . . . . . . . . . . . . 15  |-  ( y 
C_  ( z  i^i  w )  ->  ( F `  ( (
g  |`  ( z  i^i  w ) )  |`  y ) )  =  ( F `  (
g  |`  y ) ) )
2118, 20eqeqan12rd 2272 . . . . . . . . . . . . . 14  |-  ( ( y  C_  ( z  i^i  w )  /\  y  e.  ( z  i^i  w
) )  ->  (
( ( g  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  <->  ( g `  y )  =  ( F `  ( g  |`  y ) ) ) )
22 fvres 5440 . . . . . . . . . . . . . . 15  |-  ( y  e.  ( z  i^i  w )  ->  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( h `  y ) )
23 resabs1 4937 . . . . . . . . . . . . . . . 16  |-  ( y 
C_  ( z  i^i  w )  ->  (
( h  |`  (
z  i^i  w )
)  |`  y )  =  ( h  |`  y
) )
2423fveq2d 5427 . . . . . . . . . . . . . . 15  |-  ( y 
C_  ( z  i^i  w )  ->  ( F `  ( (
h  |`  ( z  i^i  w ) )  |`  y ) )  =  ( F `  (
h  |`  y ) ) )
2522, 24eqeqan12rd 2272 . . . . . . . . . . . . . 14  |-  ( ( y  C_  ( z  i^i  w )  /\  y  e.  ( z  i^i  w
) )  ->  (
( ( h  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( h  |`  ( z  i^i  w
) )  |`  y
) )  <->  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) )
2621, 25anbi12d 694 . . . . . . . . . . . . 13  |-  ( ( y  C_  ( z  i^i  w )  /\  y  e.  ( z  i^i  w
) )  ->  (
( ( ( g  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  /\  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) )  <->  ( (
g `  y )  =  ( F `  ( g  |`  y
) )  /\  (
h `  y )  =  ( F `  ( h  |`  y ) ) ) ) )
2717, 26syl 17 . . . . . . . . . . . 12  |-  ( ( ( z  i^i  w
)  e.  On  /\  y  e.  ( z  i^i  w ) )  -> 
( ( ( ( g  |`  ( z  i^i  w ) ) `  y )  =  ( F `  ( ( g  |`  ( z  i^i  w ) )  |`  y ) )  /\  ( ( h  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) )  <->  ( (
g `  y )  =  ( F `  ( g  |`  y
) )  /\  (
h `  y )  =  ( F `  ( h  |`  y ) ) ) ) )
2827bicomd 194 . . . . . . . . . . 11  |-  ( ( ( z  i^i  w
)  e.  On  /\  y  e.  ( z  i^i  w ) )  -> 
( ( ( g `
 y )  =  ( F `  (
g  |`  y ) )  /\  ( h `  y )  =  ( F `  ( h  |`  y ) ) )  <-> 
( ( ( g  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  /\  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) )
2915, 28mpbidi 209 . . . . . . . . . 10  |-  ( ( ( y  e.  z  ->  ( g `  y )  =  ( F `  ( g  |`  y ) ) )  /\  ( y  e.  w  ->  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) )  ->  ( (
( z  i^i  w
)  e.  On  /\  y  e.  ( z  i^i  w ) )  -> 
( ( ( g  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  /\  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) )
3029exp3a 427 . . . . . . . . 9  |-  ( ( ( y  e.  z  ->  ( g `  y )  =  ( F `  ( g  |`  y ) ) )  /\  ( y  e.  w  ->  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) )  ->  ( (
z  i^i  w )  e.  On  ->  ( y  e.  ( z  i^i  w
)  ->  ( (
( g  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  /\  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) ) )
3130alimi 1546 . . . . . . . 8  |-  ( A. y ( ( y  e.  z  ->  (
g `  y )  =  ( F `  ( g  |`  y
) ) )  /\  ( y  e.  w  ->  ( h `  y
)  =  ( F `
 ( h  |`  y ) ) ) )  ->  A. y
( ( z  i^i  w )  e.  On  ->  ( y  e.  ( z  i^i  w )  ->  ( ( ( g  |`  ( z  i^i  w ) ) `  y )  =  ( F `  ( ( g  |`  ( z  i^i  w ) )  |`  y ) )  /\  ( ( h  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) ) )
3210, 31sylbir 206 . . . . . . 7  |-  ( ( A. y  e.  z  ( g `  y
)  =  ( F `
 ( g  |`  y ) )  /\  A. y  e.  w  ( h `  y )  =  ( F `  ( h  |`  y ) ) )  ->  A. y
( ( z  i^i  w )  e.  On  ->  ( y  e.  ( z  i^i  w )  ->  ( ( ( g  |`  ( z  i^i  w ) ) `  y )  =  ( F `  ( ( g  |`  ( z  i^i  w ) )  |`  y ) )  /\  ( ( h  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) ) )
3332anim2i 555 . . . . . 6  |-  ( ( ( g  Fn  z  /\  h  Fn  w
)  /\  ( A. y  e.  z  (
g `  y )  =  ( F `  ( g  |`  y
) )  /\  A. y  e.  w  (
h `  y )  =  ( F `  ( h  |`  y ) ) ) )  -> 
( ( g  Fn  z  /\  h  Fn  w )  /\  A. y ( ( z  i^i  w )  e.  On  ->  ( y  e.  ( z  i^i  w
)  ->  ( (
( g  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  /\  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) ) ) )
3433an4s 802 . . . . 5  |-  ( ( ( g  Fn  z  /\  A. y  e.  z  ( g `  y
)  =  ( F `
 ( g  |`  y ) ) )  /\  ( h  Fn  w  /\  A. y  e.  w  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) )  ->  ( (
g  Fn  z  /\  h  Fn  w )  /\  A. y ( ( z  i^i  w )  e.  On  ->  (
y  e.  ( z  i^i  w )  -> 
( ( ( g  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  /\  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) ) ) )
35 2elresin 5258 . . . . . . . . 9  |-  ( ( g  Fn  z  /\  h  Fn  w )  ->  ( ( <. x ,  u >.  e.  g  /\  <. x ,  v
>.  e.  h )  <->  ( <. x ,  u >.  e.  ( g  |`  ( z  i^i  w ) )  /\  <.
x ,  v >.  e.  ( h  |`  (
z  i^i  w )
) ) ) )
36 fnresin1 5261 . . . . . . . . . 10  |-  ( g  Fn  z  ->  (
g  |`  ( z  i^i  w ) )  Fn  ( z  i^i  w
) )
37 fnresin2 5262 . . . . . . . . . 10  |-  ( h  Fn  w  ->  (
h  |`  ( z  i^i  w ) )  Fn  ( z  i^i  w
) )
38 tfrlem2 6325 . . . . . . . . . 10  |-  ( ( ( g  |`  (
z  i^i  w )
)  Fn  ( z  i^i  w )  /\  ( h  |`  ( z  i^i  w ) )  Fn  ( z  i^i  w ) )  -> 
( ( <. x ,  u >.  e.  (
g  |`  ( z  i^i  w ) )  /\  <.
x ,  v >.  e.  ( h  |`  (
z  i^i  w )
) )  ->  (
( z  i^i  w
)  e.  On  ->  ( A. y ( ( z  i^i  w )  e.  On  ->  (
y  e.  ( z  i^i  w )  -> 
( ( ( g  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  /\  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) )  ->  u  =  v ) ) ) )
3936, 37, 38syl2an 465 . . . . . . . . 9  |-  ( ( g  Fn  z  /\  h  Fn  w )  ->  ( ( <. x ,  u >.  e.  (
g  |`  ( z  i^i  w ) )  /\  <.
x ,  v >.  e.  ( h  |`  (
z  i^i  w )
) )  ->  (
( z  i^i  w
)  e.  On  ->  ( A. y ( ( z  i^i  w )  e.  On  ->  (
y  e.  ( z  i^i  w )  -> 
( ( ( g  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  /\  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) )  ->  u  =  v ) ) ) )
4035, 39sylbid 208 . . . . . . . 8  |-  ( ( g  Fn  z  /\  h  Fn  w )  ->  ( ( <. x ,  u >.  e.  g  /\  <. x ,  v
>.  e.  h )  -> 
( ( z  i^i  w )  e.  On  ->  ( A. y ( ( z  i^i  w
)  e.  On  ->  ( y  e.  ( z  i^i  w )  -> 
( ( ( g  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  /\  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) )  ->  u  =  v ) ) ) )
4140com24 83 . . . . . . 7  |-  ( ( g  Fn  z  /\  h  Fn  w )  ->  ( A. y ( ( z  i^i  w
)  e.  On  ->  ( y  e.  ( z  i^i  w )  -> 
( ( ( g  |`  ( z  i^i  w
) ) `  y
)  =  ( F `
 ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  /\  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) )  ->  ( (
z  i^i  w )  e.  On  ->  ( ( <. x ,  u >.  e.  g  /\  <. x ,  v >.  e.  h
)  ->  u  =  v ) ) ) )
4241com3r 75 . . . . . 6  |-  ( ( z  i^i  w )  e.  On  ->  (
( g  Fn  z  /\  h  Fn  w
)  ->  ( A. y ( ( z  i^i  w )  e.  On  ->  ( y  e.  ( z  i^i  w
)  ->  ( (
( g  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  /\  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) )  ->  ( ( <. x ,  u >.  e.  g  /\  <. x ,  v >.  e.  h
)  ->  u  =  v ) ) ) )
4342imp32 424 . . . . 5  |-  ( ( ( z  i^i  w
)  e.  On  /\  ( ( g  Fn  z  /\  h  Fn  w )  /\  A. y ( ( z  i^i  w )  e.  On  ->  ( y  e.  ( z  i^i  w
)  ->  ( (
( g  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( g  |`  ( z  i^i  w
) )  |`  y
) )  /\  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( F `  ( ( h  |`  ( z  i^i  w
) )  |`  y
) ) ) ) ) ) )  -> 
( ( <. x ,  u >.  e.  g  /\  <. x ,  v
>.  e.  h )  ->  u  =  v )
)
449, 34, 43syl2an 465 . . . 4  |-  ( ( ( z  e.  On  /\  w  e.  On )  /\  ( ( g  Fn  z  /\  A. y  e.  z  (
g `  y )  =  ( F `  ( g  |`  y
) ) )  /\  ( h  Fn  w  /\  A. y  e.  w  ( h `  y
)  =  ( F `
 ( h  |`  y ) ) ) ) )  ->  (
( <. x ,  u >.  e.  g  /\  <. x ,  v >.  e.  h
)  ->  u  =  v ) )
4544ex 425 . . 3  |-  ( ( z  e.  On  /\  w  e.  On )  ->  ( ( ( g  Fn  z  /\  A. y  e.  z  (
g `  y )  =  ( F `  ( g  |`  y
) ) )  /\  ( h  Fn  w  /\  A. y  e.  w  ( h `  y
)  =  ( F `
 ( h  |`  y ) ) ) )  ->  ( ( <. x ,  u >.  e.  g  /\  <. x ,  v >.  e.  h
)  ->  u  =  v ) ) )
4645rexlimivv 2643 . 2  |-  ( E. z  e.  On  E. w  e.  On  (
( g  Fn  z  /\  A. y  e.  z  ( g `  y
)  =  ( F `
 ( g  |`  y ) ) )  /\  ( h  Fn  w  /\  A. y  e.  w  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) )  ->  ( ( <. x ,  u >.  e.  g  /\  <. x ,  v >.  e.  h
)  ->  u  =  v ) )
478, 46sylbi 189 1  |-  ( ( g  e.  A  /\  h  e.  A )  ->  ( ( <. x ,  u >.  e.  g  /\  <. x ,  v
>.  e.  h )  ->  u  =  v )
)
Colors of variables: wff set class
Syntax hints:    -> wi 6    <-> wb 178    /\ wa 360   A.wal 1532    = wceq 1619    e. wcel 1621   {cab 2242   A.wral 2516   E.wrex 2517    i^i cin 3093    C_ wss 3094   <.cop 3584   Oncon0 4329    |` cres 4628    Fn wfn 4633   ` cfv 4638
This theorem is referenced by:  tfrlem7  6332
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 2237  ax-sep 4081  ax-nul 4089  ax-pr 4152  ax-un 4449
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 2121  df-mo 2122  df-clab 2243  df-cleq 2249  df-clel 2252  df-nfc 2381  df-ne 2421  df-ral 2520  df-rex 2521  df-rab 2523  df-v 2742  df-sbc 2936  df-csb 3024  df-dif 3097  df-un 3099  df-in 3101  df-ss 3108  df-pss 3110  df-nul 3398  df-if 3507  df-sn 3587  df-pr 3588  df-tp 3589  df-op 3590  df-uni 3769  df-br 3964  df-opab 4018  df-mpt 4019  df-tr 4054  df-eprel 4242  df-id 4246  df-po 4251  df-so 4252  df-fr 4289  df-we 4291  df-ord 4332  df-on 4333  df-xp 4640  df-rel 4641  df-cnv 4642  df-co 4643  df-dm 4644  df-rn 4645  df-res 4646  df-ima 4647  df-fun 4648  df-fn 4649  df-fv 4654
  Copyright terms: Public domain W3C validator