Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Mu-calcul — Wikipédia
Mu-calcul — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

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 | modifier le code]

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 ϕ {\displaystyle \phi } {\displaystyle \phi } et ψ {\displaystyle \psi } {\displaystyle \psi } sont des formules, alors ( ϕ ∧ ψ ) {\displaystyle (\phi \wedge \psi )} {\displaystyle (\phi \wedge \psi )} est une formule ;
  • si ϕ {\displaystyle \phi } {\displaystyle \phi } est une formule, alors ¬ ϕ {\displaystyle \neg \phi } {\displaystyle \neg \phi } est une formule ;
  • si ϕ {\displaystyle \phi } {\displaystyle \phi } est une formule et a {\displaystyle a} {\displaystyle a} est une action, alors [ a ] ϕ {\displaystyle [a]\phi } {\displaystyle [a]\phi } est une formule (c'est la formule : « après a {\displaystyle a} {\displaystyle a}, nécessairement ϕ {\displaystyle \phi } {\displaystyle \phi } ») ;
  • si ϕ {\displaystyle \phi } {\displaystyle \phi } est une formule et Z {\displaystyle Z} {\displaystyle Z} une variable, alors ν Z . ϕ {\displaystyle \nu Z.\phi } {\displaystyle \nu Z.\phi } est une formule à supposer que chaque occurrence de Z {\displaystyle Z} {\displaystyle Z} dans ϕ {\displaystyle \phi } {\displaystyle \phi } 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 ν {\displaystyle \nu } {\displaystyle \nu } qui est le seul opérateur liant une variable.

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

  • ϕ ∨ ψ {\displaystyle \phi \lor \psi } {\displaystyle \phi \lor \psi } signifiant ¬ ( ¬ ϕ ∧ ¬ ψ ) {\displaystyle \neg (\neg \phi \land \neg \psi )} {\displaystyle \neg (\neg \phi \land \neg \psi )} ;
  • ⟨ a ⟩ ϕ {\displaystyle \langle a\rangle \phi } {\displaystyle \langle a\rangle \phi } signifiant ¬ [ a ] ¬ ϕ {\displaystyle \neg [a]\neg \phi } {\displaystyle \neg [a]\neg \phi } (après a {\displaystyle a} {\displaystyle a} il est possible que ϕ {\displaystyle \phi } {\displaystyle \phi }) ;
  • μ Z . ϕ {\displaystyle \mu Z.\phi } {\displaystyle \mu Z.\phi } signifiant ¬ ν Z . ¬ ϕ [ Z := ¬ Z ] {\displaystyle \neg \nu Z.\neg \phi [Z:=\neg Z]} {\displaystyle \neg \nu Z.\neg \phi [Z:=\neg Z]}, où ϕ [ Z := ¬ Z ] {\displaystyle \phi [Z:=\neg Z]} {\displaystyle \phi [Z:=\neg Z]} signifie qu'on remplace Z {\displaystyle Z} {\displaystyle Z} par ¬ Z {\displaystyle \neg Z} {\displaystyle \neg Z} pour chaque occurrence libre de Z {\displaystyle Z} {\displaystyle Z} dans ϕ {\displaystyle \phi } {\displaystyle \phi }.

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

La notation μ Z . ϕ {\displaystyle \mu Z.\phi } {\displaystyle \mu Z.\phi } (et respectivement son dual ν Z . ϕ {\displaystyle \nu Z.\phi } {\displaystyle \nu Z.\phi }) 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 ϕ {\displaystyle \phi } {\displaystyle \phi } tout comme en lambda-calcul λ Z . ϕ {\displaystyle \lambda Z.\phi } {\displaystyle \lambda Z.\phi } est une fonction de la formule ϕ {\displaystyle \phi } {\displaystyle \phi } 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 | modifier le code]

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

  • S {\displaystyle S} {\displaystyle S} est un ensemble d'états ;
  • R {\displaystyle R} {\displaystyle R} associe à chaque label a {\displaystyle a} {\displaystyle a} une relation binaire sur S {\displaystyle S} {\displaystyle S} ;
  • V : P → 2 S {\displaystyle V:P\rightarrow 2^{S}} {\displaystyle V:P\rightarrow 2^{S}} associe à chaque proposition p ∈ P {\displaystyle p\in P} {\displaystyle p\in P} l'ensemble des états où la proposition est vraie.

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

  • [ [ p ] ] i = V ( p ) {\displaystyle [\![p]\!]_{i}=V(p)} {\displaystyle [\![p]\!]_{i}=V(p)} ;
  • [ [ Z ] ] i = i ( Z ) {\displaystyle [\![Z]\!]_{i}=i(Z)} {\displaystyle [\![Z]\!]_{i}=i(Z)} ;
  • [ [ ϕ ∧ ψ ] ] i = [ [ ϕ ] ] i ∩ [ [ ψ ] ] i {\displaystyle [\![\phi \wedge \psi ]\!]_{i}=[\![\phi ]\!]_{i}\cap [\![\psi ]\!]_{i}} {\displaystyle [\![\phi \wedge \psi ]\!]_{i}=[\![\phi ]\!]_{i}\cap [\![\psi ]\!]_{i}} ;
  • [ [ ¬ ϕ ] ] i = S ∖ [ [ ϕ ] ] i {\displaystyle [\![\neg \phi ]\!]_{i}=S\smallsetminus [\![\phi ]\!]_{i}} {\displaystyle [\![\neg \phi ]\!]_{i}=S\smallsetminus [\![\phi ]\!]_{i}};
  • [ [ [ a ] ϕ ] ] i = { s ∈ S ∣ ∀ t ∈ S , ( s , t ) ∈ R a → t ∈ [ [ ϕ ] ] i } {\displaystyle [\![[a]\phi ]\!]_{i}=\{s\in S\mid \forall t\in S,(s,t)\in R_{a}\rightarrow t\in [\![\phi ]\!]_{i}\}} {\displaystyle [\![[a]\phi ]\!]_{i}=\{s\in S\mid \forall t\in S,(s,t)\in R_{a}\rightarrow t\in [\![\phi ]\!]_{i}\}} ;
  • [ [ ν Z . ϕ ] ] i = ⋃ { T ⊆ S ∣ T ⊆ [ [ ϕ ] ] i [ Z := T ] } {\displaystyle [\![\nu Z.\phi ]\!]_{i}=\bigcup \{T\subseteq S\mid T\subseteq [\![\phi ]\!]_{i[Z:=T]}\}} {\displaystyle [\![\nu Z.\phi ]\!]_{i}=\bigcup \{T\subseteq S\mid T\subseteq [\![\phi ]\!]_{i[Z:=T]}\}}, où i [ Z := T ] {\displaystyle i[Z:=T]} {\displaystyle i[Z:=T]} associe Z {\displaystyle Z} {\displaystyle Z} à T {\displaystyle T} {\displaystyle T} tout en préservant les associations de i {\displaystyle i} {\displaystyle i} partout ailleurs.

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

  • [ [ ϕ ∨ ψ ] ] i = [ [ ϕ ] ] i ∪ [ [ ψ ] ] i {\displaystyle [\![\phi \vee \psi ]\!]_{i}=[\![\phi ]\!]_{i}\cup [\![\psi ]\!]_{i}} {\displaystyle [\![\phi \vee \psi ]\!]_{i}=[\![\phi ]\!]_{i}\cup [\![\psi ]\!]_{i}} ;
  • [ [ ⟨ a ⟩ ϕ ] ] i = { s ∈ S ∣ ∃ t ∈ S , ( s , t ) ∈ R a ∧ t ∈ [ [ ϕ ] ] i } {\displaystyle [\![\langle a\rangle \phi ]\!]_{i}=\{s\in S\mid \exists t\in S,(s,t)\in R_{a}\wedge t\in [\![\phi ]\!]_{i}\}} {\displaystyle [\![\langle a\rangle \phi ]\!]_{i}=\{s\in S\mid \exists t\in S,(s,t)\in R_{a}\wedge t\in [\![\phi ]\!]_{i}\}} ;
  • [ [ μ Z . ϕ ] ] i = ⋂ { T ⊆ S ∣ [ [ ϕ ] ] i [ Z := T ] ⊆ T } {\displaystyle [\![\mu Z.\phi ]\!]_{i}=\bigcap \{T\subseteq S\mid [\![\phi ]\!]_{i[Z:=T]}\subseteq T\}} {\displaystyle [\![\mu Z.\phi ]\!]_{i}=\bigcap \{T\subseteq S\mid [\![\phi ]\!]_{i[Z:=T]}\subseteq T\}}.

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

  • p {\displaystyle p} {\displaystyle p} est vraie pour les états V ( p ) {\displaystyle V(p)} {\displaystyle V(p)} ;
  • ϕ ∧ ψ {\displaystyle \phi \wedge \psi } {\displaystyle \phi \wedge \psi } est vraie si ϕ {\displaystyle \phi } {\displaystyle \phi } et ψ {\displaystyle \psi } {\displaystyle \psi } sont vraies ;
  • ¬ ϕ {\displaystyle \neg \phi } {\displaystyle \neg \phi } est vraie si ϕ {\displaystyle \phi } {\displaystyle \phi } n'est pas vraie ;
  • [ a ] ϕ {\displaystyle [a]\phi } {\displaystyle [a]\phi } est vraie dans l'état s {\displaystyle s} {\displaystyle s} si toutes les transitions a {\displaystyle a} {\displaystyle a} sortants de s {\displaystyle s} {\displaystyle s} mènent à un état où ϕ {\displaystyle \phi } {\displaystyle \phi } est vraie ;
  • ⟨ a ⟩ ϕ {\displaystyle \langle a\rangle \phi } {\displaystyle \langle a\rangle \phi } est vraie dans un état s {\displaystyle s} {\displaystyle s} s'il existe au moins une transition a {\displaystyle a} {\displaystyle a} sortant de s {\displaystyle s} {\displaystyle s} qui mène à un état où ϕ {\displaystyle \phi } {\displaystyle \phi } est vraie ;
  • ν Z . ϕ {\displaystyle \nu Z.\phi } {\displaystyle \nu Z.\phi } est vraie dans n'importe quel état de n'importe quel ensemble T {\displaystyle T} {\displaystyle T} tel que, si la variable Z {\displaystyle Z} {\displaystyle Z} est remplacée par T {\displaystyle T} {\displaystyle T}, alors ϕ {\displaystyle \phi } {\displaystyle \phi } est vraie pour tout T {\displaystyle T} {\displaystyle T} (du théorème de Knaster-Tarski, on déduit que [ [ ν Z . ϕ ] ] i {\displaystyle [\![\nu Z.\phi ]\!]_{i}} {\displaystyle [\![\nu Z.\phi ]\!]_{i}} est le plus grand point fixe de [ [ ϕ ] ] i [ Z := T ] {\displaystyle [\![\phi ]\!]_{i[Z:=T]}} {\displaystyle [\![\phi ]\!]_{i[Z:=T]}}, et [ [ μ Z . ϕ ] ] i {\displaystyle [\![\mu Z.\phi ]\!]_{i}} {\displaystyle [\![\mu Z.\phi ]\!]_{i}} en est le plus petit).

L'interprétation de [ a ] ϕ {\displaystyle [a]\phi } {\displaystyle [a]\phi } et ⟨ a ⟩ ϕ {\displaystyle \langle a\rangle \phi } {\displaystyle \langle a\rangle \phi } est l'interprétation « classique » de la logique dynamique. De surcroît, μ {\displaystyle \mu } {\displaystyle \mu } peut être vu comme une propriété de vivacité (« quelque chose de bon intervient à un moment ») tandis que ν {\displaystyle \nu } {\displaystyle \nu } 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 | modifier le code]
  • ν Z . ϕ ∧ [ a ] Z {\displaystyle \nu Z.\phi \wedge [a]Z} {\displaystyle \nu Z.\phi \wedge [a]Z} est interprétée comme «  ϕ {\displaystyle \phi } {\displaystyle \phi } est vraie pour chaque chemin de a »[5].
  • μ Z . ϕ ∨ ⟨ a ⟩ Z {\displaystyle \mu Z.\phi \vee \langle a\rangle Z} {\displaystyle \mu Z.\phi \vee \langle a\rangle Z} est interprétée comme l'existence d'un chemin de transitions a vers un état dans lequel ϕ {\displaystyle \phi } {\displaystyle \phi } 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 ν Z . ( ⋁ a ∈ A ⟨ a ⟩ ⊤ ∧ ⋀ a ∈ A [ a ] Z ) {\displaystyle \nu Z.(\bigvee _{a\in A}\langle a\rangle \top \wedge \bigwedge _{a\in A}[a]Z)} {\displaystyle \nu Z.(\bigvee _{a\in A}\langle a\rangle \top \wedge \bigwedge _{a\in A}[a]Z)} [6].
  • μ Z . [ a ] Z {\displaystyle \mu Z.[a]Z} {\displaystyle \mu Z.[a]Z} : tout chemin composé de a-transitions est fini[7].
  • ν Z . ⟨ a ⟩ Z {\displaystyle \nu Z.\langle a\rangle Z} {\displaystyle \nu Z.\langle a\rangle Z} : il existe un chemin infini composé de a-transitions[7].
  • ν Z . ϕ ∧ ⟨ a ⟩ Z {\displaystyle \nu Z.\phi \land \langle a\rangle Z} {\displaystyle \nu Z.\phi \land \langle a\rangle Z} : il existe un chemin infini composé de a-transitions le long duquel ϕ {\displaystyle \phi } {\displaystyle \phi } est vraie tout le temps[7].

Alternation

[modifier | modifier le code]

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 | modifier le code]

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 | modifier le code]

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 | modifier le code]
  • (en) Edmund M. Clarke, Jr., Orna Grumberg et Doron A. Peled, Model Checking, Cambridge, Massachusetts, USA, MIT press, 1999 (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, 2001, 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,‎ 2001, 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, 2006, 721–756 p. (lire en ligne), « Modal mu-calculi »
  • (en) E. Allen Emerson « Model Checking and the Mu-calculus » (1996)
    — « (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,‎ 1983, p. 333–354 (DOI 10.1016/0304-3975(82)90125-6)

Liens externes

[modifier | modifier le code]
  • Sophie Pinchinat, Logic, Automata & Games video recording of a lecture at ANU Logic Summer School '09

Notes et références

[modifier | modifier le code]
  1. ↑ a et b (en) Julian Bradfield et Igor Walukiewicz, « The mu-calculus and Model Checking », dans Handbook of Model Checking, Springer International Publishing, 2018 (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, 2007, 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,‎ 15 juillet 1986, p. 464–473 (ISBN 3540167617, DOI 10.1007/3-540-16761-7_96, lire en ligne, consulté le 12 mars 2018)
  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,‎ 26 août 1996, p. 233–246 (ISBN 3540616047, DOI 10.1007/3-540-61604-7_58, lire en ligne, consulté le 12 mars 2018)
  10. ↑ (en) Klaus Schneider, Verification of reactive systems : formal methods and algorithms, Springer, 2004, 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,‎ 1er juillet 1985, 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,‎ 1er janvier 1988, 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,‎ 1986, p. 173–183 (DOI 10.1145/512644.512660, lire en ligne, consulté le 12 mars 2018)
  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Modal μ-calculus » (voir la liste des auteurs).
  • icône décorative Portail de l'informatique théorique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Mu-calcul&oldid=203212514 ».
Catégories :
  • Informatique théorique
  • Vérification de modèles
Catégories cachées :
  • Article contenant un appel à traduction en anglais
  • Portail:Informatique théorique/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Mathématiques/Articles liés
  • Portail:Sciences/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id