Les mathématiciens ont pour habitude de remplacer les parenthèses par des règles
d’association et de priorité qui permettent de désambigüer les formules, donc de faire
leur analyse syntaxique. On supposera ainsi que tous les symboles associent à gauche,
et que leur ordre de priorité décroissant est donné par ¬>∧>∨>⇒.
2. L’ensemble des atomes est l’ensemble des expressions de la forme P(t1,...,tn)où
Pest un symbole de prédicat et t1,...,tnsont des termes.
3. Le langage F(R,F,X)des formules du premier ordre bati sur le vocabulaire
R,F,Xest le plus petit ensemble contenant les constantes logiques 0et 1et les
atomes, et clos par les opérations qui
- à la formule Aassocient sa négation ¬A,
- aux formules A, B associent leur conjonction A∧B, leur disjonction A∨B, et
l’implication A⇒B,
- à la formule Aet à la variable xassocient la formule existenciellement quantifiée
∃xA, et la formule universellement quantifiée ∀xA.
Le langage des formules propositionnelles est obtenu pour X=∅,F=∅,P=P0.
Un littéral est un atome (auquel cas il est dit positif) ou la négation d’un atome (au-
quel cas il est dit négatif). Une formule sans variable est dite close. Une formule dont les
quantificateurs apparaissent tous en tête est dite prénexe. Une formule universelle (resp.
existentielle) est une formule prénexe close dont les seuls quantificateurs sont universels
(resp. existentiels).
On appelle clause toute formule universelle dont les sous formules non quantifiées sont
des littéraux ou des disjonctions de littéraux. Une clause a donc la forme générale
∀x1...∀xnA1∨...∨Ap∨ ¬B1∨...∨ ¬Bq
où A1,...,Ap, B1,...,Bqdésignent des atomes.
Exercice 1.2 Montrer que l’ensemble des formules et des formules prénexes représentés
comme des mots sur l’alphabet X ∪ F ∪ P est un langage hors-contexte lorsque F,Pet X
sont finis.
Qu’en est-il de l’ensemble des clauses ?
1.1.3 Variables libres et variables liées
Les quantificateurs lient les variables sur lesquelles ils portent. On définit donc les va-
riables libres Var() et les variables liées BVar() d’une formule par récurrence sur la struc-
ture de la formule :
Variables Var(x) = {x}si xest une variable
BVar(x) = ∅si xest une variable
Termes Var(f(t1,...,tn)) = Var(t1)∪...∪ Var(tn)
BVar(f(t1,...,tn)) = ∅
Atomes Var(P(t1,...,tn)) = Var(t1)∪...∪ Var(tn)
BVar(P(t1,...,tn)) = ∅
Formules Var(A∧B) = Var(A)∪ Var(B)
BVar(A∧B) = BVar(A)∪ BVar(B)
Var(A∨B) = Var(A)∪ Var(B)
5