Safry, są znacznie bardziej skomplikowane.

Jeżeli jest zbiorem stanów akceptowalnych, a jest zbiorem stanów nieakceptowalnych danego języka, to stwórzmy zbiór stanów taki że: dla każdego stanu z stwórzmy stan z dla każdego przejścia (gdzie należy do ) dodajmy przejście dla każdego przejścia (gdzie i należą do ) dodajmy przejście Oznaczmy wszystkie stany z jako akceptowalne.

Jeśli automat ten wejdzie w dowolny stan z to nigdy tego zbioru nie opuści, czyli w szczególności nigdy nie wejdzie w stan z – a więc zaakceptuje tylko słowa nienależące do oryginalnego języka.

Jeśli jakieś słowo nie jest akceptowane przez automat oryginalny, to od pewnego momentu wszystkie stany należą do Weźmy dowolne przejście po tym miejscu i zmieńmy je na przejście z do i „poprimujmy” wszystkie następne przejścia.