Mu-calcul

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, 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. La sémantique des jeux du mu-calcul est liée aux jeux à deux joueurs à information parfaite, notamment les jeux de parité.

Syntaxe

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 :

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 :

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

La notation μZ.ϕ (et respectivement son dual νZ.ϕ) 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 λZ.ϕ est une fonction de la formule ϕ en la variable liée Z ; voir la sémantique dénotationnelle plus bas pour plus de détails.

Sémantique dénotationnelle

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

Étant donné un système de transition (S,R,V), une interprétation i associe à toute variable Z un sous-ensemble d'états i(Z). On définit le sous-ensemble d'états [[ϕ_]]i par induction structurelle sur la formule ϕ :

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

De manière informelle, pour un système de transition (S,R,V) :

L'interprétation de [a]ϕ et ⟨a⟩ϕ 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.

Exemples

Alternation

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 qui regarde aussi l'utilisation des variables. La hiérarchie d'alternation est stricte.

Problèmes algorithmiques

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

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

Comme pour la logique temporelle linéaire (LTL), 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.

Discussions

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. Il existe une version linéaire (non branchée) du mu-calcul,.

Bibliographie

Liens externes

Notes et références

  1. 1 2 (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. 1 2 Julian Bradfield et Colin Stirling, The Handbook of Modal Logic, p. 731.
  6. 1 2 (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. 1 2 3 « 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. 1 2 (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 )