
여기서 중요한 것은 k > 2일 때 상태가 하나 줄어든 GNFA를 만드는 방법이다.
먼저 일반 상태 하나를 정한 뒤, repairing한다. reparing이 끝나도 여전히 language를 recognize해야 한다.
중요한 건, 일반 상태를 없애야 하며, 시작 상태나 통과 상태를 없애면 안된다.

다음 예시에서 qrip을 없애보자.
qrip을 없애고 여전히 language를 recognize해야한다. 다시 말해 수순은 똑같아야한다.
이를 위해 qrip에 들어오는 arrow와 qrip에서 시작해서 다시 들어오는 arrow, 마지막으로 qrip에서 나가는 arrow에 대해서 처리를 해줘야 한다.
먼저, qrip으로 들어오는 R1을 concatenation한다. R1
그 후 qrip 자신에서 나가면서 들어오는 R2는 몇 번을 해도 상관 없으므로 *를 추가한 후 concatenation한다. R1R2*
그 후 qrip에서 나가는 R3를 concatenation한다. R1R2*R3
마지막으로 R4와 R1R2*R3의 나가는 상태와 들어가는 상태가 같으므로 union한다. R1R2*R3∪R4
이 과정을 겹치면 상태가 하나 줄었어도 이전과 같아진다.

실제로 바꾸는 과정