Pointeurs pour les applications CS de la logique


17

Je suis un étudiant diplômé en mathématiques avec une solide expérience en logique. J'ai suivi un cours d'un an sur la logique avec des cours de troisième cycle sur la théorie des modèles finis et un autre sur le forçage et la théorie des ensembles. La plupart des textes CS semblent n'assumer qu'un arrière-plan très modeste en logique, qui couvre principalement les bases de la logique propositionnelle et de la logique du premier ordre.

Je voudrais obtenir des conseils sur où aller pour les applications CS où du matériel plus lourd issu de la logique est utilisé. Un de mes intérêts serait la théorie des types et les méthodes formelles en général. Quelqu'un pourrait-il suggérer de bonnes lectures après les livres d'introduction sur la vérification des modèles et les langages de programmation?


J'ai fait cette CW car la liste est très longue. Jetez un œil à 11 volumes de Handbook of Logic in Computer Science et Handbook of Logic in AI.
Kaveh

Un bon point de départ est l'article suivant: - Samuel R. Buss, Alexander A. Kechris, Anand Pillay et Richard A. Shore, « Perspectives for logic mathematic in the 21st-century », 2001. Notamment la section de Sam Buss.
Kaveh

Cette question pourrait être développée et les réponses uniformément structurées afin que cette page devienne finalement une ressource de point de départ utile sur la logique de calcul. Veuillez vous joindre à la discussion sur les méta.
Vijay D

Réponses:


15

J'ai brièvement passé en revue certains domaines ici, essayant de me concentrer sur des idées qui plairaient à quelqu'un ayant une formation en logique mathématique avancée.

Théorie des modèles finis

La restriction la plus simple de la théorie des modèles classiques du point de vue de l'informatique est d'étudier les structures sur un univers fini. Ces structures se présentent sous la forme de bases de données relationnelles, de graphiques et d'autres objets combinatoires apparaissant partout en informatique. La première observation est que plusieurs théorèmes fondamentaux de la théorie des modèles du premier ordre échouent lorsqu'ils sont limités aux modèles finis. Ceux-ci incluent le théorème de compacité, le théorème d'exhaustivité de Godel et les constructions ultraproductives. Trakhtenbrot a montré que contrairement à la logique classique du premier ordre, la satisfiabilité sur des modèles finis est indécidable.

Les outils fondamentaux dans ce domaine sont la localité de Hanf, la localité de Gaifman et de nombreuses variantes des jeux Ehrenfeucht-Fraisse. Les sujets étudiés incluent les logiques infinitaires, les logiques avec comptage, les logiques à virgule fixe, etc. en mettant toujours l'accent sur les modèles finis. Des travaux se concentrent sur l'expressivité dans des fragments à variable finie de logique du premier ordre et ces logiques ont des caractérisations via des jeux de galets. Une autre direction de recherche consiste à identifier les propriétés des logiques classiques qui survivent à la restriction aux modèles finis. Un résultat récent dans cette direction de Rossman montre que certains théorèmes de préservation de l'homomorphisme tiennent toujours sur des modèles finis.

  1. Théorie des modèles finis , Ebbinghaus et Flum
  2. Éléments de la théorie des modèles finis , Libkin
  3. Sur les stratégies gagnantes dans les jeux Ehrenfeucht-Fraisse , Arora et Fagin, 1997.
  4. Théorèmes de préservation de l'homomorphisme , Rossman

Le -calculus propositionnelμ

Une ligne de travail de la fin des années 60 a montré que de nombreuses propriétés des programmes pouvaient être exprimées dans des extensions de la logique propositionnelle qui soutenaient le raisonnement sur les points fixes. Le calcul modal- est une logique développée au cours de cette période qui a trouvé un large éventail d'applications dans les méthodes formelles automatisées. De nombreuses méthodes formelles sont liées à la logique temporelle, ou aux logiques de style Hoare, et une grande partie de cela peut être considérée en termes de μ -calcul. En fait, j'ai entendu dire que le μ -calcul est le langage d'assemblage des logiques temporelles.μμμ

μμμμμ

  1. μ
  2. μ
  3. μ
  4. μ
  5. La hiérarchie d'alternance du mu-calcul modal est stricte , Bradfield, 1996
  6. La hiérarchie variable du mu-calcul est stricte , Berwanger, E. Grädel et G. Lenzi, 2005

Logique temporelle linéaire

La logique temporelle linéaire a été adoptée de la logique philosophique à l'informatique pour raisonner sur le comportement des programmes informatiques. Il était considéré comme une bonne logique car il pouvait exprimer des propriétés telles que l'invariance (absence d'erreurs) et la terminaison. La théorie de la preuve de la logique temporelle a été développée par Manna et Pnueli (et d'autres, plus tard) dans leurs articles et livres. La vérification du modèle et le problème de satisfiabilité pour LTL peuvent tous deux être résolus en termes d'automates sur des mots infinis.

Pnueli a également démontré des résultats fondamentaux sur le LTL dans son article original présentant la logique du raisonnement sur les programmes. Vardi et Wolper ont donné une compilation beaucoup plus simple des formules LTL dans les automates Buchi. La connexion à la logique temporelle a conduit à une étude intense des algorithmes pour dériver efficacement les automates de LTL, et pour la détermination et la complémentation des automates Buchi. Le théorème de Kamp montre que LTL avec depuis et jusqu'àωμμ

  1. La logique temporelle des programmes , Pnueli 1977
  2. De l'Église et avant PSL , Vardi, 2008
  3. Une approche automate-théorique de la logique temporelle linéaire , Vardi et Wolper, 1986
  4. La logique temporelle des systèmes réactifs et simultanés: spécification , Manna et Pnueli
  5. Une hiérarchie Jusqu'à et d'autres applications d'un jeu Ehrenfeucht-Fraïssé pour la logique temporelle , Etessami et Wilke, 2000

Logiques d'arbre de calcul

μ

Le problème de vérification de modèle pour CTL sur des structures finies est en temps polynomial. Le problème de vérification de modèle pour CTL * est EXPTIME terminé. L'axiomatisation de CTL * était un problème ouvert difficile qui a finalement été résolu par Reynolds 2001. L'analogue du théorème de van Benthem pour la logique modale et du théorème de Kamp pour LTL est donné pour CTL * par un théorème de Hafer et Thomas montrant que CTL * correspond à un fragment de logique monadique du second ordre sur les arbres binaires. Une caractérisation ultérieure par Hirschfeld et Rabinovich est que CTL * est expressivement équivalent au fragment invariant de bisimulation de MSO avec quantification de chemin.

  1. "Parfois" et "pas jamais" revisités: sur la logique temporelle de ramification versus temps linéaire , Emerson et Halpern, 1986
  2. Sur le pouvoir expressif de CTL , Moller, Rabinovich, 1999
  3. Logique d'arbre de calcul CTL * et quantificateurs de chemin dans la théorie monadique de l'arbre binaire , Hafer et Thomas, 1987
  4. An Axiomatization of Full Computation Tree Logic , Reynolds, 2001

Langues de mots infinis

ω

ωωω-mots. De plus, en utilisant la topologie élémentaire, ils ont montré que chaque propriété de temps linéaire peut être exprimée comme l'intersection d'une propriété de sécurité et de vivacité. Ce résultat a des conséquences pratiques importantes car il signifie que plutôt que de construire des vérificateurs de propriétés complexes, il suffit de construire un vérificateur de sécurité et de vivacité. Une réduction supplémentaire montre qu'il suffit de construire un vérificateur d'invariance et un vérificateur de terminaison. La caractérisation sécurité-vivacité a été étendue aux arbres par Manolios et Trefler et plus récemment aux ensembles de traces, dans le cadre des hyperpropriétés, par Clarkson et Schneider.

  1. Infinite Words: Automata, Semigroups, Logic and Games , Perrin et Pin, 2004
  2. ω
  3. ω
  4. Sur les congruences syntaxiques pour les langues ω , Maler et Staiger, 1993

Automates sur des mots infinis

Là où il y a des langues, les informaticiens auront des automates. Entrez dans la théorie des automates sur des mots infinis et des arbres infinis. Il est extrêmement triste que, bien que des automates sur des mots infinis soient apparus dans les deux ans suivant l’automate sur des mots finis, ce sujet fondamental est rarement couvert dans les programmes d’informatique standard. Les automates sur des mots et des arbres infinis fournissent une approche très robuste pour prouver la décidabilité de la satisfiabilité pour une famille de logiques très riche.

ω

  1. Décidabilité des théories et des automates du second ordre sur les arbres infinis , Rabin, 1969
  2. Automates sur des objets infinis , Thomas, 1988
  3. Automates: de la logique aux algorithmes , Vardi, 2007

Infinite Games

Les jeux logiques et infinis sont un domaine de recherche actif. Les notions de théorie des jeux apparaissent partout en informatique dans la dualité entre non-déterminisme et parallélisme (alternance), un programme et son environnement, quantification universelle et existentielle, modalités de boîte et de diamant, etc. Les jeux se sont avérés être un excellent moyen d'étudier les propriétés des différents types de logiques non classiques énumérés ci-dessus.

Comme pour les critères d'acceptation des automates, nous avons différentes conditions de gain pour les jeux et beaucoup peuvent être équivalentes. Puisque vous avez posé des questions sur les résultats classiques, le théorème de la détermination de Borel et les jeux de Gale-Stewart se trouvent souvent discrètement dans l'arrière-plan de plusieurs modèles de jeu que nous étudions. Une question urgente de notre temps concerne la complexité de la résolution des jeux de parité. Jurdzinski a donné un algorithme d'amélioration de la stratégie et a montré que le choix du gagnant se situait à l'intersection des classes de complexité UP et coUP. La complexité précise de l'algorithme de Jurdzinski était ouverte jusqu'à ce que Friedmann lui donne une limite inférieure de temps exponentiel en 2009.

  1. Décider du vainqueur des jeux de parité est dans UP ∩ co-UP , Jurdzinski, 1998
  2. Jeux pour le μ-calcul , Niwinski et Walukiewicz, 1996
  3. Une limite inférieure exponentielle pour l'algorithme d'amélioration de la stratégie du jeu de parité tel que nous le connaissons , Friedmann, 2009

10

Edmund M. Clarke, Orna Grumberg, Doron A. Peled: Vérification de modèle . MIT Press 1999, est un beau livre (pour moi) sur la vérification des modèles.

Glynn Winskel: La sémantique formelle des langages de programmation: une introduction . MIT Press 1994, est l'un des manuels standard sur les langages de programmation.

Mordechai Ben-Ari: Logique mathématique pour l'informatique . Springer 2001, c'est peut-être ce que vous cherchez.


7

La théorie des bases de données est un domaine tentaculaire fournissant de nombreuses applications de la logique. La complexité descriptive et la théorie des modèles finis sont des domaines étroitement associés. Autant que je sache, ces domaines ont tous tendance à utiliser des styles algébriques de logique (sur les traces de Birkhoff et Tarski) plutôt que de la théorie de la preuve. Cependant, certains travaux de Peter Buneman , Leonid Libkin , Wenfei Fan , Susan Davidson , Limsoon Wong , Atsushi Ohori et d'autres chercheurs qui travaillaient à l'UPenn dans les années 80-90 ont cherché à unir la théorie du langage de programmation et les bases de données. Cela semble exiger d'être à l'aise avec les deux styles de logique. Il en va de même pour les travaux plus récents de James Cheneyet Philip Wadler .

En termes de références spécifiques, le manuel standard est disponible en ligne pour référence pratique:

Malheureusement, je ne connais pas de manuels ou d'enquêtes généraux à jour couvrant ce domaine en évolution rapide. J'ai trouvé deux sondages plus anciens utiles. Premier,

montre comment connecter les points entre Tarski et un sous-champ spécifique, les bases de données de contraintes. Seconde,

présente la théorie des bases de données (style 1996) aux théoriciens des modèles finis et met en évidence de nombreuses applications intéressantes de la logique dans les bases de données. Pour des travaux plus récents (tels que la théorie de XML, la provenance, les modèles de streaming ou les bases de données graphiques), la lecture d'articles de recherche hautement cités est une approche raisonnable.


6

Michael Huth et Mark Ryan: Logic in computer science , Cambridge University Press, 2004.

Je recommande fortement ce livre comme introduction générale sur la façon dont la logique joue un rôle en informatique.


4

Une utilisation clé de la logique dans CS est la logique de programme, également appelée logique Hoare.

2(π17)

Une situation similaire se produit dans l'étude des logiques modales qui (simplifiant encore un peu) ne sont pas aussi expressives que la logique du premier ordre, mais ce qu'elles peuvent exprimer, elles l'expriment avec des formules et des preuves plus courtes.

L'identification de fragments appropriés de ZFC n'est pas difficile pour les langages de programmation simples, mais devient rapidement plus difficile à mesure que les langages de programmation acquièrent plus de fonctionnalités. Les deux dernières années ont vu des progrès substantiels dans cette entreprise.

Le papier An Axiomatic Basis for Computer Programming de T. Hoare est souvent considéré comme fondant sérieusement l'étude de la logique du programme, est facile à lire et probablement un bon moyen de commencer à s'aventurer sur le terrain. La même logique est étudiée plus en détail dans le livre de Winskel "Formal Semantics of Programming Languages" mentionné par @vb le.

La théorie des types peut être vue sous un jour similaire. Le principal argument de vente de la théorie des types est l'identification des preuves avec des programmes (purement fonctionnels), conduisant à une grande économie de concepts et à une puissante automatisation (sous la forme d'inférence de type et de démonstrateurs de théorèmes interactifs). Le prix de la théorie des types étant une manière élégante d'organiser les preuves est qu'elle ne semble pas très bien fonctionner avec des langages de programmation qui ne sont pas purement fonctionnels.

Un texte récent et profondément moderne qui introduit la logique de programme d'une manière teintée de théorie des types est Software Foundations de Pierce et al. Cela vous mènera tout près de (a) la pointe de la recherche en vérification de programme et, en tant que manuel, donne probablement un aperçu de la façon dont l'informatique et les mathématiques seront enseignées à l'avenir.

Une fois qu'une logique de programme a été développée pour un langage, l'étape suivante est l'automatisation ou l'automatisation partielle: la construction de preuves pour des programmes non triviaux demande beaucoup de travail, et nous aimerions que les machines en fassent autant que possible. Beaucoup de recherches actuelles sur les méthodes formelles liées à cette automatisation.


3

Il existe une très forte tradition de logique en informatique. Les problèmes que nous étudions et l'esthétique de la communauté de la logique computationnelle ne sont pas identiques à ceux de la communauté de la logique mathématique. Vous avez tout à fait raison de dire que les développements importants de la théorie des modèles, de la méta-théorie de la logique du premier ordre et de la théorie des ensembles ne sont pas couramment utilisés en logique de calcul. On peut avec succès rechercher des logiques de calcul sans voir ou utiliser des ultrafiltres, une analyse non standard, le forçage, le théorème de Paris-Harrington et une foule d'autres concepts fascinants qui sont considérés comme importants dans la logique classique.

Tout comme on applique des idées mathématiques pour étudier la logique ainsi que des idées logiques pour étudier les mathématiques, nous appliquons la logique pour étudier l'informatique et appliquer des perspectives de calcul pour étudier la logique. Cette focalisation différente a des conséquences assez dramatiques sur les types de résultats qui sont importants pour nous.

Voici une citation de John Baez sur la logique et l'informatique. Je ne partage pas exactement le même point de vue car je ne connais pas très bien la logique mathématique avancée.

Quand j'étais étudiant, j'étais très intéressé par la logique et les fondements des mathématiques --- je cherchais toujours les concepts les plus hallucinants que je pouvais saisir, et le théorème de Goedel, le théorème de Loewenheim-Skolem, etc. là-bas avec la mécanique quantique et la relativité générale en ce qui me concerne. [...] Je me souviens avoir ressenti à l'époque que la logique était devenue moins révolutionnaire qu'elle ne l'était au début du siècle. Il me semblait que la logique était devenue une branche des mathématiques comme les autres, étudiant les propriétés obscures des modèles des axiomes de Zermelo-Fraenkel, plutôt que de remettre en question les présomptions de base implicites dans ces axiomes et oser poursuivre de nouvelles approches différentes. [...]

Quoi qu'il en soit, il est maintenant assez clair pour moi que je n'avais tout simplement pas lu les bonnes choses. Je pense que Rota a dit que le travail vraiment intéressant sur la logique s'appelle désormais "informatique", [...] - Semaine 40, Find of This Week, John Baez

La logique informatique est un domaine vaste et en plein développement. Je trouve que chaque perspective de la logique classique peut être modifiée pour dériver une certaine perspective sur la logique de calcul. L'entrée de Wikipedia sur la logique mathématique divise le domaine en théorie des ensembles, théorie des modèles, théorie des preuves et théorie de la récursivité. Vous pouvez essentiellement prendre ces zones et leur ajouter une saveur de calcul et obtenir un sous-champ de logique de calcul.

Théorie des modèles Nous aimons étudier la théorie des modèles de la logique non classique et les modèles non classiques de la logique classique. J'entends par là que nous étudions les logiques modales, temporelles et sous-structurelles, et que nous étudions les logiques sur les arbres, les mots et les modèles finis, par opposition aux modèles classiques comme les algèbres. Les deux problèmes fondamentaux sont la satisfiabilité et la vérification des modèles. Les deux ont une immense signification pratique et théorique. En revanche, ces problèmes sont moins centraux dans la logique classique.

Théorie de la preuve Nous étudions la complexité et l'efficacité avec lesquelles nous pouvons générer des preuves dans les systèmes de preuve classiques, ainsi que le développement de nouveaux systèmes de preuve non classiques qui sont sensibles aux considérations de complexité et d'efficacité. La déduction automatisée étudie la génération d'épreuves assistée par machine, de manière générale. Le processus peut impliquer une interaction humaine ou être complètement automatique. Il y a beaucoup de travail sur le développement de procédures de décision pour les théories logiques. La complexité des preuves se concentre sur la taille des preuves et la complexité de calcul de la génération des preuves. Il existe une ligne de travail fascinante reliant les programmes aux preuves, qui se combine avec un travail descendant de la logique linéaire pour développer des systèmes de preuve, et par conséquent des langages de programmation, qui sont sensibles aux ressources.

Théorie de la récursivité Notre théorie de la récursivité est la théorie de la complexité. Plutôt que d'étudier ce qui est calculable, nous étudions l'efficacité avec laquelle nous pouvons calculer. Il existe de nombreux analogues de la théorie de la récursivité dans la théorie de la complexité, mais les résultats et les séparations de la théorie de la récursivité ne valent pas toujours pour leurs analogues théoriques de la complexité. Au lieu d'ensembles calculables et d'une hiérarchie arithmétique, nous avons le temps polynomial, la hiérarchie temporelle polynomiale et l'espace polynomial entourant la hiérarchie. Au lieu de la quantification bornée dans la hiérarchie arithmétique, nous avons la satisfiabilité et les formules booléennes quantifiées et la quantification bornée des formules booléennes.

L'article de l'enquête

Sur l'efficacité inhabituelle de la logique en informatique

est un bon point de départ pour obtenir une vue de très haut niveau de la logique de calcul. Je vais énumérer plusieurs domaines de l'informatique à orientation logique. J'espère que d'autres éditeront cette réponse et ajouteront à cette liste ici, et éventuellement ajouteront un lien vers une réponse sur cette page.

  1. Théorie des modèles finis
  2. Complexité des preuves
  3. Déduction algorithmique (procédures de décision pour les théories logiques)
  4. Logique des programmes
  5. Logique dynamique
  6. Logique temporelle linéaire et ses variantes
  7. Logic d'arbre de calcul et ses variantes
  8. Logique épistémique
  9. Théorie des bases de données
  10. Théorie des types
  11. Automates sur des mots infinis
  12. Logique catégorique
  13. Théorie de la concurrence et algèbre de processus
  14. Théorie des domaines
  15. Logique linéaire
  16. Complexité descriptive
  17. Vérification du modèle
  18. Calculs à points fixes et logiques de fermeture transitive

1

un domaine de fort chevauchement entre la logique et l'informatique est la démonstration automatisée des théorèmes , par exemple [4]. par exemple, ref [1] est l'utilisation du prouveur de théorème de Boyer-Moore pour vérifier / vérifier le théorème de Godels. un autre résultat majeur / impressionnant récent est l'achèvement récent de la vérification logicielle du théorème des quatre couleurs (et d'autres tels que Odd Order et Feit-Thompson [3]) à la recherche de Microsoft par Gonthier. [2]

[1] Métamathématiques, machines et preuve de Gödel (Cambridge Tracts in Theoretical Computer Science par Shankar

[2] Une preuve vérifiée par ordinateur du théorème des quatre couleurs Georges Gonthier

[3] Des algorithmes intéressants dans la formalisation du théorème de Feit-Thompson? tcs.se

[4] Où et comment les ordinateurs ont-ils aidé à prouver un théorème? tcs.se

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.