Productions are just about complete

Need to account for index(x+1) == index(x+2) and duplications of
productions