ScholarGate
Assistant

Logique temporelle et modale en informatique

Les logiques temporelles et modales étendent la logique classique avec des opérateurs pour le temps et la possibilité, offrant des langages précis pour spécifier comment un programme ou un système réactif doit se comporter tout au long de son exécution.

Trouver un sujet avec PaperMindBientôtFind papers & topics
Tools & resources
Télécharger les diapositives
Learn & explore
VidéoBientôt

Definition

La logique temporelle augmente la logique propositionnelle ou du premier ordre avec des opérateurs décrivant quand des propriétés sont valides au cours d'un calcul, tels que « toujours », « finalement » et « jusqu'à » ; la logique modale généralise cela avec des opérateurs pour la nécessité et la possibilité sur une structure d'états et de transitions.

Scope

Ce sujet couvre les logiques temporelles à temps linéaire et à temps arborescent telles que LTL et CTL, les logiques modales incluant la logique dynamique et le mu-calcul modal, l'expression des propriétés de sûreté (safety) et de vivacité (liveness), ainsi que les problèmes algorithmiques de vérification de modèles (model checking) et de satisfiabilité qui rendent ces logiques centrales à la vérification automatisée.

Core questions

  • Comment une logique peut-elle exprimer qu'un événement positif se produira finalement ou qu'un événement négatif ne se produira jamais ?
  • Quelle est la différence entre raisonner sur une seule exécution et sur tous les futurs possibles ?
  • Comment la vérification de la satisfaction d'une propriété temporelle par un système est-elle rendue algorithmique ?
  • Quelles logiques temporelles offrent un équilibre entre puissance expressive et efficacité de la vérification ?

Key theories

Logique temporelle pour la spécification de programmes
Pnueli a montré que la logique temporelle permet de capturer la correction des programmes réactifs et concurrents en exprimant des propriétés sur leurs exécutions, fournissant un langage uniforme pour les exigences de sûreté et de vivacité.
Vérification de modèles pour la logique à temps arborescent
Clarke et Emerson ont introduit la logique arborescente de calcul (computation tree logic) et un algorithme pour la vérifier automatiquement par rapport à un modèle à états finis, fondant ainsi le domaine de la vérification de modèles.

Clinical relevance

Les logiques temporelles sont les langages de spécification des vérificateurs de modèles (model checkers) utilisés couramment pour vérifier les conceptions matérielles, les protocoles de communication et les logiciels concurrents, détectant les interblocages (deadlocks) et les violations de sûreté et de vivacité avant le déploiement ; cette technologie a valu à ses créateurs le prix Turing et est standard dans la conception de puces.

History

Pnueli a proposé la logique temporelle pour le raisonnement sur les programmes en 1977, et Clarke et Emerson, avec Queille et Sifakis indépendamment, ont développé la vérification de modèles (model checking) vers 1981. L'approche a été étendue aux systèmes industriels grâce aux méthodes symboliques au début des années 1990, et ses créateurs ont reçu le prix Turing pour cette technique.

Key figures

  • Amir Pnueli
  • Edmund Clarke
  • E. Allen Emerson
  • Joseph Sifakis

Related topics

Seminal works

  • clarkeEmerson1981
  • huthRyan2004

Frequently asked questions

Quelle est la différence entre la logique à temps linéaire et la logique à temps arborescent ?
Les logiques à temps linéaire, telles que LTL, décrivent les propriétés d'un chemin d'exécution unique, potentiellement infini. Les logiques à temps arborescent, telles que CTL, quantifient sur l'arbre de tous les futurs possibles à partir de chaque état, permettant d'exprimer qu'une propriété est valide le long de certains chemins ou le long de tous les chemins. Elles possèdent des pouvoirs expressifs et des algorithmes de vérification différents.
Comment la vérification de modèles utilise-t-elle ces logiques ?
Un système est représenté comme un modèle à états finis et une propriété désirée comme une formule de logique temporelle. Un vérificateur de modèles explore de manière exhaustive les états pour déterminer si la formule est valide, et si elle échoue, il produit une trace de contre-exemple, rendant la vérification à la fois automatique et diagnostique.

Methods for this concept

Related concepts