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

Theorem tfrlem5 6282
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 6279 . . . . 5  |-  A  =  { g  |  E. z  e.  On  (
g  Fn  z  /\  A. y  e.  z  ( g `  y )  =  ( F `  ( g  |`  y
) ) ) }
32abeq2i 2356 . . . 4  |-  ( g  e.  A  <->  E. z  e.  On  ( g  Fn  z  /\  A. y  e.  z  ( g `  y )  =  ( F `  ( g  |`  y ) ) ) )
41tfrlem3 6279 . . . . 5  |-  A  =  { h  |  E. w  e.  On  (
h  Fn  w  /\  A. y  e.  w  ( h `  y )  =  ( F `  ( h  |`  y ) ) ) }
54abeq2i 2356 . . . 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 2669 . . 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 4316 . . . . 5  |-  ( ( z  e.  On  /\  w  e.  On )  ->  ( z  i^i  w
)  e.  On )
10 r19.26m 2640 . . . . . . . 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 3266 . . . . . . . . . . . . 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 4327 . . . . . . . . . . . . . 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 5394 . . . . . . . . . . . . . . 15  |-  ( y  e.  ( z  i^i  w )  ->  (
( g  |`  (
z  i^i  w )
) `  y )  =  ( g `  y ) )
19 resabs1 4891 . . . . . . . . . . . . . . . 16  |-  ( y 
C_  ( z  i^i  w )  ->  (
( g  |`  (
z  i^i  w )
)  |`  y )  =  ( g  |`  y
) )
2019fveq2d 5381 . . . . . . . . . . . . . . 15  |-  ( y 
C_  ( z  i^i  w )  ->  ( F `  ( (
g  |`  ( z  i^i  w ) )  |`  y ) )  =  ( F `  (
g  |`  y ) ) )
2118, 20eqeqan12rd 2269 . . . . . . . . . . . . . 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 5394 . . . . . . . . . . . . . . 15  |-  ( y  e.  ( z  i^i  w )  ->  (
( h  |`  (
z  i^i  w )
) `  y )  =  ( h `  y ) )
23 resabs1 4891 . . . . . . . . . . . . . . . 16  |-  ( y 
C_  ( z  i^i  w )  ->  (
( h  |`  (
z  i^i  w )
)  |`  y )  =  ( h  |`  y
) )
2423fveq2d 5381 . . . . . . . . . . . . . . 15  |-  ( y 
C_  ( z  i^i  w )  ->  ( F `  ( (
h  |`  ( z  i^i  w ) )  |`  y ) )  =  ( F `  (
h  |`  y ) ) )
2522, 24eqeqan12rd 2269 . . . . . . . . . . . . . 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 5212 . . . . . . . . 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 5215 . . . . . . . . . 10  |-  ( g  Fn  z  ->  (
g  |`  ( z  i^i  w ) )  Fn  ( z  i^i  w
) )
37 fnresin2 5216 . . . . . . . . . 10  |-  ( h  Fn  w  ->  (
h  |`  ( z  i^i  w ) )  Fn  ( z  i^i  w
) )
38 tfrlem2 6278 . . . . . . . . . 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 2634 . 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 2239   A.wral 2509   E.wrex 2510    i^i cin 3077    C_ wss 3078   <.cop 3547   Oncon0 4285    |` cres 4582    Fn wfn 4587   ` cfv 4592
This theorem is referenced by:  tfrlem7  6285
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-sep 4038  ax-nul 4046  ax-pr 4108  ax-un 4403
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 1883  df-eu 2118  df-mo 2119  df-clab 2240  df-cleq 2246  df-clel 2249  df-nfc 2374  df-ne 2414  df-ral 2513  df-rex 2514  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-pss 3091  df-nul 3363  df-if 3471  df-sn 3550  df-pr 3551  df-tp 3552  df-op 3553  df-uni 3728  df-br 3921  df-opab 3975  df-mpt 3976  df-tr 4011  df-eprel 4198  df-id 4202  df-po 4207  df-so 4208  df-fr 4245  df-we 4247  df-ord 4288  df-on 4289  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-fv 4608
  Copyright terms: Public domain W3C validator