Partie 2: FO2
Cette partie a pour objectif de montrer que la strat´egie de r´esolution de la premi`ere partie
donne une proc´edure de d´ecision pour le fragment FO2de la logique du premier ordre.
Le fragment FO2de la logique du premier ordre est l’ensemble des formules sans variable
libre, sur un ensemble fini de symboles de fonction d’arit´e 0, un ensemble fini de symboles
de pr´edicats unaires, un ensemble fini de symboles de pr´edicats binaires, qui n’utilisent que
deux symboles de variables: x, y. Par exemple:
8x.(9y.R(x, y)^(R(y, a)_9x.R(y, x)^R(x, a)))
est dans FO2. En revanche, la formule suivante n’est pas dans FO2:
8x, 8y, 8z. (R(x, y)^R(y, z)) )R(x, z)
(En fait, on peut montrer, ce qui n’est pas demand´e ici, qu’il n’existe aucune formule de FO2
qui est logiquement ´equivalente `a la formule de transitivit´e ci-dessus.)
Question 2.1
Montrer qu’il existe un algorithme polynomial qui, ´etant donn´ee une formule 2FO2, calcule
une formule ˜
=1^...^ntelle que
1. pour tout i,iest sans variable libre et de l’une des formes 8x8y. i,8x9y. i,8x. i,
9x. i, i,o`u iest sans quantificateur.
2. e
ne contient pas de symbole de constante et tous ses symboles de pr´edicat sont d’arit´e
au plus deux.
3. est satisfaisable si et seulement si ˜
est satisfaisable
Ind: On pourra, pour certaines sous-formule Qx.✓de o`u Q2{9,8}, introduire un
nouveau symbole de pr´edicat unaire RQx.✓, remplacer Qx.✓par RQx.✓(y) dans et ajouter
8y.(RQx.✓(y)$Qx.✓).
Question 2.2
On note C2l’ensemble des clauses ctelles que:
1. ccontient au plus deux variables et, si elle contient exactement deux variables, alors
elle ne contient aucun symbole de fonction
2. Si fest un symbole de fonction qui apparait dans c, alors toutes ses occurrences dans
csont dans un mˆeme terme f(x)
3. Il existe un litt´eral de cqui contient toutes les variables de c
4. Si ccontient un litt´eral clos, alors cne contient pas de variable et pas de symbole de
fonction.
3