|  |  |  | The Correctness of LR(0) parsing | 
 
 1 .
1 .  2 ]
2 ] 
 (
(  0,
0,
             ) iff [ N
) iff [ N 
            
 1 .
1 .  2 ] is valid for
2 ] is valid for
             .
.
      
        [N  ->  1 .
1 .  2 ]
2 ] 
 (
(  0,
0,  )
         only if
         [ N
)
         only if
         [ N 
            
 1 .
1 .  2 ] is valid for
2 ] is valid for  .
.
      
 . S ], or
. S ], or
            
 1 .
1 .  2 ]
                  for
2 ]
                  for  1  !=
1  !=  .
.
	         Note that the set of items associated with a state in the LR(0) machine is
      just the closure of the set of kernel items associated with the state.  In
      particular, all items in goto( ,x) are kernel items.
,x) are kernel items.
       Lemma 1: Given a set  of LR(0) items valid for some
 of LR(0) items valid for some 
             
 (Vn  U Vt)*, all items in closure(
(Vn  U Vt)*, all items in closure( ) are
       valid for
) are
       valid for  .
.
      
       Lemma 2: 
	For kernel items, 
	[N  ->  1 .
1 .  2 ]
2 ] 
 (
(  0,
0,  )
         only if
         [ N
)
         only if
         [ N 
            
 1 .
1 .  2 ] is valid for
2 ] is valid for  .
.
      
|  |  |  | The Correctness of LR(0) parsing |