S -> aAc | bAd. A -> B. B -> g. H0=closure([S'->.S,#])=[S'->.S,#],[S->.aAc,#],[S->.bAd,#] H1=read(H0,S)=[S'->S.,#] H2=read(H0,a)=[S->a.Ac,#],[A->.B,c],[B->.g,c] H3=read(H0,b)=[S->b.Ad,#],[A->.B,d],[B->.g,d] H4=read(H2,A)=[S->aA.c,#] H5=read(H2,B)=[A->B.,c] H6=read(H2,g)=[B->g.,c] H7=read(H3,A)=[S->bA.d,#] H8=read(H3,B)=[A->B.,d] H9=read(H3,g)=[B->g.,d] H10=read(H4,c)=[S->aAc.,#] H11=read(H7,d)=[S->bAd.,#] (#0, agc#) -> (#0 a2, gc#) -> (#0 a2 g6/9, c#) -> (#0 a2 B5/8, c#) -> (#0 a2 A4, c#) -> (#0 a2 A4 c10, #) -> (#0 S1, #) -> accept