Sou programador com domínio de autômatos, mas não de lógica.
Li nos jornais que os dois estão muito relacionados. Autômatos finitos determinísticos (DFA), autômatos em árvore e autômatos visivelmente pushdown estão todos relacionados à lógica monádica de segunda ordem (MSO). Embora eu entenda que os autômatos e as pessoas (nos documentos) tentaram explicar a relação com o MSO para mim, eles sempre assumem um forte background em lógica e um entendimento do MSO.
Quando olho para livros e cursos sobre lógica, eles geralmente lidam apenas com lógica de primeira ordem, o que parece bastante simples e consiste em apenas alguns conceitos: variáveis, ou, e, e não, implica, para todos, existe, etc.
Alguém pode me explicar ou apontar para um recurso que possa explicar:
- O que é lógica de segunda ordem em contraste com a lógica de primeira ordem?
- O que é lógica monádica versus lógica não monádica?
- Por que é importante que uma lógica de segunda ordem seja monádica para ser decidida OU por que essa é a pergunta errada?
- Por que a lógica monádica de segunda ordem é decidível?
- A relação com pelo menos DFAs?
Se for um recurso, seria bom se assumir que sou um programador e não um lógico. Isso significa que eu gostaria de entender como implementá-lo como código, porque até então a matemática parece mágica para mim;)
Obrigado por qualquer ajuda que você possa me dar. Eu realmente apreciaria isto.