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.
fonte
Respostas:
A lógica monádica de segunda ordem é a lógica de primeira ordem mais a quantificação sobre os conjuntos. Portanto, além de poder dizer que existe um elemento de domínio com alguma propriedade ( ), você também pode dizer que existe um conjunto de elementos de domínio com alguma propriedade. Assim, por exemplo, podemos definir 3 cores de gráficos dizendo∃ x ...
Em palavras, existem cores vermelho, verde e azul tais que
A lógica geral de segunda ordem permite não apenas quantificação sobre conjuntos, mas também relações arbitrárias sobre o domínio. Lembre-se de que uma relação é um conjunto de pares sobre o domínio, para alguns k . Conjuntos são apenas relações unárias: k = 1 e um 1- duplo é apenas um elemento do domínio.k k k=1 1
Honestamente, não me lembro das questões de decisão. Um ponto importante é que a lógica completa de segunda ordem permite quantificar a existência de uma ordem linear do domínio
(Acho que, se seu domínio for infinito, você provavelmente precisará especificar além disso que a ordem linear é discreta e tem um elemento mínimo; então você sabe que ele tem um segmento inicial isomórfico aos números naturais, e isso deve ser suficiente.)
No momento, não recordo a prova do inverso (que tudo que é definível no MSO pode ser reconhecido por um autômato apropriado). Se eu tiver tempo, procurarei e postarei um esboço.
fonte