headlogo

  Les logiques non classiques

0.1  Logiques faibles

Avant d’aborder l’étude des systèmes modaux, nous allons dire un mot des systèmes logiques proches de la logique classique, qui dérivent d’une interprétation plus faible de la notion de négation ou d’implication. Nous reprenons ici la présentation faite dans [Gri67].

Plutôt que de choisir un nombre minimal de schémas d’axiomes n’utilisant que les symboles → et ¬ puis de définir tous les connecteurs à partir de ces deux-là comme nous l’avions fait lors de la présentation de la logique classique propositionnelle, il est possible de partir d’un système définissant chacun des connecteurs logiques séparément. Ceci est même nécessaire, dans la mesure où ces connecteurs ne sont plus inter-définissables dans les logiques considérées dans cette section.

0.1.1  La logique absolue A

Les schémas d’axiomes de A sont :

Le signe ¬ n’apparaît nulle part dans les schémas d’axiomes de A. La négation n’existe pas dans ce système.

0.1.2  La logique positive P

Le système A est un système extrêmement faible. Non seulement la négation n’existe pas dans A, mais certains théorèmes de la logique classique, comme p ∨ (pq) qui ne contient pourtant pas de signe de négation, ne sont pas des théorèmes de A. Si l’on rajoute l’axiome1 : [A9]

A ∨ (A → B)

le système ainsi défini contient bien l’ensemble des théorèmes de la logique classique ne contenant aucune négation. On l’appelle logique positive.

0.1.3  La logique minimale M

Si l’on étend le système A par les deux axiomes suivants : [A10]

¬ A → (A → ¬ B)

[A11]

(A → ¬ A) → ¬ A

on obtient la logique minimale M. Dans ce système, le symbole de négation a pour interprétation << est réfutable >>2. Dans M, on a le théorème : [Négation et implication]

p→ ¬ ¬ p 

En revanche, la réciproque est fausse.

0.1.4  La logique intuitionniste J

Si l’on considère le système M, qu’on lui retranche l’axiome A10 et qu’on le remplace par : [A12]

¬ A → (A → B)

on obtient la logique intuitionniste. Tout théorème de M est évidemment un théorème de J (A10 est une conséquence triviale de A12). Dans cette logique, le symbole de négation peut se comprendre comme << est absurde >>.

La logique classique se retrouve en adjoignant à la logique intuitionniste le schéma d’axiome A9.

0.2  Introduction aux logiques modales

Les problèmes concernant la notion de devoir et de nécessité sont apparus très tôt. Husserl résumera le problème :

<< Les énoncés négatifs du devoir ne doivent pas être interprétés comme des négations des énoncés positifs correspondants. >>

Le logicien anglais Lewis s’intéressera aux notions de nécessité et de possibilité à travers un des problèmes intuitifs lié à la logique classique, la formule :

¬ A → (A → B

Cette formule, qui se déduit aisément des axiomes de la logique classique, se lit : << si A est faux, je peux déduire n’importe quoi de A >>.

D’autres formules, comme A → (BA)3, ont posé très rapidement des problèmes aux logiciens. Pour tenter de résoudre ces << paradoxes >>, Lewis proposa au début du siècle une nouvelle implication, dite implication stricte, qu’il nota : >.

Pour cela, il définit la notion de possibilité logique qu’il nota ◇ et posa par définition :

(A>B) =def ¬ ◇ (A ∧ ¬ B

Ceci peut se lire : << il est impossible que A soit vrai et B faux lorsque A implique strictement B >>.

Il définit également la notion (duale) de nécessité, notée □ par :

□ A =def ¬ ◇ ¬ A 

On peut le lire : << A est nécessaire si non-A est impossible >>.

Muni de ces définitions et de ces deux nouveaux opérateurs, dits opérateurs modaux, Lewis définit deux systèmes, S4 et S5, que nous allons examiner brièvement. Dans chacun de ces systèmes, l’implication stricte définie précédemment n’est plus paradoxale. En effet, les formules ¬ A > (A>B) et A > (B>A) ne sont pas toujours des théorèmes de ces systèmes.

0.3  Les modalités

Les notions de possibilité et de nécessité sont des instances particulières de la notion plus générale de modalité. [Modalité] On appelle modalité toute suite d’opérateurs ¬ , □ , ◇ . Par exemple ¬ □ □ ¬ ◇ est une modalité.

On voit bien intuitivement que des modalités syntaxiquement distinctes peuvent avoir la même signification. Ainsi les modalités ¬ ◇ et □ ¬ sont équivalentes dans tous les systèmes présentés ici. [Modalités équivalentes] Deux modalités α et β sont équivalentes si, pour toute formule A, on a : ⊢ (α A ↔ β A) Une logique modale peut être caractérisée par l’ensemble de ses modalités non-équivalentes. Pour établir la liste des modalités non-équivalentes, on tente d’établir l’ensemble des théorèmes de réduction syntaxique démontrables dans la logique dont on se préoccupe. Nous démontrerons un tel théorème dans S4.

0.4  Logique aléthique

On appelle logique aléthique toute logique dont les modes sont la possibilité et la nécessité. Les logiques définies par Lewis sont des logiques aléthiques. Le langage des premiers systèmes que nous allons étudier est construit comme celui du calcul propositionnel en y adjoignant la règle : Si A est une formule, alors ◇ A et □ A sont des formules. La construction faite par Lewis est un peu différente de celle que nous allons donner. Les systèmes de logique aléthique sont représentés dans la figure 0.1.


Figure 0.1: Ensemble des systèmes en logique aléthique

Dans cette figure (due à Prior), tous les systèmes qui sont à gauche des flèches sont des sous-systèmes des systèmes situés à droite, c’est-à-dire que tout théorème valable dans le système de gauche est aussi un théorème du système de droite.

Les systèmes S1 à S5 sont les systèmes définis par Lewis. Le système T est dû à Freys (1950) et Wright (1951), et est donc bien plus tardif. Cependant, il est formellement plus agréable d’arriver à S4 et S5 à partir de T qu’à partir de S1 et S2.

0.4.1  Le système T

Le système T est défini par les axiomes de la logique classique et les axiomes supplémentaires suivants : [K]

□ (A → B) → (□ A → □ B

[T]

□ A → A 

On adjoint à la règle d’inférence de la logique classique la règle : [Règle de nécessitation]

⊢ A
⊢ □ A
 

T contient une infinité de modalités non-équivalentes. Il est consistant et il existe une procédure de décision.

0.4.2  Le système S4

Les règles d’inférence de S4 sont les mêmes que celles de T. On ajoute simplement l’axiome : [4] A → □ □ A Nous allons démontrer rapidement un théorème de réduction dans S4. [Réduction de □ □ en □]

⊢ □ □ A ↔ □ A 
  1. ⊢ □ □ A → □ A Axiome T et substitution de □ A à A
  2. ⊢ □ A → □ □ A Axiome 4
  3. ⊢ □ □ A ↔ □ A

On peut ainsi démontrer que dans S4 toute modalité ne contenant pas ¬ peut être réduite à une suite contenant au plus 3 opérateurs modaux. Notons enfin que S4 est complet et décidable.

0.4.3  Le système S5

S5 est également une extension de T. Il suffit de rajouter l’axiome suivant : [5]

◇ A → □ ◇ A 

D’autre part, tout théorème de S4 est un théorème de S5. En effet, il est aisé de montrer que l’axiome 0.4.2 est un théorème de S5. Enfin, on peut démontrer que, dans S5, toute modalité ne contenant pas de négation peut être réduite à un opérateur (théorème de réduction).

0.5  Théorie des modèles

Nous nous sommes intéressés jusque-là à la théorie de la démonstration pour les logiques non-classiques. La question que nous sommes en droit de nous poser est la suivante : est-il possible de construire une théorie des modèles (semblable à la méthode des tables de vérité) dans un système comme S4 ou S5 ?

0.5.1  Les tables de vérité

Nous devons tout d’abord constater que la méthode des tables de vérité qui consiste à associer à un opérateur une table est ici inapplicable. En effet, considérons qu’il fait beau aujourd’hui ; alors l’énoncé : << Le ciel est bleu >> est vrai, ainsi que l’énoncé : << Le ciel est bleu ou le ciel n’est pas bleu >>. En revanche, l’énoncé : << Le ciel est nécessairement bleu >> est faux, car il peut ne pas faire beau, alors que l’énoncé : << Nécessairement, le ciel est bleu ou le ciel n’est pas bleu >> est vrai. On voit donc que l’énoncé □ A peut être vrai ou faux, alors que l’énoncé A est vrai dans les deux cas. On voit donc mal comment la méthode des tables de vérité pourrait être appliquée.

0.5.2  Sémantique des mondes possibles

[Modèle de Kripke] Un modèle de Kripke est défini par un triplet M=<W, R,m> où W={w1,w2,…,wi…} est un ensemble de mondes possibles4, R est une relation binaire définie sur W et m une fonction associant à chaque élément de W un sous-ensemble de Vp (ensemble des variables propositionnelles).

[Relation de satisfiabilité] Si A est une formule, M un modèle, et w un monde possible de M, alors la relation << Le monde w satisfait A >>, notée (M,wA), est définie par :

[Formule satisfiable] Une formule A est dite satisfiable ssi il existe un modèle M et un état w de M tel que M,wA.

[Formule valide] Une formule A est dite valide (et l’on note ⊨ A) ssi pour tout M et pour tout w de M on a M,wA. Ainsi, en considérant une interprétation comme un couple (M,w), une formule valide est une formule vraie pour toute interprétation, ce qui est bien compatible avec la définition que nous avions utilisée en logique propositionnelle et en calcul des prédicats.

0.5.3  Interprétation intuitive

Que cherchons-nous à exprimer par les définitions précédentes ? Nous avons vu que la vérité d’une proposition du type □ A semblait être liée à une notion d’universalité de la vérité de l’énoncé A. Nous allons donc définir un ensemble de mondes contenant chacun des formules, puis nous les relierons entre eux par une relation d’accessibilité de la connaissance ; si par exemple w1 R w2 et w1 R w1 alors pour que M,w1 ⊨ □ p il faudra que pm(w1) et pm(w2). Pour avoir M,w1p, il suffit que pm(w1) et pour que M,w1 ⊨ ◇ p il suffit que pm(w1) ou pm(w2).

On voit donc qu’il est possible par ce moyen de construire un modèle pour tester la validité d’une formule. Cependant, ce modèle n’est pas quelconque. En fait les axiomes de la logique déterminent le type de la relation d’accessibilité R.

0.5.4  Un modèle de S4

[Modèle de S4] Un modèle de Kripke pour S4 est un modèle M=<W, R,m> où R est une relation réflexive et transitive. Nous allons essayer de donner une idée intuitive de la démonstration pour la propriété de réflexivité.

En fait, la réflexivité est rendue nécessaire par l’axiome T ( □ AA). Examinons la figure 0.2. Nous devons aisément comprendre à partir de cette figure pourquoi l’axiome T est vrai dans une structure réflexive.


Figure 0.2: Axiome T et réflexivité

0.5.5  Un modèle de S5

On peut démontrer que la relation d’accessibilité de S5 doit être une relation d’équivalence.

0.6  Adéquation, consistance, complétude

Comme en logique classique, on peut s’intéresser en logique modale aux propriétés de consistance et de complétude.

Le but de cet ouvrage n’étant pas de développer une théorie générale des logiques modales, nous nous contenterons de citer les principaux résultats. Les lecteurs intéressés pourront se reporter à [HC72].

S4 et S5 sont syntaxiquement consistants, adéquats et complets vis-à-vis de l’interprétation sémantique définie par les modèles de Kripke.

Il faut noter que, pour chacun de ces systèmes, on peut rajouter certaines formules qui ne sont pas des théorèmes de ces systèmes en tant que schémas d’axiomes sans aboutir à des systèmes syntaxiquement inconsistants5. En effet, nous avons vu que T peut-être étendu à S4, que S4 peut être étendu à S5. D’autre part, il est toujours possible de rajouter à S5 le schéma :

A → □ A 

Ce schéma ne rend pas le système inconsistant, et n’est pas non plus un théorème de S56.

0.7  Une logique modale du premier ordre

Comme nous l’avons fait pour le calcul propositionnel, il est possible de définir une logique modale opérant sur des prédicats. La définition du langage est la même que pour la logique des prédicats avec l’adjonction de la définition suivante : Si A est une formule alors □ A et ◇ A sont des formules. On peut ainsi définir des systèmes S4 et S5 du premier ordre en adjoignant à l’axiomatique propositionnelle de S4 et S5, les axiomes de la logique des prédicats (voir [HC72]).

0.8  Interprétation des logiques modales

Les logiques épistémiques sont des logiques ayant pour but de représenter la notion de connaissance ou de croyance. Elles ont été introduites par J. Hintikka en 1963.

0.8.1  Une logique de la connaissance

La logique de la connaissance est basée sur S5. Les opérateurs modaux rencontrés prennent alors une autre signification ; ainsi □ devient << SAVOIR >> et ◇ devient << COMPATIBLE AVEC MES CONNAISSANCES >>.

Examinons les axiomes et les règles d’inférence de S5 à la lumière de ces nouvelles définitions.

La règle d’inférence :

⊢ A
⊢ □ A

peut alors se lire : << si A est démontrable, (je sais A) est démontrable7 >>.

L’axiome □ (AB) → (□ A → □ B) peut se lire : << si je sais que AB est vrai, alors, si je sais que A est vrai, je sais que B est vrai >>.

L’axiome □ AA devient : << si je sais que A est vrai, alors A est vrai >>.

L’axiome ◇ A → □ ◇ A devient : << si A est compatible avec mes connaissances, alors je sais que A est compatible avec mes connaissances >>. Cet axiome est un axiome dit d’introspection négative.

On remarquera que la propriété de S5 : □ A → □ □ A, est également une propriété d’introspection, mais positive8.

Cette logique est appelée logique de la connaissance en raison de l’axiome □ AA, qui exprime que si l’on connaît une propriété alors cette propriété est vraie.

0.8.2  Une logique de la croyance

La logique de la croyance est obtenue à partir des axiomes de S5, en supprimant l’axiome □ AA et en rajoutant dans le jeu des axiomes la propriété : □ A → □ □ A.

La suppression de □ AA reflète le fait que le concept de croyance admet que l’on peut croire des choses qui sont fausses dans la réalité.

0.9  Extensions

Une extension classique valable pour toutes les logiques épistémiques est l’introduction d’arguments dans les opérateurs modaux. Ainsi, on peut écrire □ [Pierre] A, qui se lira << Pierre sait que A est vrai >>. Ces systèmes permettent de représenter des environnements où les connaissances sont disjointes. On peut par exemple écrire : □ [Pierre] A → □ [Paul] A, que l’on peut traduire par : << Paul sait tout ce que sait Pierre >>. De telles logiques sont appelées multi-modales.

L’extension au premier ordre permet, elle, d’exprimer des propositions de la forme :

∃ x □ espion(x)

qui signifie : << il existe une personne x dont je sais que c’est un espion >> à ne pas confondre avec cette autre proposition également exprimable :

□ ∃ x  espion(x)

qui signifie, elle : << je sais qu’il existe un espion (mais je ne sais pas qui c’est) >>.

0.10  Les logiques temporelles

Nous nous contenterons dans ce chapitre de donner un aperçu des logiques temporelles. Les lecteurs intéressés peuvent se reporter pour plus de précisions à [AEC90], dont nous nous sommes largement inspirés.

0.10.1  Approche intuitive

Le but de la logique temporelle est d’enrichir (comme le fait la logique modale) la capacité d’interprétation de la logique classique.

Ainsi l’énoncé << Robespierre est mort >>, s’il est vrai aujourd’hui, était faux en 1789. Or, ce type d’évaluation est impossible en logique classique. Là où la logique modale a introduit des notions de nécessité et de possibilité, la logique temporelle va introduire les notions de futur et de passé.

Il existe deux façons de définir une logique temporelle. L’une d’entre elles est basée sur les dates. On introduit un opérateur binaire de datation, généralement noté R. L’expression Rtp signifiant << p est réalisé à l’instant t  >>. De cette façon , on peut aisément en fixant une échelle et une origine des temps, exprimer des propriétés comme << Hitler est mort en 1945 >>. En revanche, cette méthode ne nous permet pas de représenter simplement des énoncés comme << le temps sera beau >>. Pour représenter ce type d’énoncé, nous avons besoin d’un opérateur dit opérateur d’ultériorité, noté généralement U. Ainsi on écrira : Rt ( Utt′ ∧ pt′) avec Utt′ signifiant << t′ est ultérieur à t >> et p étant << le temps est beau >>. Il faut remarquer que cette seconde méthode repose sur ce que l’on appelle des pseudo-dates. En effet, nous utilisons comme éléments de référence des termes comme << aujourd’hui >> ou << demain >> qui ne sont pas à proprement parler des dates (c’est-à-dire des éléments fixes). Les premiers travaux de la logique temporelle furent en grande partie consacrés à établir que le calcul fondé sur les pseudo-dates pouvait se dériver du calcul sur les dates.

0.10.2  Premiers éléments

Les premiers opérateurs que nous allons définir seront les opérateurs F et P, opérateurs futur et passé. La définition de ces opérateurs en langage des pseudo-dates est9 :

  1. Fp = ∃ t ( Uttpt)
  2. Pp = ∃ t ( Utt′ ∧ pt)

On peut donner comme interprétation de Fp : << p sera vrai >> et comme interprétation de Pp : << p a été vrai >>.

On peut, à l’aide de ces opérateurs, exprimer les notions d’ultériorité. Ainsi si on veut exprimer que p est postérieur à q, on peut écrire :

(p ∧ (¬ q ∧ Pq)) ∨ P(p ∧ (¬ q ∧ Pq)) ∨ F(p ∧ (¬ q ∧ Pq))

On peut remarquer les trois parties de cette formule. La première (p ∧ (¬ qPq)) signifie que p est vrai, que q est faux, et que q a été vrai dans le passé. Les deux autres parties complètent la première en exprimant que ce << fait >> a été vrai dans le passé ou qu’il sera vrai dans le futur. Ainsi, la composition des trois permet de dire que p est postérieur à q aujourd’hui ou qu’il le sera ou qu’il l’a été (informellement).

On voit immédiatement que, comme en logique modale, la méthode des tables de vérité n’est pas applicable en logique temporelle.

En fait, il existe une forte similitude entre logique modale et logique temporelle. En théorie des modèles de la logique modale, nous avons vu qu’un modèle était un ensemble de mondes, et que la relation d’accessibilité des connaissances entre ces mondes déterminait le type de la logique.

En logique temporelle, les mondes possibles deviennent les mondes datés et la relation d’accessibilité devient la relation d’ultériorité entre les dates. Suivant la façon dont on conçoit le temps (linéaire ou ramifié, continu ou discret…), on modifiera la relation d’accessibilité, ce qui à son tour modifiera les axiomes de la logique.

Par analogie avec la logique modale, on définit également les opérateurs duaux de F et P :

  1. Gp = ¬ F ¬ p
  2. Hp = ¬ P ¬ p

Les définitions formelles du langage de la logique temporelle, ainsi que les définitions de satisfiabilité et de validité sont très semblables à celles de la logique modale, nous ne les reprendrons pas. Nous allons plutôt nous intéresser à l’influence des diverses interprétations du temps sur l’axiomatique (théorie de la démonstration) et les relations de satisfiabilité (théorie des modèles).

Notons tout de suite que deux axiomes seront valables dans toute la suite ; il s’agit de :

  1. G(AB) → (GAGB)
  2. H(AB) → (HAHB)

Ces axiomes, sont semblables à ◇ (AB) → (◇ A → ◇ B) et □ (AB) → (□ A → □ B) en logique modale.

0.10.3  L’ultériorité

Il s’agit là de la notion de base dans la représentation intuitive que nous avons du temps. Elle impose (évidemment) à la relation entre les mondes d’être anti-symétrique. Les axiomes logiques de tout système temporel doivent donc avoir des modèles dont la relation d’accessibilité est anti-symétrique. Cependant, il n’existe pas d’axiomes caractérisant l’anti-symétrie. Les axiomes suivants, qui expriment l’ultériorité, correspondent bien à une relation anti-symétrique, mais ne correspondent pas seulement à une telle relation :

Comme nous le voyons ces axiomes se << lisent >> bien en terme d’ultériorité comme nous le disions en tête de ce paragraphe. Avec les deux axiomes du paragraphe précédent, ils forment l’axiomatique de la logique temporelle de base.

0.10.4  Ordre partiel des dates

Si nous supposons que nous pouvons ordonner, tout au moins partiellement, nos dates, notre relation devient une relation d’ordre partiel i.e., elle devient transitive en plus de son anti-symétrie.

La transitivité exprime des propriétés comme : << si A est vrai dans le futur, alors il sera toujours vrai que A sera vrai >>.

Il nous faut donc adjoindre des axiomes exprimant la transitivité. La transitivité est associée à l’axiome □ A → □ □ A. Cet axiome devient en logique temporelle GAGGA.

0.10.5  Ordre total des dates

Nous conservons les propriétés (anti-symétrie et transitivité) précédentes, ainsi que les axiomes qui en découlent, mais nous devons de plus exprimer que deux dates sont toujours comparables : ∀ wiwj (wi < wj) ∨ (wj < wi) ∨ (wi = wj).

Les axiomes correspondants à cette propriété sont :

L’axiome FAFBF(AFB) ∨ F(FAB) exprime que si à un instant donné nous avons dans le futur deux événements A et B, alors soit A se produit et B sera dans le futur de A, soit B se produit et A sera dans le futur de B. Ceci nous donne le schéma de la figure 0.3. Pour plus de détails, on pourra se reporter à [RU71].


Figure 0.3: Ordre total des dates futures

0.10.6  Autres propriétés

Il est également possible de représenter nombre d’autres propriétés en logique temporelle, dont la notion de temps discret, ou de temps ramifié…Pour plus de détails, on pourra se reporter à [RU71].

0.11  Preuve de programme

Dans ce chapitre, nous allons montrer sur un exemple simple comment la logique temporelle peut être utilisée pour coder un programme et démontrer sa correction.

Le programme auquel nous allons nous intéresser est extrêmement simple :

y1:=n; y2:=m;
while (y2>0) do
begin
    y1:=y1+1; y2:=y2-1;
end;

Ce programme calcule évidemment la somme de deux nombres n et m qu’il retourne dans y1.

0.11.1  Représentation d’un programme sous forme de graphe

La première étape à réaliser est de coder le programme sous forme d’un graphe d’exécution, ou graphe de contrôle.

Chacun des sommets du graphe représente une étape du contrôle. À chaque arc est associé une condition et un ensemble d’opérations à effectuer :

(li,lj) : Cij(
y
)  → fij(
y
)

Ceci peut se lire intuitivement : si le programme est dans l’état li alors il passera dans l’état lj ssi toutes les conditions Cij portant sur les variables y du problème est vérifié. Lors de la transition, on appliquera aux variables y, la transformation fij(y).

Les programmes séquentiels déterministes garantissent que pour chaque sommet li, une et une seule condition Cij est vraie à un instant donné.

Appliquons cette méthode de codage sur notre exemple. Les trois sommets seront :

l0
État initial du programme ;
l1
État correspondant à l’instruction de boucle ;
lf
État final.

Les arcs seront :

(l0,l1)
 : Cet arc représente le fait que l’on quitte l’état initial pour aller dans le premier état opérationnel du programme. Il correspond généralement à l’initialisation des variables. Ici nous avons :
(l0,l1):(true) → (y1:=n,y2:=m) 
Cet arc est donc toujours pris pour sortir de l’état l0.
(l1,l1)
 : Cet arc correspond au corps de la boucle. On écrit :
(l1,l1):(y2>0) → (y1:=y1+1,y2:=y2-1) 
Tant que y2>0 on bouclera sur l’état l1 et on fera subir aux variables la transformation (y1:=y1+1,y2:=y2-1).
(l1,lf)
 : Correspond à la terminaison de boucle. Se code :
(l1,lf):(y2=0) → (nul)
Ce qui signifie que l’on passe de l’état l1 à l’état lf quand y2=0 et que l’on n’applique aucune transformation aux variables.

L’ensemble de ces éléments est représenté dans la figure 0.4.


Figure 0.4: graphe de programme

0.11.2  L’ensemble des états et la relation d’accessibilité

Notre programme est déterministe, séquentiel et discret, donc les états seront une suite discrète w0,w1,…,wn. Nous posons wk=(li,yk). L’état w est donc entièrement déterminé par le sommet courant du graphe et l’état des variables du problème à l’instant k.

La relation d’accessibilité est très simple. Dans ce modèle temporel linéaire non ramifié, on pose wi R wj ssi ij.

Nous utiliserons comme variables propositionnelles des expressions at lj qui seront vraies dans l’état wk=(li,yk) ssi i=j.

Un prédicat atomique portant sur les variables, de la forme p(y), sera vrai dans l’état wk=(li,yk) ssi p(yk) est vrai.

Enfin nous utiliserons comme opérateurs temporels ◇ et □. Ils pourront se lire :

0.11.3  Codage du programme en logique temporelle

À chacune des relations de transition sur les arcs du graphe nous associons une formule de la logique temporelle de la façon suivante.

Soit la condition :

(li,lj) : Cij(
y
)  → fij(
y
)

nous lui associons la formule :

□ ((at li ∧ Cij(
y
) ∧ (
y
 = 
v
)) → ◇(at lj ∧ (
y
 = fij(
v
))))

Ainsi, le programme qui nous intéresse se code en trois formules, correspondant aux trois relations vues plus haut :

□ ((at l0 ∧ (y1=v1) ∧ (y2=v2)) → ◇(at l1 ∧ (y1=n) ∧ (y2=m)))       (0.1)

Cette formule exprime que si nous sommes dans l’état initial, alors il existe un état accessible où le contrôle est en l1 et y1=n,y2=m.

Codons la seconde relation :

□ ((at l1 ∧ (y1=v1) ∧ (y2=v2)  ∧ (y2>0)) → ◇(at l1 ∧ (y1=v1+1)  ∧ (y2=v2−1)))       (0.2)

Cette formule exprime que si nous sommes dans l’état l1 et que y2>0, alors il existe un état accessible où le contrôle reste en l1 et où les variables sont devenues y2:=y2−1,y1:=y1+1.

Codons la troisième relation :

□ ((at l1 ∧ (y1=v1) ∧ (y2=v2)  ∧ (y2=0)) → ◇(at lf ∧ (y1=v1)  ∧ (y2=v2)))       (0.3)

Cette relation exprime que nous passons dans l’état final sans changer la valeur de nos variables si y2=0.

Nous avons maintenant terminé de coder nos hypothèses de calcul.

0.11.4  Codage des propriétés

Il nous reste maintenant à coder nos conclusions, ou plus clairement à coder le résultat que nous voulons que notre programme obtienne. Comment peut-on exprimer en logique temporelle le fait qu’un programme va calculer correctement une valeur ?

En fait, il existe deux types de correction possible, l’exactitude partielle et l’exactitude totale.

Exactitude partielle :
Elle revient à dire que si nous arrivons dans l’état final (c’est-à-dire si le programme se termine), alors le résultat sera correct. On peut coder ce type de propriété par :
(at l0 ∧ P) → □ (at lf → Q
Cette formule signifie que, si je suis à un instant donné dans l’état initial et qu’un ensemble de conditions initiales sont vérifiées, alors dans tous les états suivants (□) la sous-formule (at lfQ) sera vraie. Cette sous formule signifie que si je suis dans l’état final, alors l’ensemble des conditions finales Q est vérifié. Notons bien que cette formule exprime simplement que, à tout instant, si je suis dans l’état final, alors le programme a donné un résultat correct. Mais elle ne garantit en aucun cas que l’on arrivera dans l’état final.
Exactitude totale
L’exactitude est totale si nous garantissons que le programme se termine et que dans son état final, l’ensemble des conditions finales est vérifié. On peut le coder par :
(at l0 ∧ P) → ◇(at lf ∧ Q
Cette formule exprime que si nous sommes à un instant donné dans l’état initial et que les conditions initiales sont vérifiées, alors il existera (◇) un instant où le contrôle sera dans l’état final et ou les conditions finales seront vérifiées.

Pour en revenir à l’exemple qui nous intéresse, l’exactitude partielle sera codée par :

at l0 → □ (at lf → (y1=n+m)) 

et l’exactitude totale sera codée par :

  at l0 → ◇(at lf ∧ (y1=n+m))      (0.4)

0.11.5  Système formel utilisé

Nous allons voir que nous sommes dans un cas où la logique temporelle est assez simple.

En fait, une logique temporelle minimale basée sur les axiomes de S4 nous suffit pour travailler sur les propriétés temporelles du système. Rappelons que les axiomes de ce système sont 0.4.1, 0.4.1, 0.4.2, et la règle d’inférence 0.4.1 plus les axiomes et les règles d’inférence de la logique classique. Cependant, nous avons aussi besoin d’exprimer des propriétés du premier ordre. C’est donc en fait le système S4 du premier ordre que nous adoptons.

Mais nous devons également enrichir S4 d’un certain nombre d’axiomes et de règles d’inférence exprimant les propriétés des données manipulées. Comme nous travaillons sur des nombres entiers en utilisant des règles d’arithmétique, nous devons utiliser l’équivalent des axiomes de ℕ en logique temporelle.

Ainsi nous pouvons récupérer l’axiome d’induction :

A(0) ∧ ∀ x (A(x) → A(x+1)) → A(x)

et le transformer en une règle d’induction en logique temporelle :

⊢ □ (A(0) → ◇ B), ⊢ ((A(n) → ◇ B) →  (A(n+1) → ◇ B))
⊢ □ ((∃ k A(k)) → ◇ B)

En fait, nous n’utiliserons pas cette règle mais une règle dérivée :

⊢ □ (A(0) → ◇ B),  ⊢ □ (A(n+1) → (A(n) ∨ B))
⊢ □ ((∃ k A(k)) → ◇ B)
      (0.5)

On peut lire cette règle de la façon suivante : si chaque fois que l’on a A(0), alors on aura B, et si chaque fois que l’on A(n+1), alors on aura soit A(n) soit B, alors s’il existe une valeur k telle que A(k), on aura B.

Il nous faut d’autre part quelques propriétés supplémentaires sur les entiers. Nous utiliserons :

  □ (x ≥ 0)     (0.6)

et

  □ ((0 ≤ x ≤ n+1) → (0 ≤ x−1 ≤ n))     (0.7)

0.11.6  Conclusion

Le problème est maintenant complètement formalisé dans un système logique, et il ne s’agit plus que de construire une preuve : il faudrait démontrer en utilisant les hypothèses 0.1,0.2,0.3, les axiomes et règles d’inférence de S4 et les règles et propriétés 0.5, 0.6, 0.7 que la formule 0.4 est vraie.

La preuve complète est longue et technique, nous ne la développerons pas ici. Nous renvoyons le lecteur intéressé à [AEC90].

0.12  Les logiques multi-valuées

Nous allons terminer en disant un mot des logiques multi-valuées. Les logiques multi-valuées sont construites intuitivement à partir de la technique des tables de vérité de la logique classique. Simplement, au lieu de ne considérer que deux valeurs possibles t ou f, ou encore en logique binaire 0 et 1, on construit une table où chacun des atomes peut prendre plusieurs valeurs pour les logiques admettant seulement un nombre fini de valeurs. Pour les logiques acceptant une infinité de valeurs, on donne des règles générales de construction.

0.12.1  Logique de Lukasiewicz


ABAB¬ A
0011
01/211
0111
1/201/21/2
1/21/211/2
1/2111/2
1000
11/21/20
1110
Tableau 0.1: Connecteurs en logique ternaire

Dans la logique trivaluée de Lukasiewicz, un atome peut prendre trois valeurs 0, 1/2, ou 1. Les connecteurs sont définis à partir des tables de vérité. Le tableau 0.1 définit l’ensemble des connecteurs.

On définit les connecteurs manquants par :

p∨ q =def (p → q) → q
p∧ q =def ¬ (¬ p ∨ ¬ q
p ↔ q =def (p → q) ∧ (q → p

Nous avons donc ici un modèle sémantique de notre logique. La construction d’une théorie syntaxique dans le cas des logiques multi-valuées est chose difficile.

logiques non classiques|)


1
Nous confondrons dans la suite axiome et schéma d’axiome.
2
Il serait trop long de développer complètement la notion de réfutabilité. Disons simplement que dans un tel système, il existe à côté des théorèmes (vrais) des anti-théorèmes (faux). Une proposition p est réfutable (¬ p est vrai) si l’on peut démontrer que p conduit, à l’aide des axiomes, à l’un de ces anti-théorèmes.
3
que l’on peut lire : << Si A est vrai alors A se déduit de n’importe quoi >>.
4
W peut être fini ou infini.
5
On dit d’un tel système qu’il n’est pas complet au sens de Post.
6
Il est intéressant de noter que dans ce système, on a de façon triviale A ↔ □ A et A ↔ ◇ A. Ce système est en fait semblable au calcul propositionnel puisque les opérateurs modaux peuvent être insérés ou supprimés à volonté, et n’ont donc aucune signification particulière.
7
On désigne parfois cette propriété sous le nom d’omniscience.
8
La propriété d’introspection négative ◇ A → □ ◇ A est équivalente à ¬ □ A → □ ¬ □ A. Ceci permet de mieux comprendre le nom d’introspection négative, par opposition à l’introspection positive.
9
Ici t′ est interprété comme << aujourd’hui >>.

Références

[AEC90]
Eric Audureau, Patrice Enjalbert, and Luis Fariñas Del Cerro. Logique temporelle. Sémantique et validation des programmes parallèles. Masson, 1990.
[Gri67]
Jean-Blaise Grize. Logique des classes et des propositions. In Jean Piaget, editor, Logique et connaissance scientifique. Encyclopédie de la Pléiade, Gallimard, 1967.
[HC72]
G. E. Hughes and M. J. Cresswell. An Introduction to Modal Logics. Methuen & Co. Ltd, 2nd edition, 1972. ISBN: 0-416-29460-X.
[RU71]
N. Rescher and A. Urquhart. Temporal logic. Springer-Verlag, 1971. ISBN: 0-387-80995-3.

Retour à ma page principale

Le téléchargement ou la reproduction des documents et photographies présents sur ce site sont autorisés à condition que leur origine soit explicitement mentionnée et que leur utilisation se limite à des fins non commerciales, notamment de recherche, d'éducation et d'enseignement.
Tous droits réservés.

Dernière modification: 09:48, 22/02/2024