Master 2
: Intelligence
Artificielle
Logique et Algèbres de
Processus
Pr. Mustapha Bourahla
Département d’Informatique Université de M’Sila
Exercices corrigés
2
Exercice n° 1: Lois algébriques pour []
Les lois algébriques de LOTOS sont une conséquence
des règles d’inférence
Persuadez-vous que ceci est vrai pour les trois lois que
nous avons mentionné pour l’opérateur []
A[]B = B[]A
A[]stop = stop[]A = A
A[](B[]C) = (A[]B)[]C
3
Solutions: Lois algébriques pour []
a1 a2
B1 B1’ B2 B2’
A[]B = B[]A
a1 a2
B1 [] B2 B1’ B1 [] B2 B2’
a a
A A’ A A’
a
A [] B A’ a
B [] A A’
Donc A[]B = B[]A
4
Solutions: Lois algébriques pour []
A[]stop = stop[]A = A
Évidemment, si A ou B est un stop (c'est-à-dire qu'il n'a pas
d'action), l'action devra venir de l'autre comportement :
A [] stop = A
stop [] A = A
donc une seule des deux dérivations ci-dessus est possible.
5
Solutions: Lois algébriques pour []
a1 a2
B1 B1’ B2 B2’
A[](B[]C) = (A[]B)[]C
a1 a2
B1 [] B2 B1’ B1 [] B2 B2’
a a
A A’ A A’
a
a
A[](B[]C) A’ (A[]B)[]C A’
Donc A[](B[]C) = (A[]B)[]C
6
Exercice n° 2: Lois algébriques pour II
Les lois algébriques de LOTOS sont une conséquence
des règles d’inférence
Persuadez-vous que ceci est vrai pour les trois lois que
nous avons mentionné pour l’opérateur ||
A||B = B||A
A||stop = stop||A = stop
A||(B||C) = (A||B)||C
Enfin, si vous faites le travail vraiment bien, vous verrez
que la deuxième loi n’est pas vraie dans un cas particulier…
7
Solutions: Lois algébriques pour II
Pour A||B = B||A
a a
A
a
A’ B
a
B’ B B’ A A’
a a
A || B A’|| B’ B || A B’|| A’
Donc A||B = B||A car nous avons les mêmes conditions
Pour A||stop = stop||A = stop, stop n’a pas d’action (n’est pas
vraie dans les cas des actions internes)
Pour A||(B||C) = (A||B)||C
A – a > A’ B – a > B’ C – a > C’
a
A || B ||C A’|| B’ || C’
8
Exercice n° 3:
En utilisant les règles d’inference dessiner les arbres (STE) de
process one [a,b,c]
a; (b; stop [] c; stop)
endproc
process two [a,b,c]
a; b; stop [] a; c; stop
Endproc
P1 := a; (b; d; stop [] c; stop)
P2 := a; b; d; stop [] a; c; stop
Solutions:
En utilisant les règles d’inference dessiner les arbres (STE) de
process one [a,b,c] a; (b; stop [] c; stop) endproc a
a; ((b; stop [] c; stop)) --- a > (b; stop [] c; stop) b c
(b; stop [] c; stop) --- b > stop
(b; stop [] c; stop) --- c > stop
a a
process two [a,b,c] a; b; stop [] a; c; stop endproc
c
P1 := a; (b; d; stop [] c; stop)
a b
b c
P2 := a; b; d; stop [] a; c; stop
Exercice n° 4:
Ecrire des spécifications lotos pour les circuits logiques: and, or et
xor.
Dessiner leurs systèmes à transitions étiquettées
Solutions: and
specification circuit_logique [a,b,c] : noexit
type BIT is
sorts BIT
opns 0 (*! constructor *),
1 (*! constructor *) : -> BIT
and : BIT, BIT -> BIT
eqns
ofsort BIT
and (0, 0) = 0;
and (0, 1) = 0;
and (1, 0) = 0;
and (1, 1) = 1;
endtype
behaviour
gate_and[a, b, c]
where
process gate_and[a, b, c] : noexit :=
a ?aa:Bit; b ?bb:Bit; c !and(aa, bb); stop
endproc
endspec