Je suis programmeur et je maîtrise les automates, mais pas la logique.
J'ai lu dans les journaux que les deux sont très étroitement liés. Les automates finis déterministes (DFA), les automates arborescents et les automates à refoulement visible sont tous liés à la logique monadique du second ordre (MSO). Bien que je comprenne que les automates et les gens (dans les articles) ont essayé de m'expliquer la relation avec MSO, ils supposent toujours une solide formation en logique et une compréhension de MSO.
Lorsque je regarde des livres et des cours sur la logique, ils ne traitent principalement que la logique du premier ordre, ce qui semble assez simple et ne comprenant que quelques concepts: les variables, ou, et non, impliquent, pour tous, existent, etc.
Quelqu'un peut-il m'expliquer ou me diriger vers une ressource qui peut expliquer:
- Qu'est-ce que la logique du second ordre contrairement à la logique du premier ordre?
- Qu'est-ce que la logique monadique vs non monadique?
- Pourquoi est-il important qu'une logique de second ordre soit monadique pour être décidable OU pourquoi est-ce la mauvaise question?
- Pourquoi la logique monadique du second ordre est-elle décidable?
- La relation avec au moins les DFA?
S'il s'agit d'une ressource, ce serait bien si elle suppose que je suis un programmeur et non un logicien. Cela signifie que j'aimerais comprendre comment je l'implémenterais en tant que code, car jusque-là les mathématiques me semblent magiques;)
Merci pour toute aide que vous pouvez me donner. J'apprécierai vraiment cela.
la source
Réponses:
La logique du second ordre monadique est la logique du premier ordre plus la quantification sur les ensembles. Ainsi, en plus de pouvoir dire qu'il existe un élément de domaine avec une propriété ( ), vous pouvez également dire qu'il existe un ensemble d'éléments de domaine avec une propriété. Ainsi, par exemple, nous pouvons définir la 3-colorabilité des graphiques en disant∃ x …
En mots, il existe des couleurs rouge, vert et bleu telles que
Honnêtement, je ne me souviens pas des problèmes de décidabilité. Un point clé est que la logique complète du second ordre vous permet de quantifier en existence un ordre linéaire du domaine
(Je suppose que, si votre domaine est infini, vous devez probablement spécifier en plus que l'ordre linéaire est discret et a un élément minimal; alors vous savez qu'il a un segment initial isomorphe aux nombres naturels, et cela devrait être suffisant.)
Pour l'instant, je ne me souviens pas de la preuve de l'inverse (que tout ce qui peut être défini dans MSO peut être reconnu par un automate approprié). Si j'ai le temps, je vais le chercher et poster un croquis.
la source