Vous êtes sur la page 1sur 8

LIF11 - TD2

Correction
Exercice 1:
Un prisonnier doit choisir entre deux cellules dont lune cache une princesse et lautre un tigre.
Sil choisit la princesse, il doit lepouser, mais sil tombe sur le tigre, il est devore. A noter que les
deux cellules peuvent contenir un tigre, ou les deux cellules une princesse.
Sur lune des portes (la porte A), laffiche indique: Il y a une princesse dans cette cellule et
un tigre dans lautre; sur la deuxi`eme porte (la porte B), il est ecrit: Il y a une princesse dans
une cellule et il y a un tigre dans une cellule. Il faut encore noter quune affiche dit la verite et
que lautre ment. Ecrire une formule qui permet de representer la situation et en deduire quelle
porte le prisonnier doit ouvrir (i.e. ce quil y a dans chacune de ces cellules).
Correction: On introduit une variable pA (resp. pB ) qui vaudra vrai si la cellule A (resp. B)
contient une princesse. la premi`ere affiche se traduit par pA pB . La seconde se traduit par
(pA pB ) (pA pB ). Lenonce se traduit donc par (pA pB ) ((pA pB ) (pA pB )),
formule que lon cherche `
a rendre vraie. Il suffit de prendre une interpretation I telle que I(pA ) = F
et I(pB ) = V , cest `
a dire quil y a une princesse dans la cellule B et un tigre dans la cellule A. 2
Variation: laffiche de la cellule A dit la verite sil y a une princesse dans la cellule A, elle ment
sil y a un tigre. Pour la cellule B, cest linverse: sil y a un tigre, elle dit la verite, sil y a une
princesse, elle ment. Voici donc les deux affiches. Lune dit: Les deux cellules contiennent des
tigres et lautre: Cette cellule contient un tigre. Quelle porte choisir?
Correction: On ne sait pas sur quelle porte est collee quelle affiche. On introduit donc une
variable pcell qui vaudra vrai si la premi`ere affiche est collee sur la cellule A et faux sinon. Dans
le cas o`
u la premi`ere affiche est collee sur la cellule A, la formule suivante traduit la situation:
(pA (pA pB )) (pB pB ). S la premi`ere affiche est collee sur la deuxi`eme cellule, on
obtient: (pA pA ) (pB (pA pB )). La formule totale representant la situation est donc
(pcell (pA (pA pB )) (pB pB )) pcell (pA pA ) (pB (pA pB )). Il
faut prendre comme interpretation I: I(pA ) = F , I(pB ) = V et pcell = V (ce qui peut etre obtenu
soit avec un calcul de table de verite, soit en reflechissant directement sur les formules).

Exercice 2:
Pour chacune des fonctions f1 et f2 , donner une formule qui la realise. On pourra eventuellement
pour cela suivre la methode suggeree `
a travers la demonstration du fait que {>, , , , , } est
fonctionnellement complet.
x
V
V
V
V
F
F
F
F

y
V
V
F
F
V
V
F
F

z
V
F
V
F
V
F
V
F

f1 (x, y, z)
V
V
F
V
F
F
V
F

f2 (x, y, z)
F
F
F
V
F
V
F
F

Correction:
On decompose f1 en deux fonctions `a 2 arguments f11 (y, z) = f1 (V, y, z) et
2
f1 (y, z) = f1 (F, y, z). On recommence loperation avec f11 decomposee en f111 et f112 et f11
1

decomposee en f121 et f122 . On en donne egalement une version simplifiee obtenue en utilisant
a chaque etape des equivalences remarquables. On proc`ede de la meme mani`ere pour f2
`
Fonction
f111
f112
f121
f121
f11
f12
f1
f211
f212
f221
f221
f21
f22
f2

Formule
(pz >) (pz >)
(pz ) (pz >)
(pz ) (pz )
(pz >) (pz )
(py >) (py pz )
(py ) (py pz )
(px (pz py )) (px (pz py ))
(pz ) (pz )
(pz ) (pz >)
(pz ) (pz >)
(pz ) (pz )
(py ) (py pz )
(py pz ) (py )
(px (py pz )) (px (py pz ))

Formule simplifiee
>
pz

pz
pz py
(pz py )
px (pz py )

pz
pz

py pz
py pz
px (px py )

Exercice 3:
Soient les substitutions suivantes:
1 = [uv /p ,uv /q ]
2 = [uv /p ,vu /q ,(uv) /r ]
3 = [v /p ,uv /q ,u /r ]
Donner le resultat de lapplication de 1 , 2 et 3 sur les formules suivantes:
A = (p q) p q
Correction:
A1 = ((u v) (u v)) (u v) (u v)
A2 = ((u v) (v u)) (u v) (v u)
A3 = (v (u v)) v (u v)
B = (p q r)
Correction:
B1 = ((u v) (u v) r)
B2 = ((u v) (v u) ((u v)))
B3 = ((v) (u v) (u))
C = (r (p q)) (p q r)
Correction:
C1 = (r ((u v) (u v))) ((u v) (u v) r)
C2 = (((u v)) ((u v) (v u))) ((u v) (v u) ((u v)))
C3 = (u (v (u v))) (v (u v) u)
Donner la table de verite des formules qui apparaissent dans 1 , 2 et 3 , ainsi que celle des
formules A, B et C.
Correction:
2

u
V
V
F
F

v
V
F
V
F

u v(p1 ) u v(q1 ) u v(p2 ) v u(q2 ) (u v)(r2 ) v(p3 ) u v(q3 ) u(r3 )


V
V
F
V
F
V
V
V
V
F
V
F
F
F
F
V
V
V
V
F
F
V
F
F
F
V
F
F
V
F
F
F
p
V
V
F
F
p
V
V
V
V
F
F
F
F

q
V
V
F
F
V
V
F
F

r
V
F
V
F
V
F
V
F

q
V
F
V
F

(p q) p q
V
V
V
V

pqr
V
V
V
V
V
V
V
F

(r (p q)) (p q r)
V
F
F
F
F
V
F
V

2
En utilisant les tables de verite precedentes, donner la table de verite de A1 , B2 et C3 .
Correction: On utilise la table de verite des formules des substitutions pour connaitre la valeur
des formules remplacant p, q et r, puis on utilise les tables de A, B et C avec ces valeurs:
u
V
V
V
V
F
F
F
F
u
V
V
F
F

v
V
F
V
F

A1
V
V
V
V

v
V
V
F
F
V
V
F
F

A2
V
V
V
V

r
V
F
V
F
V
F
V
F

B1
V
V
V
V
V
V
V
V

B2
V
V
V
V

C2
V
F
F
F

C1
V
F
F
F
V
F
F
V
A3
V
V
V
V

B3
V
V
V
F

C3
V
F
F
V

Exercice 4:

Additionneur binaire

Un additionneur binaire est un circuit electronique permettant de realiser des additions sur
des entier positifs ecrit en base 2. Un additionneur additionnant des nombres codes sur n bits
poss`ede 2 n entrees et n + 1 sorties (en effet, en binaire 10 + 10 = 100).
On souhaite verifier un additionneur binaire en controlant ses sorties en fonction de ses entrees.
Ladditionneur est represente par n + 1 formules A1 , . . . , An+1 ayant 2n variables representant les
entrees du circuit et telle que valeur de verite de Ak correpond `a la valeur de la k ieme sortie.
1. Donner la table de verite de deux fonctions pour laddition de 3 bits:
la premi`ere calcule la somme des 3 bits sans retenue (i.e. 1 + 1 + 1 7 1);
la second calcule la retenue de cette somme.
Correction:
p
V
V
V
V
F
F
F
F

q
V
V
F
F
V
V
F
F

r
V
F
V
F
V
F
V
F

somme
V
F
F
V
F
V
V
F

retenue
V
V
V
F
V
F
F
F

2. Donner deux formules realisant ces fonctions.


Correction:
somme: S = p (q r)
retenue: R = (p (q r)) (p (q r))
3. En deduire les formules specifiant les sorties dun additionneur 2 bits. On consid`ere que les
entier sont representes avec le bit de poids faible ayant le plus petit indice, que le premier
entier est represente par p1 , p2 et que le second est represente par q1 , q2 .
Correction:
B1 = p1 q1 (obtenue `
a partir de la formule pour la somme en replacant r par ).
On pose R1 = p1 q1 (obtenue `a partir de la formule pour la retenue en replacant r
par ). On a alors B2 = S[p2 /p, q2 /q, R1 /r] = p2 (q2 (p1 q1 )).
B3 = R[p2 /p, q2 /q, R1 /r] = (p2 (q2 (p1 q1 ))) (p2 (q2 p1 q1 )).
4. Generaliser la construction precedente pour donner une mani`ere de construire les formules
de specification des sorties dun additionneur n bits.
Correction: On construit iterativement les formules Bk et Rk selon le schema suivant:
B1 = p1 q1
R1 = p1 q1
Bk = S[pk /p, qk /q, Rk1 /r] pour 2 k n
Rk = R[pk /p, qk /q, Rk1 /r] pour 2 k n + 1
Bn+1 = Rn+1

5. Expliquer comment on peut utiliser ces formules avec les formules A1 , . . . , An+1 afin de
verifier que ladditionneur est correct.
Correction: Il suffit de verifier que Ai Bi pour 1 i n + 1.

Exercice 5:
Demontrer que les sequents suivants sont corrects en utilisant le syst`eme G puis en utilisant le
syst`eme LK:
(p q) p ` q
` ((p q) p) p
p q, q r ` p r
` p (q r) (p q) (p r)
Correction:
(p q) p ` q
Syst`eme G:

(Ax)
(Ax)
p ` q, p
p, q ` q
(G )
p q, p ` q
(G )
(p q) p ` q

Syst`eme LK:

(Id)
(Id)
p`p
q`q
(G )
p q, p ` q
(2 )
p q, (p q) p ` q G 1
( )
(p q) p, (p q) p ` q G
(CG )
(p q) p ` q

` ((p q) p) p
Syst`eme G:

Syst`eme LK:

(Ax)
p ` q, p
(D )
(Ax)
` p q, p
p`p
(G )
(p q) p ` p
(D )
` ((p q) p) p
(Id)
p`p
(AD )
p ` q, p
(D )
(Id)
` p q, p
p`p
(G )
(p q) p ` p, p
(CD )
(p q) p ` p
(D )
` ((p q) p) p

p q, q r ` p r
Syst`eme G:

(Ax)
(Ax)
p, q ` r, q
p, q, r ` r
(G )
(Ax)
p, q r ` r, p
p, q, q r ` r
(G )
p, p q, q r ` r
(D )
p q, q r ` p r
5

Syst`eme LK:

(Id)
(Id)
q`q
r`r
(G )
(Id)
q, q r ` r
p`p
(G )
p, p q, q r ` r
(D )
p q, q r ` p r

` p (q r) (p q) (p r)
Syst`eme G:
(Ax)
(Ax)
q, r ` p, q
q, r ` p, r
(D )
(D )
(Ax)
(Ax)
p ` p, q
p ` p, r
q, r ` p q
q, r ` p r
(D )
(D )
(D )
p`pq
p`pr
q, r ` (p q) (p r)
(D )
(G )
p ` (p q) (p r)
q r ` (p q) (p r)
(G )
p (q r) ` (p q) (p r)
(D )
` p (q r) (p q) (p r)
Syst`eme LK:
(Id)
(Id)
q`q
r`r
(2D )
(2D )
(Id)
(Id)
q
`
p

q
r
`
p

r
p`p
p
`
p
(1 )
(1 )
(1 )
(2 )
p`pq D
p`pr D
qr `pq G
qr `pr G
(D )
(D )
p, p ` (p q) (p r)
q r, q r ` (p q) (p r)
(CG )
(CG )
p ` (p q) (p r)
q r ` (p q) (p r)
(G )
p (q r) ` (p q) (p r), (p q) (p r)
(CD )
p (q r) ` (p q) (p r)
(D )
` p (q r) (p q) (p r)

Exercice 6:
Montrer que les r`egles (AG ) et (CD ) du syst`eme LK sont correctes. Montrer que la r`egle (D ) du
syst`eme G et la r`egle (G ) du syst`eme LK sont correctes.
Correction:
On pose = {{A1 , . . . , An }} et = {{B1 , . . . , Bk }}. On pose egalement
0 = {{A01 , . . . , A0n0 }} et 0 = {{B10 , . . . , Bk0 0 }}. Remarque les cas presentes ne sont pas toujours
mutuellement exclusifs, mais ce nest pas grave.
Wk
Vn
(AG ): Si ` est correct, alors |= i=1 Ai i=1 Bi . Donc pour toute interpretation I:
Vn
Vn
Wk
Vn
Soit [ i=1 Ai ]I = F . Alors [ i=1 Ai A]I = F et donc [ i=1 Ai A i=1 Bi ]I = V
Wk
Wk
Vn
Soit [ i=1 Bi ] = V . Alors [ i=1 Ai A i=1 Bi ]I = V
Wk
Vn
Donc |= i=1 Ai A i=1 Bi , donc , A ` est correct.
Wk
Vn
(CD ): Si ` , A, A est correct, alors |= i=1 Ai i=1 Bi A A. Comme A A A,
Vn
Wk
|= i=1 Ai i=1 Bi A. Donc ` , A est correct.
Vn
Wk
Vn
(D ): Si ` , A, B est correct, alors |= i=1 Ai i=1 Bi A B. Alors |= i=1 Ai
Wk
i=1 Bi (A B) et donc ` , A, B est correct.
Vn
Wk
V n0
(G ): Si ` A, est correct, alors |= i=1 Ai A i=1 Bi . Si 0 , B ` 0 , alors |= i=1 A0i
Wk 0
Vn
V n0
Wk
Wk 0
B i=1 Bi0 . On pose C = i=1 Ai , i=1 A0i (A B) i=1 Bi i=1 Bi0 . Pour toute
interpretation I:
6

Vn
V n0
Ai ]I = F , alors [ i=1 Ai , i=1 A0i (A B)]I = F et [C]I = V .
Vn
V n0
Soit
A0i ]I = F , alors [ i=1 Ai , i=1 A0i (A B)]I = F et [C]I = V .
Wk
Wk 0
Soit
Bi ]I = V , alors [ i=1 Bi i=1 Bi0 ]I = V et [C]I = V .
Wk
Wk 0
Soit
Bi0 ]I = V , alors [ i=1 Bi i=1 Bi0 ]I = V et [C]I = V .
V n0
Vn
Soit [A]I = V et [B]I = F . Alors [A B]I = F , donc [ i=1 Ai , i=1 A0i (A
B)]I = F , do`
u [C]I = V .
Wk 0
Vn0
Wk
Vn
Donc |= i=1 Ai , i=1 A0i (A B) i=1 Bi i=1 Bi0 , donc , 0 , A B ` , 0 est
correct.
Soit [

Vn

i=1
V n0
[ i=1
Wk
[ i=1
Wk 0
[ i=1

Exercice 7:
Montrer que les r`egles (1G ) et (2G ) du syst`eme LK peuvent etre remplacees par la r`egle (G ) du
syst`eme G.
Montrer que la r`egle (G ) du syst`eme LK peut etre remplacee par celle du syst`eme G.
Correction: Il faut montrer que toute application de (1G )LK ou de (2G )LK peut etre remplacee
par un morceau de derivation utilisant (G )G et inversement.
(1G )LK :
, A `
(AG )
, A, B `
(G )G
, A B `
(2G )LK :
, B `
(AG )
, A, B `
(G )G
, A B `
(G )G :
, A, B `
(2 )LK
, A, A B ` G 1
( )LK
, A B, A B ` G
(CG )
, A B `
Il faut montrer que toute application de (G )LK peut etre remplacee par un morceau de derivation
utilisant (G )G et inversement.
On pose: = {{A1 , . . . , An }}, = {{B1 , . . . , Bk }}, 0 = {{A01 , . . . , A0n0 }} et 0 = {{B10 , . . . , Bk0 0 }}.
(G )LK :
` A,
0 , B ` 0
(AD ) k
(AD ) k 0
0
0
` A, ,
, B ` , 0
0
(AG ) n
(AG ) n
, 0 ` A, , 0
, 0 , B ` , 0
(G )G
, 0 , A B ` , 0
(G )G :
` , A
, B `
(G )LK
, , A B ` ,
(CD ) k
, , A B `
(CG ) n
, A B `

R`
egles du syst`
eme LK
`
, A `

(AG )
(CG )

(AD )

, A, A `
, A `

(CD )

, A `
, A B `

(1G )

, B `
, A B `

(G )

, A `
,B `
0
, , A B ` , 0

` A,
0 , B ` 0
, 0 , A B ` , 0

(G )

(G )

(1D )

` , A
` , A B

(2D )

` , B
` , A B

(D )

, A ` , B
` , A B

` , A
, A `

(D )
(Id)

(Coupure)

` , A, A
` , A

` , A
0 ` 0 , B
, 0 ` , 0 , A B

(D )
(2G )

`
` A,

, A `
` , A

A`A

` , A
0 , A ` 0
, 0 ` , 0

R`
egles du syst`
eme G
(G )

, A `
, B `
, A B `

(G )
(G )

(D )

, A, B `
, A B `

(G )

(D )

` , A
, A `
(Axiome)

` A,
` B,
` A B,

(D )

` A,
, B `
, A B `

(D )

, A ` , A

` , A, B
` , A B

, A ` B,
` A B,
, A `
` , A