Pourquoi avons-nous besoin d'une sémantique formelle pour la logique des prédicats?

25

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?

Martin
la source
1
Cela ressemble à une question sur la logique (pure) plutôt que sur l'informatique. Il serait peut-être préférable de le demander sur math.stackexchange.com .
Tsuyoshi Ito
6
Je dirais le contraire. La logique est l'un des ingrédients fondamentaux de l'informatique théorique, en particulier la piste dite de théorie B.
Dave Clarke
@supercooldave: Je suis d'accord que la logique est un ingrédient fondamental en informatique, mais j'avais deviné que cette question recevrait une réponse plus satisfaisante sur math.stackexchange.com plutôt qu'ici. C'était avant de poster une réponse, bien sûr.
Tsuyoshi Ito
2
@Tsuyoshi: J'ai entendu dire qu'il y avait plus de logiciens employés dans les départements d'informatique que dans n'importe quel autre département, les logiciens des départements de logique étant une race positivement rare.
Charles Stewart
2
@Suresh: Nous avons vu une augmentation de la théorie B au cours de la dernière semaine.
Charles Stewart

Réponses:

18

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.

Neel Krishnaswami
la source
15

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.

Noam Zeilberger
la source
14

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.

X¬Xaller même jusqu'à dire que nous devons accepter qu'il n'y a pas de véritable logique et adopter une attitude pluraliste, en utilisant la logique la plus appropriée pour l'occasion. Compte tenu de la pléthore de logiques disponibles pour les informaticiens (logique linéaire, logique de séparation, logique constructive d'ordre supérieur, nombreuses logiques modales, toutes dans des variétés classiques et intuitionnistes), adopter une attitude pluraliste est quelque chose que la plupart d'entre nous n'ont probablement pas donné une seconde pensée, parce que les logiques sont un outil pour résoudre un problème particulier et nous essayons de sélectionner le plus approprié. Une sémantique formelle est une façon de juger de la pertinence de la logique.

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.

Dave Clarke
la source
1
Vous avez écrit: "Que la sémantique proposée corresponde ou non à la notion intuitive de déduction est une question philosophique." Nous pourrions remplacer le mot «sémantique» dans cette phrase par «règles de preuve» et obtenir la phrase suivante: Que les règles de preuve proposées correspondent ou non à la notion intuitive de déduction est une question philosophique. Mon point ici est que la spécification des règles de preuve est une forme de définition de la sémantique.
Martin
1
En spécifiant la sémantique formelle et en prouvant ensuite la solidité et l'exhaustivité par rapport à cette sémantique, nous avons seulement montré que la sémantique et les règles de preuve sont cohérentes, mais cela ne rend pas les règles de preuve plus "vraies", alors si nous les avions justifiées directement en utilisant la notion intuitive de preuve.
Martin
Je ne suis pas d'accord avec ce que vous dites dans le deuxième paragraphe. Si nous avions défini le syllogisme comme étant solide et complet, nous aurions sûrement inventé d'autres calculs et montré qu'ils peuvent prouver exactement les mêmes énoncés que les syllogismes (c'est-à-dire qu'ils sont solides et complets en référence aux syllogismes). Mais sûrement, certains logiciens et philosophes seraient venus et ont soutenu que les syllogismes ne suffisaient pas. Au plus tard, Boole et Frege auraient étendu l'ensemble des règles, et Gentzen aurait tout aussi bien inventé son ND.
Martin
1
Concernant votre premier commentaire. En effet, les règles de preuve définissent une logique et peuvent être considérées en elles-mêmes comme une sémantique. En effet, il est assez courant dans la recherche sur les langages de programmation que la sémantique d'un langage de programmation soit définie de manière similaire (à savoir via la sémantique opérationnelle). Votre point est donc valable. D'un autre côté, les travaux sur la sémantique tentent de trouver une signification absolue et non opérationnelle pour la formule dans la logique, indépendante des moyens d'effectuer la déduction.
Dave Clarke
1
@Martin, vos réponses aux réponses que les gens publient me semblent "douces" et "non scientifiques". Bien sûr, nous n'avons pas besoin de sémantique, si par "besoin" vous voulez dire "est-il théoriquement possible de dériver tous les théorèmes mathématiques de la logique non sémantique L. bizzare mais prouvablement équivalente". Mais c'est bien d'avoir des modèles! Les modèles peuvent être des programmes informatiques que nous voulons vérifier, des systèmes distribués que nous voulons simuler ou des structures ordonnées sur lesquelles nous pouvons jouer à des jeux Ehrenfeucht-Fraisse pour prouver P = FO (LFP). Ma question est la suivante: pouvez-vous citer un avantage informatique à travailler avec des logiques sans sémantique?
Aaron Sterling
8

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:

  1. Les systèmes de style de Hilbert sont bons pour caractériser la relation de conséquence logique d'une logique, et ils sont généralement bons pour catégoriser plusieurs logiques, telles que les logiques modales rivales;
  2. Les systèmes Tableau sont bons pour formaliser les algorithmes de décision. Typiquement, si une logique est décidable, on peut trouver un système de tableau final comme algorithme de décision, et sinon on peut trouver un système de tableau potentiellement non final qui fournit une procédure de semi-décision. Si l'on veut montrer une limite supérieure sur la complexité de la décidabilité (c'est-à-dire la classe de complexité d'une logique), les systèmes de tableaux sont généralement le premier endroit que l'on regarde.
  3. Les théories de la preuve analytique, telles que la déduction naturelle de Gentzen et le calcul séquentiel, donnent des représentations de preuves qui sont bonnes pour le raisonnement et offrent la notion de preuve analytique, qui est utile pour prouver des propriétés utiles telles que l'interpolation pour une théorie.
  4. Les théories du modèle de style Tarski sont souvent encore meilleures pour raisonner sur la logique, car elles s'éloignent presque complètement des détails syntaxiques de la logique. En logique modale et en théorie des ensembles, ils sont tellement meilleurs pour fournir les résultats que ces logiciens ont tendance à s'intéresser très peu à la théorie des tableaux et des preuves analytiques.

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.

Charles Stewart
la source