En logique mathématique et en informatique théorique, le mu-calcul (ou logique du mu-calcul modal) est l'extension de la logique modale classique avec des opérateurs de points fixes. Selon Bradfield et Walukiewicz[1], le mu-calcul est une des logiques les plus importantes pour la vérification de modèles ; elle est expressive tout en ayant de bonnes propriétés algorithmiques.

Le mu-calcul (propositionnel et modal) a d'abord été introduit par Dana Scott et Jaco de Bakker puis a été étendu dans sa version moderne par Dexter Kozen. Cette logique permet de décrire les propriétés des systèmes de transition d'états et de les vérifier. De nombreuses logiques temporelles (telles que CTL* ou ses fragments très usités comme CTL (en) ou LTL) sont des fragments du mu-calcul.

Une manière algébrique de voir le mu-calcul est de le considérer comme une algèbre de fonctions monotones sur un treillis complet, les opérateurs étant une composition fonctionnelle plus des points fixes ; de ce point de vue, le mu-calcul agit sur le treillis de l'algèbre des ensembles[2]. La sémantique des jeux du mu-calcul est liée aux jeux à deux joueurs à information parfaite, notamment les jeux de parité[3].

Syntaxe modifier

Soient deux ensembles de symbole P (les propositions) et A (les actions) et V un ensemble énumérable infini de variables. L'ensemble des formules du mu-calcul (propositionnel et modal) est défini inductivement de la façon suivante :

  • chaque proposition est une formule ;
  • chaque variable est une formule ;
  • si   et   sont des formules, alors   est une formule ;
  • si   est une formule, alors   est une formule ;
  • si   est une formule et   est une action, alors   est une formule (c'est la formule : « après  , nécessairement   ») ;
  • si   est une formule et   une variable, alors   est une formule à supposer que chaque occurrence de   dans   apparaît positivement, c'est-à-dire qu'elle est niée un nombre pair de fois.

Les notions de variables liées ou libres sont définies comme d'ordinaire avec   qui est le seul opérateur liant une variable.

Avec les définitions ci-dessus, on peut rajouter comme sucre syntaxique :

  •   signifiant   ;
  •   signifiant   (après   il est possible que  ) ;
  •   signifiant  , où   signifie qu'on remplace   par   pour chaque occurrence libre de   dans  .

Les deux premières formules sont familières du calcul des propositions et de la logique multimodale K.

La notation   (et respectivement son dual  ) est inspirée du lambda-calcul ; l'objectif est de noter le plus petit (respectivement le plus grand) point fixe en la variable Z de l'expression   tout comme en lambda-calcul   est une fonction de la formule   en la variable liée Z[4] ; voir la sémantique dénotationnelle plus bas pour plus de détails.

Sémantique dénotationnelle modifier

Les modèles d'une formule mu-calcul (propositionnelle, modale) sont donnés comme des systèmes de transition d'états   où :

  •   est un ensemble d'états ;
  •   associe à chaque label   une relation binaire sur   ;
  •   associe à chaque proposition   l'ensemble des états où la proposition est vraie.

Étant donné un système de transition  , une interprétation   associe à toute variable   un sous-ensemble d'états  . On définit le sous-ensemble d'états   par induction structurelle sur la formule   :

  •   ;
  •   ;
  •   ;
  •  ;
  •   ;
  •  , où   associe   à   tout en préservant les associations de   partout ailleurs.

Par dualité, l'interprétation des autres formules basiques est :

  •   ;
  •   ;
  •  .

De manière informelle, pour un système de transition   :

  •   est vraie pour les états   ;
  •   est vraie si   et   sont vraies ;
  •   est vraie si   n'est pas vraie ;
  •   est vraie dans l'état   si toutes les transitions   sortants de   mènent à un état où   est vraie ;
  •   est vraie dans un état   s'il existe au moins une transition   sortant de   qui mène à un état où   est vraie ;
  •   est vraie dans n'importe quel état de n'importe quel ensemble   tel que, si la variable   est remplacée par  , alors   est vraie pour tout   (du théorème de Knaster-Tarski, on déduit que   est le plus grand point fixe de  , et   en est le plus petit).

L'interprétation de   et   est l'interprétation « classique » de la logique dynamique. De surcroît,   peut être vu comme une propriété de vivacité (« quelque chose de bon intervient à un moment ») tandis que   est vu comme une propriété de sûreté (« quelque chose de mauvais n'arrive jamais ») dans la classification informelle de Leslie Lamport[5].

Exemples modifier

  •   est interprétée comme «   est vraie pour chaque chemin de a »[5].
  •   est interprétée comme l'existence d'un chemin de transitions a vers un état dans lequel   est vraie[6].
  • La propriété d'un système d'être non bloquant, c'est-à-dire que de tout état accessible, il existe une transition sortante, peut être exprimée par la formule   [6].
  •   : tout chemin composé de a-transitions est fini[7].
  •   : il existe un chemin infini composé de a-transitions[7].
  •   : il existe un chemin infini composé de a-transitions le long duquel   est vraie tout le temps[7].

Alternation modifier

L'alternation de plus petits et plus grands points fixes s'appelle la profondeur d'alternation. On peut compter le nombre d'alternations mais généralement, on utilise une définition plus sophistiquée introduite par Damian Niwiński[8] qui regarde aussi l'utilisation des variables. La hiérarchie d'alternation est stricte[9].

Problèmes algorithmiques modifier

Le problème de model checking du mu-calcul est dans NP inter co-NP[1] et est P-dur. Un algorithme pour le model checking du mu-calcul est le suivant :

  • Construire un jeu de parité à partir du système de transitions et de la formule du mu-calcul à vérifier ;
  • Résoudre le jeu de parité.

Le problème de satisfiabilité du mu-calcul est EXPTIME-complet[10].

Comme pour la logique temporelle linéaire (LTL)[11], le problème de la vérification de modèles, de la satisfiabilité et de la validité du mu-calcul linéaire est PSPACE-complet[12].

Discussions modifier

La syntaxe originale du mu-calcul était vectorielle. L'avantage de cette notation est qu'elle permet de partager les variables sur plusieurs sous-formules[13]. Il existe une version linéaire (non branchée) du mu-calcul[14],[12].

Bibliographie modifier

  • (en) Edmund M. Clarke, Jr., Orna Grumberg et Doron A. Peled, Model Checking, Cambridge, Massachusetts, USA, MIT press, (ISBN 0-262-03270-8), chapter 7, Model checking for the μ-calculus, pp. 97–108
  • (en) Colin Stirling, Modal and Temporal Properties of Processes, New York, Berlin, Heidelberg, Springer Verlag, , 191 p. (ISBN 0-387-98717-7, lire en ligne), chapter 5, Modal μ-calculus, pp. 103–128
  • (en) André Arnold et Damian Niwiński, Rudiments of μ-Calculus, Elsevier,‎ , 277 p. (ISBN 978-0-444-50620-7), chapter 6, The μ-calculus over powerset algebras, pp. 141–153 concerne le μ-calcul.
  • Yde Venema (2008) Lectures on the Modal μ-calculus; a été présenté à la 18th European Summer School in Logic, Language and Information.
  • (en) Julian Bradfield et Colin Stirling, The Handbook of Modal Logic, Elsevier, , 721–756 p. (lire en ligne), « Modal mu-calculi »
  • (en) E. Allen Emerson « Model Checking and the Mu-calculus » ()
    « (ibid.) », dans Descriptive Complexity and Finite Models, American Mathematical Society (ISBN 0-8218-0517-7), p. 185–214
  • (en) Kozen, Dexter, « Results on the Propositional μ-Calculus », Theoretical Computer Science, vol. 27, no 3,‎ , p. 333–354 (DOI 10.1016/0304-3975(82)90125-6)

Liens externes modifier

Notes et références modifier

  1. a et b (en) Julian Bradfield et Igor Walukiewicz, « The mu-calculus and Model Checking », dans Handbook of Model Checking, Springer International Publishing, (ISBN 9783319105741, DOI 10.1007/978-3-319-10575-8_26, lire en ligne), p. 871–919
  2. André Arnold et Damian Niwiński, Rudiments of μ-Calculus, pp. viii-x et chapitre 6.
  3. André Arnold et Damian Niwiński, Rudiments of μ-Calculus, pp. viii-x et chapitre 4.
  4. André Arnold et Damian Niwiński, Rudiments of μ-Calculus, p. 14.
  5. a et b Julian Bradfield et Colin Stirling, The Handbook of Modal Logic, p. 731.
  6. a et b (en) Erich Grädel, Phokion G. Kolaitis, Leonid Libkin, Maarten Marx, Joel Spencer, Moshe Y. Vardi, Yde Venema et Scott Weinstein, Finite Model Theory and Its Applications, Springer, , 437 p. (ISBN 978-3-540-00428-8, lire en ligne), p. 159.
  7. a b et c « Cours sur le mu calcul au Labri ».
  8. (en) Damian Niwiński, « On fixed-point clones », Automata, Languages and Programming, Springer, Berlin, Heidelberg, lecture Notes in Computer Science,‎ , p. 464–473 (ISBN 3540167617, DOI 10.1007/3-540-16761-7_96, lire en ligne, consulté le )
  9. (en) J. C. Bradfield, « The modal mu-calculus alternation hierarchy is strict », CONCUR '96: Concurrency Theory, Springer, Berlin, Heidelberg, lecture Notes in Computer Science,‎ , p. 233–246 (ISBN 3540616047, DOI 10.1007/3-540-61604-7_58, lire en ligne, consulté le )
  10. (en) Klaus Schneider, Verification of reactive systems : formal methods and algorithms, Springer, , 602 p. (ISBN 978-3-540-00296-3, lire en ligne), p. 521.
  11. (en) A. P. Sistla et E. M. Clarke, « The Complexity of Propositional Linear Temporal Logics », J. ACM, vol. 32, no 3,‎ , p. 733–749 (ISSN 0004-5411, DOI 10.1145/3828.3837, lire en ligne).
  12. a et b (en) M. Y. Vardi, « A Temporal Fixpoint Calculus », ACM, New York, NY, USA,‎ , p. 250–259 (ISBN 0897912527, DOI 10.1145/73560.73582, lire en ligne).
  13. Julian Bradfield et Igor Walukiewicz, The mu-calculus and model-checking (lire en ligne)
  14. Howard Barringer, Ruurd Kuiper et Amir Pnueli, « A really abstract concurrent model and its temporal logic », POPL 'x86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, ACM,‎ , p. 173–183 (DOI 10.1145/512644.512660, lire en ligne, consulté le )