Jestem programistą z automatami, ale nie logiką.
Przeczytałem w artykułach, że te dwa są ze sobą ściśle powiązane. Deterministyczne automaty skończone (DFA), automaty drzewa i automaty z widocznym przesunięciem w dół są powiązane z logiką Monadic drugiego rzędu (MSO). Chociaż rozumiem automaty i ludzie (w dokumentach) próbowali mi wyjaśnić związek z MSO, zawsze zakładają silne zaplecze logiczne i zrozumienie MSO.
Kiedy patrzę na książki i kursy z logiki, przeważnie obsługują one tylko logikę pierwszego rzędu, która wydaje się dość prosta i składa się tylko z kilku pojęć: zmienne, lub, nie, sugeruje, dla wszystkich, istnieje itp.
Czy ktoś może mi wyjaśnić lub wskazać mi zasób, który może wyjaśnić:
- Czym jest logika drugiego rzędu w przeciwieństwie do logiki pierwszego rzędu?
- Czym jest logika monadyczna a nie monadyczna?
- Dlaczego ważne jest, aby logika drugiego rzędu była monadyczna, aby można było o niej zadecydować LUB dlaczego to niewłaściwe pytanie?
- Dlaczego rozstrzygająca jest logika monadyczna drugiego rzędu?
- Relacja z przynajmniej DFA?
Jeśli jest to zasób, fajnie byłoby założyć, że jestem programistą, a nie logikiem. Oznacza to, że chciałbym zrozumieć, jak zaimplementuję go jako kod, ponieważ do tego czasu matematyka wydaje mi się magią;)
Dziękuję za wszelką pomoc, którą możesz mi udzielić. Byłbym bardzo wdzięczny.