Considérez cette question comme résolue. Je ne choisirai pas la meilleure réponse car elles ont toutes contribué à ma compréhension du sujet.
Je ne sais pas quel avantage nous avons en définissant formellement la sémantique de la logique des prédicats. Mais je vois la valeur d'avoir un calcul de preuve formel. Mon point est que nous n'aurions pas besoin de sémantique formelle pour justifier les règles d'inférence des calculs de preuve.
Nous pourrions définir un calcul qui imite les «lois de la pensée», c'est-à-dire les règles d'inférence utilisées par les mathématiciens depuis des centaines d'années pour vérifier leurs théorèmes. Un tel calcul existe déjà: la déduction naturelle. Ensuite, nous définirions ce calcul comme solide et complet.
Cela peut être justifié en réalisant que la sémantique formelle de la logique des prédicats n'est qu'un modèle. La pertinence du modèle ne peut être justifiée que de manière intuitive. Ainsi, en montrant que la déduction naturelle est saine et complète par rapport à la sémantique formelle, cela ne rend pas la déduction naturelle plus "vraie". Il serait tout aussi bon de justifier directement et intuitivement les règles de la déduction naturelle. Le détour par la sémantique formelle ne nous donne rien.
Ensuite, après avoir défini la déduction naturelle comme étant solide et complète, nous pourrions montrer la solidité et l'exhaustivité d'autres calculs en montrant que les preuves qu'ils produisent peuvent être traduites en déduction naturelle et vice versa.
Mes réflexions ci-dessus sont-elles correctes? Pourquoi est-il important de prouver la solidité et l'exhaustivité des calculs de preuve par référence à la sémantique formelle?
Réponses:
Un commentaire mineur et une réponse plus sérieuse.
Premièrement, il n'est pas logique de déclarer un système de déduction naturel complet par décret. La déduction naturelle est intéressante précisément parce qu'elle a une notion interne naturelle de cohérence et / ou d'exhaustivité - à savoir, l'élimination des coupures. C'est un théorème fantastique, et l'OMI justifie pleinement les tentatives de donner une sémantique purement théorique (et par la correspondance CH, il justifie également l'utilisation de méthodes opérationnelles dans la sémantique du langage de programmation). Mais cela est intéressant précisément parce qu'il offre une notion plus raffinée de la bonne logique que de la cohérence. Prendre la route théorique de la preuve signifie que vous devrez faire plus de travail, mais en échange, vous obtenez de meilleurs résultats.
Cependant, il arrive que parfois la logique en soijoue un rôle secondaire. Nous pouvons commencer par une (famille de) modèles, puis chercher des façons d'en parler syntaxiquement, en utilisant une logique. La solidité et l'exhaustivité d'une logique par rapport à une famille de modèles indique que la logique capture vraiment tout ce qui est intéressant et vrai que vous pouvez dire sur la classe de modèles. Un exemple concret du moment où les modèles sont plus intéressants que les théories logiques se produit dans l'analyse des programmes et la vérification des modèles. Là, la chose habituelle à faire est de considérer votre modèle comme l'exécution d'un programme et la logique comme un fragment de logique temporelle. Les propositions que vous pouvez dire dans ces langages ne sont (délibérément) pas terriblement excitantes - par exemple, les déréférences de pointeur nul ne se produisent jamais - mais c'est le fait qu'il s'applique aux exécutions de programme réelles qui lui donne de l'intérêt.
la source
Je vais juste ajouter une autre perspective pour augmenter les réponses ci-dessus. Premièrement, ces réflexions valent la peine et de nombreuses personnes ont eu des idées similaires. En philosophie, cela est parfois appelé "sémantique de preuve-théorique", faisant appel aux travaux de Nuel Belnap, Dag Prawitz, Michael Dummett et d'autres dans les années 60 et 70, qui eux-mêmes font appel aux travaux de Gentzen sur la déduction naturelle. Per Martin-Löf et Jean-Yves Girard semblent également proposer des variantes de cette position dans leurs écrits. Et parlant très largement, dans les langages de programmation, c'est «l'approche syntaxique de la solidité du type».
Le fait est que même si vous acceptez que les règles de la logique n'ont pas besoin d'une interprétation sémantique distincte, ce n'est pas très intéressant / utile de dire qu'elles sont auto-justifiées et de s'en tenir à cela. La question est de savoir ce qu'une sémantique formelle accomplit et s'il est possible d'y parvenir avec moins de détours. Cependant, le projet d'unifier la théorie des modèles avec la théorie de la preuve analytique est important mais toujours non résolu, étant activement poursuivi sur de nombreux fronts, y compris la logique catégorique, la sémantique des jeux et les "ludiques" de Girard. Par exemple, en plus de ce que Charles a mentionné, un autre avantage qualitatif des modèles ayant la capacité est de fournir en béton contre - à non-les théorèmes, et la question est de savoir comment donner un sens à cela dans une approche "directe". Pour une réponse d'inspiration ludique, voir "Sur le sens de l'exhaustivité logique" de Michele Basaldella et Kazushige Terui.
la source
Une sémantique formelle donne un sens direct aux termes du calcul indépendamment des règles de preuve syntaxique pour les manipuler. Sans sémantique formelle, comment pouvez-vous dire si les règles de déduction sont correctes (solidité) ou si vous en avez assez (exhaustivité)?
Il y a eu des «lois de la pensée» proposées avant la déduction naturelle. Les syllogismes d'Aristote en faisaient partie. Si nous les avions définis pour être solides et complets, nous les utiliserions peut-être encore aujourd'hui, plutôt que de développer des techniques logiques plus avancées. Le fait est que si les syllogismes capturent complètement les lois de la pensée, pourquoi aurions-nous besoin de concevoir d'autres logiques. Et s'ils étaient en fait incohérents? Avoir une sémantique avec le calcul de preuve formel et les preuves de solidité et d'exhaustivité les reliant fournit un bâton de mesure pour juger de la valeur d'un tel système de raisonnement. Elle ne resterait plus isolée.
Une autre raison d'avoir une sémantique formelle est qu'il y a plus de logiques que de calcul de prédicat. Beaucoup de ces logiques sont conçues pour raisonner sur un type particulier de système. (Je pense aux logiques modales). Ici, la classe des systèmes est connue et la logique vient plus tard (bien que, historiquement, ce ne soit pas vrai non plus). Encore une fois, la solidité nous dit si les axiomes de la logique capturent correctement le "comportement" du système, et l'exhaustivité nous dit si nous avons suffisamment d'axiomes. Sans sémantique, comment saurions-nous si les règles de déduction sont suffisantes et non absurdes?
Un exemple de logique qui a été définie purement syntaxiquement et le travail est toujours en cours pour lui fournir une sémantique formelle est la logique BAN pour le raisonnement sur les protocoles cryptographiques. Les règles d'inférence logique semblent raisonnables, alors pourquoi fournir une sémantique formelle? Malheureusement, la logique BAN peut être utilisée pour prouver qu'un protocole est correct, mais des attaques contre de tels protocoles peuvent exister. Les règles de déduction sont donc erronées , du moins en ce qui concerne la sémantique attendue.
la source
Je suis d'accord avec supercooldave, mais il y a une autre raison, plus pragmatique, de vouloir plus qu'un ensemble ou un autre de règles d'inférence qui caractérisent une logique: un ensemble donné de règles d'inférence a tendance à ne pas être bon pour répondre au type de problèmes rencontrés lors de la mise en place de la logique utiliser.
Si vous avez une logique spécifiée par une liste d'axiomes et de quelques règles en tant que système de Hilbert, il va généralement être difficile de comprendre comment prouver un théorème donné dans le système, et sans un aperçu théorique, vous n'allez pas pouvoir prouver qu'une proposition donnée ne peut pas être prouvée dans le système. Les modèles traditionnels sont bons pour prouver des propriétés qui tiennent pour toute la logique par induction.
Quatre types d'outils sont utiles pour résoudre les problèmes que la plupart des logiciens veulent résoudre, classés du moins au plus sémantique:
Puisque supercooldave a mentionné la logique intuitionniste: sans la règle du milieu exclu, la théorie des modèles devient beaucoup plus compliquée et les théories de la preuve analytique deviennent plus importantes, généralement la sémantique de choix. Les techniques algébriques, telles que la théorie des catégories, deviennent préférées pour l'abstraction de la complexité syntaxique.
la source