You are on page 1of 55

UFR Sciences et Techniques

Licence S&T 1re anne

Logique pour l'informatique

TRAVAUX DIRIGS

Enseignant Jean-Yves ANTOINE (Jean-Yves.Antoine AT univ-tours.fr)


Logique pour linformatique

Introduction la logique

QUESTIONS DE COURS

Exercice 1 Les profs de maths de lyce sont-ils menteurs ? (contrle 2001 Objectif 1.1.2.)

Tout au long de votre scolarit, on vous a parl en mathmatiques de thormes. Mais en utilisant cette notion, ne vous
aurait-on pas menti par omission ? Que pensez-vous en particulier des assertions suivantes :

1 Pour tre un thorme il suffit quun nonc mathmatique soit vrai


vrai faux
2 Un thorme peut-tre faux
vrai faux

Exercice 2 La vrit est toujours relative (contrle 2007-2008 Objectif 1.1.6.)

On considre un systme logique qui est sain (consistant) mais pas complet. Que pensez-vous des deux affirmations
suivantes, prises globalement :

a) Dans ce systme, tout thorme est vrai


b) Dans ce systme, tout ce qui est vrai nest pas forcment un thorme
En utilisant les atomes Est_Theoreme et Est_Vrai, donnez la reprsentation la plus simple possible de cet ensemble
de deux affirmations en logique des propositions.

2 J-Y Antoine et J. Villaneau


Logique pour linformatique

Logique des propositions (LP)


QUESTIONS DE COURS

Exercice 3 Syntaxe LP (objectif : 2.1.1)

On considre les propositions suivantes :


a) B (B R) b) ( ) c) (B v R)
d) ( B R ) C e) ( (B R) C ) P f) P ( B C )
Quelles sont les propositions dans lesquelles les parenthses sont inutiles ?

Exercice 4 Mtorologie logique (objectif : 2.2.1)

En utilisant les atomes S (le soleil brille), P (il pleut), B (il bruine), A (il y a un arc en ciel), O (il a un vent d'Ouest), E
(il y a du vent d'Est) Traduire dans la logique des propositions les noncs suivants :
1) Sil pleut et que le soleil brille en mme temps, alors il y a un arc en ciel
2) Si le vent douest amne la pluie, on na jamais vu quun vent dest soit porteur de pluie.
3) La bruine est une forme de pluie.

TRADUCTION EN LP : EXERCICES

Exercice 5 Petit prcis de gomtrie euclidienne (objectif 2.2.1)

Reprsenter dans le formalisme de la logique des propositions les thormes de gomtrie suivants :

a Si un triangle est quilatral alors il est isocle.


b Un triangle rectangle n'est jamais quilatral.
c Un carr est la fois un paralllogramme et un rectangle.
d Un losange n'est ni un quadrilatre rectangle ni un triangle.
e Deux droites coplanaires sont soit scantes, soit parallles.
f Deux droites ne peuvent tre la fois scantes et parallles.

Exercice 6 Rencontres logiques (10 ; objectif 2.2.1.)

Traduire chacune des phrases suivantes en une formule du langage des propositions :
a Jamais il ne me rencontre sans me dire bonjour.
b Lorsquil ne me dit pas bonjour, cest quil est fch.
c Il sarrange pour ne jamais me rencontrer lorsquil est fch..
d Ou bien on va se dire bonjour ou bien il est fch..

Exercice 7 Un peu de gastronomie... (objectif 2.2.1)


On considre l'ensemble des connaissances suivantes, extraite d'un improbable cours d'cole htelire.
Si le client a command un plat du jour, on accompagnera le repas d'une carafe d'eau..
Si le client a demand un menu plus consquent, ou a command la carte, on servira obligatoirement du vin.
Trois sortes de vins peuvent tre servis : du blanc, du ros ou du rouge.
Avec de la viande, on servira du vin rouge et du ros ou du blanc avec le poisson.
Reprsentez ces informations sous la forme d'un ensemble de formules de la logique des propositions.

3 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 8 Prix de l'essence et prvention routire (objectif 2.2.1)

Les forces de police ont observ qu'en France, la vitesse


moyenne des automobilistes s'est rduite autour des annes
2010. Quel est la cause de cette nouvelle sagesse des
franais, d'ordinaire plus prompts acheter un dtecteur de
radar qu' penser aux milliers de morts annuels sur les
routes de l'Hexagone ? Pour y voir plus clair, donnez la
traduction en logique des propositions des noncs
suivants (en ne traduire pas les parties entre crochets :
a. La baisse des rserves ptrolires et la hausse de la
consommation chinoise expliquent la chert du ptrole
b. Ce nest pas parce qu'il y a des radars [ certains
endroits] que les gens rduisent leur vitesse [ailleurs].
c. Cest parce que le ptrole est cher que les gens roulent
moins vite.
d. Avec l'assouplissement des rgles de rattrapage de
points de permis [sous le gouvernement de Franois
Fillon] tre flash par un radar cote moins cher.
e. Pour que les franais roulent moins vite, il faut
augmenter le prix du ptrole et non pas augmenter le
nombre de radars

Exercice 9 Le diplm motiv (objectif 2.2.1)

A peine sorti de licence informatique,


Alphonse Oboulo se rue sur les annonces
d'emploi, persuad que la qualit de la
formation reue dans cette universit
sera immdiatement reconnue par les
entreprises les plus prestigieuses. En
rponse l'une de ses 5 678 candidatures
spontane, le DRH de la World
Company Inc., le convoque pour un
entretien dcisif. Remont bloc,
Alphonse Oboulo, se prcipite dans la
premire gare venue pour rserver un
billet de train pour la ville o il est
convoqu. Dans la file d'attente, il fait le
raisonnement suivant (on ne considrera
pour cela que les parties en caractres
italique) : Grves SNCF : monte du mcontentement en province

(1) En cas de grve, le train sera en retard ou annul.


(2) Ne pas russir l'audition et manquer le rendez-vous sont les 2 causes les plus sures de ne pas tre embauch.
(3) Compte tenu de la pr-slection effectue, russir l'entretien est synonyme d'embauche.
(4) Qui dit train en retard dit rendez-vous manqu.
(5) Une chose est sre, je ne raterai pas l'audition.
(C) Donc, seule une grve peut empcher mon embauche

Angoiss l'ide d'avoir son avenir suspendu au climat social au sein de la SNCF, Alphonse Oboulo tente d'carter ses
ides noires en traduisant en logique des propositions son raisonnement. Saurez-vous l'aider ?

4 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 10 Aprs le 11 septembre : logique et gopolitique (environ 5 ; objectif 2.2.1)


1 Compltez la traduction dans la logique des propositions de lnonc suivant : Palestiniens et Israliens ne sont
pas tous ncessairement opposs la paix.

Palestinien Isralien Pacifiste

2 Mme question avec lnonc suivant : Il ny a pas ncessairement que des islamistes extrmistes parmi les
Afghans et les Pakistanais.

Afghan Pakistanais Islamiste_extrmiste

Exercice 11 To tweet or not to tweet ? (objectif 2.2.1. )

En envoyant un tweet de soutien l'adversaire de Sgolne


Royale aux dernires lections lgislatives, Valrie Trierweiler
est parvenue un exploit rare : gnrer des milliers d'articles
journalistiques (une des quotidiens, mais aussi des
hebdomadaires politiques) et commentaires sur les forum
partir d'un petit message de moins de 140 caractres... De quoi
s'interroger sur les relations des franais avec une politique de
plus en plus people.
De quoi galement donner des ides votre enseignant pour
son cours de logique : il vous est en effet demand de traduire
en logique des propositions les noncs ci-dessous :
a Parler du tweet de Valerie Treilerweiler nest pas la seule
solution pour vendre un magazine.
b Parler de Valerie Treiweiler et parler de Sgolne Royal,
voil deux faons davoir une vente assure.
c Ce n'est pas parce que Franois Hollande a chang de
compagne qu'il faut parler de cette dernire.

Exercice 12 Histoires de connecteurs (environ 5; objectifs 2.2.1 & 2.1.3)


1 Compltez la traduction dans la logique des propositions de lnonc
suivant : La gloire pas plus que la richesse napportent le bonheur.

Gloire Richesse Bonheur

2 Donnez la traduction dans la logique des propositions de lnonc suivant :


Au resto U c'est toujours fromage ou dessert.

Exercice 13 La tl rend fou (10; objectifs 2.2.1 & 2.1.3)


1. Quelle(s) fbf(s) reprsente(nt) lnonc suivant : Pour gagner 2 heures de temps libre quotidien ou encore voir son
Quotient Intellectuel augmenter, il est ncessaire (mais pas ncessairement suffisant, bien sr !) de jeter sa tlvision
Temps_libre_en_plus QI_en_hausse Jeter_Television
Temps_libre_en_plus QI_en_hausse Jeter_Television
Temps_libre_en_plus QI_en_hausse Jeter_Television
Jeter_Television Temps_libre_en_plus QI_en_hausse
Jeter_Television Temps_libre_en_plus QI_en_hausse
Jeter_Television Temps_libre_en_plus QI_en_hausse

5 J-Y Antoine et J. Villaneau


Logique pour linformatique

2. De mme, quelle(s) fbf(s) reprsente(nt) lnonc suivant : Ne pas perdre ce nest pas obligatoirement obtenir une
victoire, alors quobtenir une victoire cest toujours ne pas perdre

Victoire Perdre
Perdre Victoire
Perdre Victoire
Victoire Perdre
(Victoire Perdre) (Perdre Victoire)
( Perdre Victoire) (Victoire Perdre)
(Perdre Victoire) (Victoire Perdre)

TRADUCTION EN LP : POUR ALLER PLUS LOIN

Exercice 14 Logique, langage et littrature (objectif 2.2.1)

De tous temps, les logiciens ont cherch reprsenter le langage, manifestation par excellence de la pense humaine,
sous forme logique. A premier abord, ce projet peut paratre raisonnable. Par exemple, reprsentez dans le formalisme
de la logique des propositions les citations suivantes :
a Je pense, donc je suis (Descartes, Discours de la mthode)
b Je me rvolte, donc je suis (Camus, L'Et)
c Cet animal est triste, et la crainte le ronge. (La Fontaine, Fables: Le livre et les grenouilles)
d Il n'y a pas d'amour de vivre sans dsespoir de vivre (Albert Camus, L'Envers et l'endroit)
e Qu'on cde la peur du mal, on ressent dj le mal de la peur (Beaumarchais, Le barbier de Sville)
f Ventre affam n'a point d'oreilles (La Fontaine, ib. : Le milan et le rossignol)
g Je meurs si je vous perds, mais je meurs si j'attends (Racine, Andromaque)

Trs vite, on ralise cependant que la tche est complexe : les reprsentations logiques ont du mal rendre compte de
certaines subtilits de comprhension traduites par des verbes de modalit (croire que, penser que, savoir que..), par de
petits mots outils (dj, seulement, toujours, mais...) voire par certaines tournures. Des logiques complexes telles que la
logique modale ou encore la logique floue ont t inventes pour atteindre un niveau de finesse plus important. Bien des
dtails de la langue chappent cependant toujours la reprsentation logique. Tentez tout de mme de reprsenter les
citations suivantes en logique des propositions, tout en relevant les insuffisances de cette reprsentation :

a Aller jusqu'au bout, ce n'est pas seulement rsister, c'est aussi se laisser aller (Camus, Carnets)
b Prouver que j'ai raison serait accorder que je puis avoir tort (Beaumarchais, Le mariage de Figaro)
c Je le harais davantage [Voltaire] si je le mprisais moins (Rousseau, Correspondance)
d [ Va, ] je ne te hais point (Corneille, Le Cid)

6 J-Y Antoine et J. Villaneau


Logique pour linformatique

Calcul des propositions

QUESTIONS DE COURS

Exercice 15 Tables de vrit (objectif 2.2.2)

Donner la table de vrit des propositions suivantes :


a) P Q b) (P Q)
c) P (Q P) d) (P Q) (P Q)

Exercice 16 Intuition logique (objectif 2.2.3 )


Donnez un modle de la fbf suivante : (ABC) C

TABLES DE VERITE : EXERCICES CALCULATOIRES

Exercice 17 Question de rapidit : table de vrit ou calcul mental (objectif 2.2.3 ; )

Donnez les interprtations des atomes P, Q et R (par exemple P = Vrai ; Q = Faux ; R = Faux) qui rendent fausses les
formules suivantes :
1) R P ( Q (R P))
2) [ Q (R P) ] R P

Exercice 18 Tautologies, contradictions (objectif 2.2.2.)

1 Prcisez, en utilisant la mthode des tables de vrit, si les formules suivantes sont des tautologies, des
contradictions, ou des propositions simplement satisfaisables. On cherchera limiter au maximum les calculs.
a) ( PQ) (P Q) b) P (P Q)
c) P (P Q)
d) (P Q) (Q P)
e) (P Q) (Q R) (P R)
Rponse tautologies : b, e ; formules satisfaisables : a, c, d
2 Quelle remarque peut on faire au sujet du rsultat d) ?

Exercice 19 Tautologies (objectif 2.2.2) d'aprs A. Aho & J. Ullman, Concepts fondamentaux de l'informatique, Dunod

Prcisez, en utilisant la mthode des tables de vrit, quelles sont les expressions, parmi les formules suivants, qui sont
des tautologies. On cherchera limiter au maximum les calculs.
1(PQ)P
2PQRPQ
3 ( P ( Q R ) ) ( Q P R )
Rponse tautologie : b
Exercice 20 Tables de vrit et ou exclusif (objectif 2.2.2)
On considre la fbf suivante : (A B) (C B) (A B).
1) Donnez le nombre d'interprtations pour lesquelles la formule est vraie :
2) Donnez le nombre d'interprtations pour lesquelles la formule est fausse :
3) Que peut-on dire de la formule :
Tautologique uniquement Tautologique et satisfaisable
Satisfaisable (sans plus) Contradictoire

7 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 21 Tables de vrit et ou exclusif (10 ; objectif 2.2.2 ; )

Prcisez, en utilisant la mthode des tables de vrit, la nature (tautologique, satisfaisable, contradictoire) des
expressions suivantes. On cherchera limiter au maximum les calculs.
a) (P Q) ( (RQ) (P Q)) b) (P Q) ( (R Q) (P Q))

Exercice 22 Equivalence logique (objectif 2.2.2 ; )

Retrouvez, laide de la mthode des tables de vrit, les rgles d'quivalence suivantes :
a) P (Q R) (P Q) (P R) (distributivit de la disjonction sur la conjonction)
b) (P Q) P Q (1re loi de De Morgan)
c) P P (P Q) P (P Q) (rgle d'absorption)

MODELES DUN ENSEMBLE DE FORMULES : EXERCICES AVEC TRADUCTIONS

Exercice 23 Cot de la vie (objectif 2.2.1 et 2.2.2)

Monsieur Truisme nous fait les deux affirmations suivantes :


(1) Si cet objet est rare, alors il est cher
(2) De plus, si cet objet est cher, alors il nest pas rare
A premire vue ces deux affirmations semblent contradictoires.
Montrez, laide de la mthode des tables de vrit, que cet
ensemble de propositions est satisfaisable. Cest dire que
Monsieur Truisme na pas forcment toujours tort...

Exercice 24 Dtective malgr lui (objectifs 2.2.1. et 2.2.3)


Un crime horrible a t commis au dpartement informatique : les PC de la salle dinformatique qui faisaient l'an dernier
encore de l'Universit un muse, ont t remplacs par des ordinateurs flambants neufs ! Le dtective Jack Palmer,
charg de cette difficile enqute, est arriv isoler trois suspects. Voici le rsum de leur dpositions :
(TA) Andr : Bernard est coupable. Claude na rien voir l dedans..
(TB) Bernard : Si Andr a fait le coup alors Claude est innocent.
(TC) Claude : Je suis innocent, mais lun des deux autres au moins est coupable.
La logique va aider ce pauvre dtective, qui se perd comme l'accoutume en conjonctures.

8 J-Y Antoine et J. Villaneau


Logique pour linformatique

1. Donner les formules correspondant aux trois tmoignages TA, TB et TC.


2. Cet ensemble de formules est-il satisfaisable ? Pour rpondre cette question, tudiez les diffrents cas de
culpabilit laide dune table de vrit.
Rponse indicative lanalyse de la table de vrit nous renseigne coup sr sur la culpabilit ou linnocence de deux
personnes, mais ne nous permet pas de dcider pour la troisime.

Exercice 25 Dduction laide de la mthode des tables de vrits (objectifs 2.2.1. et 2.2.3)

Deux amis, qui ne se mentent jamais, sont en conversation :


Bertrand : Alors, tes tu vraiment dcid entre Juliette et Isabelle ?
Paul : Je vais te dire deux choses. Dabord, jaime Juliette ou Isabelle, et ensuite, si jaime Juliette alors cest plus
fort que moi, jaime aussi Isabelle.
Bertrand : Peux-tu me jurer que si tu aimes Juliette alors tu aimes aussi Isabelle ?
Paul : Tout ce que je peux taffirmer, cest que si cest vrai alors jaime Juliette et que si cest faux alors je ne
laime pas
De qui Paul est-il rellement amoureux ? Pour le savoir, on reprsentera chaque proposition par une formule logique, et
on regardera par la mthode des tables de vrit quelle interprtation peut satisfaire lensemble des formules.
Rponse indicative Abondance de biens ne nuit pas ou encore quand il y en a pour une il y en a pour deux...

9 J-Y Antoine et J. Villaneau


Logique pour linformatique

CP : Mise sous forme normale

QUESTIONS DE COURS

Exercice 26 Equivalence logique et formules de transformations (objectif 2.2.5)

Montrez les quivalences suivantes en appliquant les formules de transformation de la logique des propositions :
a) P Q (P Q) P
b) PQ P (P Q)

Exercice 27 Vrification de la validit des formules par transformations (objectif 2.2.2)


En utilisant les rgles de simplification par quivalence logique vues en cours, montrez que :
a) (P (P Q)) et P Q sont logiquement quivalentes.
b) ((P Q) P) P est contradictoire.

Exercice 28 Equivalence logique (objectifs 2.2.2 et 2.2.5)

Dans chacun des couples de formules suivantes, les deux formules sont-elles logiquement quivalentes?
(1) AB C (A C) (B C)
(2) AB C (A C) (B C)
(3) A (A B) A
Rponse quivalence pour les cas 1 et 3 ; vous pouvez trouver un contre-exemple pour le cas 2)

FORME NORMALE : EXERCICES CALCULATOIRES

Exercice 29 Formes normales conjonctives et disjonctives (objectif 2.2.5 ; )

1 Mettre sous forme normale conjonctive, puis disjonctive la formule suivante : Fa (P Q) (P Q)


2 Montrez, en les mettant au choix sous forme conjonctive ou disjonctive, que la formule suivante est valide :
((P Q) (P R)) ((P Q) (P R))

Exercice 30 Tautologies (objectif 2.2.5) d'aprs A. Aho & J. Ullman, Concepts fondamentaux de l'informatique, Dunod

En cherchant mettre les formules suivants sous forme normale, prciser si ces expressions sont des tautologies, des
contradictions ou simplement des formules satisfaisables.
1PQRPQ
2 ( ( P Q) ( Q R ) ) ( P R )
3(PQ)P
4 ( P ( Q R ) ) ( Q P R ) Rponse Tautologies : 1, 2.

Exercice 31 Validit : choix de mthodes (objectifs 2.2.2 et 2.2.5)

Rpondez, en utilisant la mthode de votre choix (tables de vrit ou formules dquivalence), aux question suivantes :
1 Que peut-on dire de la formule (A C) ( A C B )
Rponse : tautologique satisfaisable contradictoire

10 J-Y Antoine et J. Villaneau


Logique pour linformatique

2 Les formules suivantes sont-elles logiquement quivalentes :


A ( B C D) et A B D C A
Rponse : quivalentes non quivalentes

FORME NORMALE : PROBLMES

Exercice 32 Systme complet de connecteurs (15 ; objectif 2.3.1)


est le connecteur logique reprsentant le NON_OU (NOR en anglais) : A B (A B). En partant du systme complet
de connecteurs tudi en cours de votre choix, trouvez et donnez les quivalences qui prouvent que { } constitue
galement un systme complet.

Exercice 33 Systme complet de connecteurs (15' ; objectif 2.3.1 )


Le connecteur boolen ou exclusif est dfini par A B (A B) (A B). En utilisant la mthode de votre choix,
montrez que :
(1) cet oprateur est associatif et commutatif.
(2) A F et A A F
(3) Toute fonction boolenne f peut-tre reprsente dans le systme de connecteurs {1, , }.

Exercice 34 Compltude et connecteurs logiques (objectif 2.3.1)

En logique, le terme "compltude" peut revtir diverses acceptations. Il peut ainsi caractriser la capacit d'un systme
formel dmontrer toutes les consquences logiques du langage sur lequel il est dfini (thorme d'incompltude de
Gdel, par exemple). Il peut galement servir caractriser la difficult algorithmique des problme de dcidabilit.
Ainsi, savoir si une expression logique est une tautologie constitue un problme NP-complet, c'est dire faisant partie
des problmes que l'on ne sait rsoudre qu'avec un temps exponentiel la dimension du problme. Dans cet exercice,
nous nous intresserons la troisime acceptation de ce terme, qui concerne les ensembles de connecteurs logiques.
Un ensemble de connecteurs est en effet dit complet si et seulement si toute expression logique peut s'exprimer
uniquement l'aide de ces oprateurs. Ainsi, nous avons vu en cours que l'ensemble { , , , , } constituait un
systme complet de connecteurs pour la logique des propositions. Pour montrer qu'un ensemble de connecteurs logiques
est complet, il faut et il suffit de montrer qu'on peut exprimer les connecteurs d'un autre systme complet dans ce nouvel
ensemble. Partant de { , , , , }, on montre ainsi que { , , }constitue un systme complet en vertu des rgles
d'quivalences suivantes :
PQ P Q
PQ ( P Q) (P Q)
1 On considre ici l'oprateur NAND (NON-ET) not dfini comme la ngation de la conjonction :
PQ (P Q)
Montrez que l'ensemble { } rduit ce seul oprateur constitue un systme complet. Cet oprateur est de
premire importance en informatique et en lectronique, puisqu'il permet lui seul de reprsenter l'ensemble des
fonctions logiques ncessaire la mise en uvre des circuits des ordinateurs.
Indication Montrer quun systme de connecteur est un systme complet revient montrer que tout connecteur
quelconque peut se rcrire sous la forme dune combinaison de connecteurs du systme ... et non linverse !
2 On considre maintenant l'oprateur NOR (NON-OU) not et dfini comme la ngation de la disjonction.
Montrez que l'ensemble { } constitue lui aussi un systme complet de connecteurs.

11 J-Y Antoine et J. Villaneau


Logique pour linformatique

Dduction en LP

QUESTIONS DE COURS

Exercice 35 Tables de vrit (objectif 2.2.7)

Montrez, par la mthode des tables de vrit, que :


1 P Q implique logiquement PQ
2 P Q n'implique pas logiquement PQ

Exercice 36 Tables de vrit et rsolution (objectif 2.2.7)

Vrifiez, en utilisant les tables de vrit puis la mthode de rsolution, la validit des raisonnements suivants :
a) PQ ?
| == QP
b) (AC)B ?
| == AB
c) A B, C A ?
| == BC

Exercice 37 Un peu de recul sur le cours (objectif 2.1.9)

1) Que peut-on dire de lnonc ci-dessous ? (objectifs 2.2.7, 2.1.4 , 2.1.9 et indirectement 4.1.2)
En logique des propositions, on peut toujours dmontrer si une fbf est contradictoire ou pas

vrai faux cela dpend de la fbf


2) On considre une formule mise sous forme clausale sur laquelle on applique la mthode de rsolution. Que peut-on
dire sur la formule si on arrive :

a) en tirer une rsolvante tautologique (V)


b) la clause vide .
la formule est contradictoire la formule est valide
la formule est satisafaisable on ne peut rien dire

Exercice 38 Fausses ides sur la rsolution (objectif 2.1.9)

1 Lorsqu'on applique la mthode de rsolution, que peut-on dire si on arrive tirer d'un ensemble de clauses la clause
toujours vraie ?

2 On cherche montrer qu'un raisonnement est valide l'aide de la mthode de rsolution. Aprs avoir mis la
formule de rfutation sous forme normale, on applique la rsolution sur toutes les clauses obtenues et on arrive
obtenir la clause vide. Nanmoins, on remarque qu'une des clauses initiales n'a pas t utilise pour arriver ce
rsultat. Que peut-on en conclure : la raisonnement est-il valide ou non ?

Exercice 39 Rsolution (objectif 2.1.9)


On veut dmontrer la validit du raisonnement :A B , C B A, C B A ?|= B C

1. Donnez les clauses correspondant la mise sous forme clausale de la formule de rfutation
2. Le raisonnement est-il valide? Si non, donnez toutes les rsolvantes obtenues.

12 J-Y Antoine et J. Villaneau


Logique pour linformatique

DEDUCTION : EXERCICES CALCULATOIRES

Exercice 40 Quelques dductions plus complexes (objectifs 2.2.7 et 2.2.8)

Vrifiez, en utilisant la mthode de votre choix, la validit des raisonnements suivants :


1) A B, A C, (B C) ?
| == D
2) P Q R ?
| == (P Q) ( P R)

Exercice 41 Raisonnements avec un grand nombre de propositions atomiques (objectif 2.2.8)

1) En employant la mthode de rsolution, vrifiez la validit des raisonnements suivants :


a) A B C, B A C ?
|== CB
b) A B, C A ?
|== A ( C B )
c) P R T, T S Q ?
|== (PQ)
d) ( S R ) P, Q ?
|== RSP
2) Le rsultat concernant le raisonnement d) tait-il prvisible ?
Rponse raisonnements valides : b, c.

Exercice 42 Une dduction avec ou exclusif (10 ; objectif 2.2.8)

En utilisant la mthode de rsolution, discuter de la validit du raisonnement suivant.


AB,CBA |= B C
?

DEDUCTION : PROBLEMES AVEC TRADUCTION

Exercice 43 Suicide alimentaire (objectifs 2.2.1 et 2.2.8)

Voici Janvier qui arrive, et bonjour les examens de fin de semestre ! Comme
l'accoutume, Pierre a pass ses vacances de Nol surfer sur les pistes
enneiges. Il avait bien emmen quelques polys histoire de se donner bonne
conscience, mais l'appel de l'or blanc a une fois de plus t le plus fort. Et une
fois de plus, il va falloir trouver une solution pour s'en sortir, du genre "le tout
pour le tout". Pierre fait alors le raisonnement suivant :
(a) Un lve malade ne peut passer son examen.
(b) Si je mange au R.U. ce midi, je risque une intoxication alimentaire et
serai trs certainement malade.
(c) Je vais aller manger au R.U. ce midi.
(d) Donc, je ne passerai pas cet examen, c'est une certitude absolue !

Impressionn par son courage, mais tout de mme inquiet l'ide de se restaurer dans ce temple de la haute gastronomie
franaise, Pierre s'interroge sur la validit de son raisonnement : ce serait tout de mme stupide de risquer sa vie pour
rien... Malheureusement, il a prcisment fait une impasse totale sur son cours de logique. Sauriez-vous conseiller notre
infortun skieur en utilisant la mthode des tables de vrit et la mthode de rsolution ?
Rponse le raisonnement est valide.

13 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 44 Comment prparer ses examens (20' ; objectifs 2.2.1 et 2.2.8)

Jean-Antoine se prpare rviser ses examens de septembre. Seul dans sa chambre, il


rflchit sur la stratgie adopter et se tient le raisonnement suivant :
(H1) Sil fait beau demain, pour travailler il faut que je me lve tt.
(H2) Il va faire beau demain.
(H3) Cest dcid ; je vais travailler ou bien me lever tt.
(C) Donc, cest sr, si je me lve tt, je vais travailler.
1 Traduisez les trois hypothses et la conclusion sous forme de formules logiques.
2 Le raisonnement de Jean-Antoine est-il valide? Justifiez la rponse par trois
mthodes diffrentes.
Rponse le raisonnement est non valide.

Exercice 45 Jack Palmer sur l'le de Beaut (objectifs 2.2.1 et 2.2.8)

Cette semaine, notre ami Jack Palmer est sur une affaire de vol de saucisson de cochon sauvage prs de Rossignoli,
typique village Corse. Aprs avoir auditionn l'ensemble des tmoins, le dtective fait le raisonnement suivant :
Si Figoli n'a pas rencontr Paoli dans le maquis la nuit du vol, c'est que Paoli est le voleur ou que Figoli est un
menteur. Si Paoli n'est pas le voleur, alors Figoli ne l'a pas rencontr cette nuit l et le forfait a t commis aprs
minuit. Si le crime a eu lieu aprs minuit, alors Paoli est le voleur ou Figoli a menti. Donc c'est sr: Paoli est le voleur.

Convaincu de la culpabilit de Paoli, il s'apprte accuser ce dernier. Jack Palmer aurait-il enfin russi rsoudre une
affaire ? Utilisez la mthode de rsolution pour vous faire une opinion sur la validit de son raisonnement. Donner un
contre-exemple en cas de raisonnement non valide. [Rponse le raisonnement est non valide].

Exercice 46 Adieu veaux, vaches, cochons, couves (objectifs 2.2.1 et 2.2.8)

La PAC (Politique Agricole Commune de


l'Union Europenne) est souvent au centre
des discussions concernant la construction
europenne. Sujet souvent embarrassant
pour des gouvernements soucieux la fois
de mnager un lectorat de premire
importance et de rduire le cot budgtaire
induit par le soutien artificiel des prix
agricoles. Frachement nomm et dj en
proie de terribles migraines la veille du
Salon de l'agriculture, Marcel Pichedru,
jeune Ministre en charge du sujet, fait le
raisonnement suivant :

14 J-Y Antoine et J. Villaneau


Logique pour linformatique

1) Nous perdrons les voix des agriculteurs si nous ne poursuivons pas notre politique de soutiens des prix.
2) A moins d'entreprendre des rformes structurelles, il y aura suproduction si nous conservons cette politique,
3) Nous avons besoin des voix des agriculteurs pour tre relus.
4) A l'avenir, il faut viter tout prix toute surproduction.

C) Donc si nous sommes rlus, il nous faudra mettre en place des rformes structurelles.
Ce raisonnement est-il valide ? Utilisez le principe de rsolution pour rpondre cette question.
Rponse le raisonnement est valide.

Exercice 47 L'hte encombrant (objectifs 2.2.1 et 2.2.8)

Le chef du protocole de la Rpublique Franaise doit organiser


prochainement un bal dans les superbes salons de llyse en
l'honneur de la chancelire allemande. Frachement nomm suite
l'lection rcente du nouveau prsident de la Rpublique, il est trs
ennuy, car il ne connat pas les gots musicaux de cette dernire, et
encore moins ses qualits de danseuses. Il craint de ternir les relations
entre les deux pays (dj passablement brches par le dbat sur la
limitation des dpenses publiques) en proposant un programme qui lui
dplaise. Un rien factieux, son homologue allemand lui fournit des
indications sous la forme de la devinette suivante :
1) Si elle dteste le jazz, alors elle aime le tango ou la valse.
2) Elle a les mmes prfrences pour le tango et la rumba.
3) Si elle dteste la valse alors elle aime le tango.
4) Elle dteste le jazz ou la valse, ou les deux d'ailleurs.
5) Si elle aime la valse et pas le jazz, alors elle aime la rumba.
Aprs longue rflexion, il dcide d'inviter Stacey Kent donner un rcital jazzy, car, selon lui
C) Elle dteste la rumba, la valse et le tango.
Donnez une reprsentation logique de ce raisonnement et cherchez si sa conclusion est une consquence valide des
affirmations qui lui ont t nonces.

PARADOXES LOGIQUES

Exercice 48 Le paradoxe de la carte de Jourdain (objectifs 2.2.1 et 2.2.8)

Les ouvrages de logique amusante fourmillent de paradoxe propres donner la migraine au lecteur ordinaire, alors
qu'une bonne connaissance de la logique permet de surmonter ce type de contradictions sans problme. nous allons
tudier ici un paradoxe propos pour la premire fois par le mathmaticien anglais P.E.B Jourdain en 1913.
Dans un premier temps, intressons nous un paradoxe quivalent celui de Jourdain, et que l'on doit au mathmaticien
contemporain R. Smullyan (tir de : Quel est le titre de ce livre, Dunod). On se trouve sur une le peuple de deux types
d'individus : les purs, qui ne mentent jamais, et les pires, qui mentent toujours. Vous rencontrez soudain deux
autochtones, Annie Ouininon (que l'on notera A) et Robin Chsepa (not B). Ceux-ci vous dclarent respectivement :
(A) Robin est un pire
(B) Annie est une pure
1 Cette rencontre a-t-elle vraiment pu avoir lieu, ou est-elle paradoxale ? Pour rpondre cette interrogation,
cherchez si ces deux noncs peuvent tre satisfaisables simultanment en appliquant successivement les mthodes des
tables de vrit et de rsolution.
Revenons maintenant au paradoxe de la carte de Jourdain. Sur un ct d'une carte est crit :
(TA) La phrase crite de l'autre ct de cette carte est vraie.
Quand on la retourne, on dcouvre une autre affirmation :
(TB) La phrase crite de l'autre ct de cette carte est fausse.
2 Montrez que ce paradoxe est quivalent au prcdent en en donnant une reprsentation logique.

15 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 49 Panique aux JO (objectifs 2.2.1 et 2.2.8) Adapt de E. Busser & G. Cohen, La Recherche, 302(1997)

En patinage artistique, les dcisions des jurys classant les candidats relvent
d'une subjectivit qu'il est souvent de bon ton de dnigrer, a fortiori lorsque les
sportifs d'un pays n'obtiennent pas les rsultats escompts par leurs
compatriotes... Lasss de ces critiques perptuelles, un trio de juges factieux a le
don d'exasprer les commentateurs et les sportifs par des affirmations qui sont
tantt vraies, tantt fausses. Laetitia, Patricia et Surya voudraient bien savoir si
elles sont qualifies dans le dernier groupe de la finale des Jeux Olympique
d'Hiver. Ayant plus rvis leurs triples axels que leur logique des propositions,
elles font appel vos comptences pour dmler cet cheveaux. Sauriez vous les
aider en utilisant la mthode de votre choix ?

1 Laetitia recueille les affirmations suivantes auprs du jury :


Nikola :L'un de nous au moins va vous mentir.
Omar : Vous tes qualifie, toute mes flicitations !
Peter : Nikola a dit la vrit.
Aprs mure rflexion, Laetitia saute de joie en s'criant "Je suis qualifie !". Une cruelle dsillusion l'attend-elle ?
Rponse oui, le raisonnement de Laetitia nest pas valide.
2 C'est au tour de Patricia de se prsenter maintenant face aux juges.
Nikola :Dsol, vous n'tes pas qualifie.
Omar : Ne l'coutez pas, Nikola ne dit jamais la vrit.
Peter : Je ne sais pas si vous devez croire Omar ! En effet, deux d'entre nous, au moins, vous mentent !
Croyant Nikola sur parole, Patricia repart la tte basse en marmonnant "Ma triple boucle pique m'a perdue". Un
petit calcul logique saura-t-elle la rconforter ?
Rponse oui, le raisonnement de Patricia est valide.
3 Enfin, Surya affronte ce trio diabolique.
Nikola :Je n'ai qu'une chose dire : Peter vous dira la vrit..
Omar : Si vous tes qualifie, c'est que Nikola vous a menti !
Peter : Omar dit la vrit. En tous cas, je vous flicit, vous tes qualifie.
Se perdant en conjoncture, Surya reste prostre face au jury. Sauriez-vous trouver la conclusion que l'on peut tirer
de ces trois affirmations ?

PROBLMES

Exercice 50 Lewis Caroll et les paradoxes de l'implication (objectifs 2.1.3, 2.2.1, 2.2.7 et 2.2.8)

Si la dfinition des oprateurs logiques tels que la conjonction, la disjonction ou l'quivalence ne pose aucun problme
"l'honnte homme", il n'en va pas de mme pour l'implication. L'auteur d'Alice au Pays des Merveilles, qui se piquait de
logique, s'est pench sur ce problme dans un trait de logique qu'il avait rdig (Symbolic Logic, 1896). De mme, dans
ses Principes des Mathmatiques (1980, ed. Blanchard), Louis Couturat note ce qu'il appelle "les paradoxes de
l'implication matrielle" :
Toutes les propositions vraies sont quivalentes. Toutes les propositions fausses sont quivalentes. Chaque
proposition fausse implique toutes les propositions (vraies ou fausses); chaque proposition vraie est implique
par toutes les propositions (fausses ou vraies). Ces paradoxes invitables (car ce sont des consquences
ncessaires au calcul, et cela dans n'importe quel systme de Logique) s'expliquent par le fait que l'implication
ici considre est l'implication matrielle, et non pas l'implication formelle [...] laquelle tout le monde pense
quand on parle d'implication [dans la vie courante]. L'implication matrielle (P Q) ne signifie rien de plus
que ceci : "Ou P est fausse, ou Q est vraie". Peu importe que les propositions P et Q aient entre elles un rapport
logique ou empirique quelconque: l'implication est vrifie ds que P est fausse (quelle que soit Q) ou ds que Q
est vraie (quelle que soit P). Voil pourquoi on arrive ce rsultat paradoxal, que le faux implique le vrai.

16 J-Y Antoine et J. Villaneau


Logique pour linformatique

Ces vrits paradoxales servent d'ailleurs rsoudre correctement certains paralogismes ou certains paradoxes
o le bon sens vulgaire risquerait de s'embarasser. Tel est par exemple le problme de Lewis Caroll :
[supposons que] "Q implique R ; mais [aussi que] P implique que Q implique non-R; Que faut-il en dduire ?
[...] Lewis Caroll [adoptant le point de vue du sens commun] raisonne ainsi : si Q implique R, il est impossible
que Q implique non-R; donc P implique l'impossible, et par suite est faux.
1 En utilisant la mthode de votre choix (rsolution ou tables de vrits), montrez que la conclusion, et donc le
raisonnement, de Lewis Caroll sont errons.
2 Quel est le "maillon" de la dmonstration de Caroll qui pose problme. Pourquoi ?
3 Finalement, quelle conclusion peut-on tirer des deux hypothses initiales ? Montrer que cette conclusion est bien
une consquence logique de ces prmisses.

17 J-Y Antoine et J. Villaneau


Logique pour linformatique

Logique des prdicats du premier ordre (LP1)

QUESTIONS DE COURS

Exercice 51 Un peu de syntaxe (objectif 3.1.3)

Dans la logique des prdicats du premier ordre, on considre la formule bien forme suivante :
x (y ( (z R(f (x), g(y,z))) (S(x,y) T(z))))
Reconnatre, dans cette formule les symboles fonctionnels et les symboles de prdicat. Prciser leur arit.

Exercice 52 Un peu de syntaxe, suite et fin (objectifs 3.1.2 et 3.1.4)

On se place dans la logique des prdicats du premier ordre et on considre :


R prdicat d'arit 1 S et T prdicats d'arit 2
f et g fonctions d'arit 1 h fonction d'arit 2
On rappelle que "=" est un raccourci d'criture pour le prdicat d'arit 2 Egal. On considre les formules suivantes :
a) x ( ( y ( z ( R(x) ) ) ) ( y ( ( z ( S ( h (x,z), x))))))
b) ( x ( T ( f(x), y ))) ( ( x ( f(x,y) ) ) )
c) ( z ( T ( x, y ))) ( y (( x ( ( f(x) = y ))) T(y,z) ))
1 Quelles sont, parmi ces formules, celles qui sont bien formes ?
2 Simplifiez-les formules bien formes en enlevant les parenthses inutiles au regard des rgles de priorits.
3 Dterminez les occurrences lies et les occurrences libres dans les formules bien formes.
4 Standardiser lcriture de ces formules si ncessaire (mise sous forme propre).

Exercice 53 Un traduction primaire (objectif 3.1.1 et 3.2.1)

Traduire en logique des prdicats du 1er ordre lensemble des assertions de ce raisonnement.
Tout homme est un singe suprieur
Tout singe suprieur est un primate
Les dauphins ne sont pas des primates
Il y a des dauphins qui sont intelligents
Donc on peut ne pas tre un homme et tre intelligent

Exercice 54 Savez-vous choisir vos connecteurs ? (objectifs 3.1.2 et 3.2.1)

Indiquez quels est (sont) la (ou les) traduction(s) correcte(s) des noncs suivants.
1. Tous les enfants ne sont pas des anges
x ( enfant(x) anges(x) )
x ( enfant(x) anges(x) )
x ( enfant(x) anges(x) )
x ( anges(x) enfant(x) )
x ( enfant(x) anges(x) )
x ( anges(x) enfant(x) )
enfant anges
( enfant anges)

18 J-Y Antoine et J. Villaneau


Logique pour linformatique

2. Ce n'est pas parce qu'on n'est pas une femme qu'on ne doit pas participer au mnage dans le couple.

x ( menage(x) femme(x) )
x ( menage(x) femme(x) )
x ( femme(x) menage(x) )
x ( femme(x) menage(x) )
x ( menage(x) femme(x) )
x ( femme(x) menage(x) )
x ( femme(x) menage(x) )
3. Les carrs sont des parallpipdes rectangles
x ( carr(x) parallpidde(x) rectangle(x) )
x ( carr(x) parallpidde(x) rectangle(x) )
x ( carr(x) parallpidde(x) rectangle(x) )
x ( carr(x) parallpidde(x) rectangle(x) )
x ( ( parallpidde(x) rectangle(x) ) carr(x) )
x ( ( parallpidde(x) rectangle(x) ) carr(x) )
x ( carr(x) parallpidde(x) rectangle(x) )
4. Chaque entreprise a un PDG

x y ( entreprise(x) personne(y) PDG(x,y) )


xy ( entreprise(x) personne(y) PDG(x,y) )
x y ( entreprise(x) personne(y) PDG(x,y) )
x y ( entreprise(x) personne(y) PDG(x,y) )
x ( entreprise(x) y (personne(y) PDG(x,y) ))
x ( entreprise(x) y (personne(y) PDG(x,y) ) )
x( entreprise(x) y (personne(y) PDG(x,y) ) )
x ( entreprise(x) y (personne(y) PDG(x,y) ) )

TRADUCTIONS EN LP1 : EXERCICES

Exercice 55 Mourir de faim ou de la vache folle ? (10 ; objectif 3.2.1)

Vache folle, tremblante du mouton, fivre aphteuse, le consommateur franais perd


danne en anne sa lgendaire attirance pour les plaisirs de la table. Totalement
dsorient par les annonces alarmistes de mdias plus avides de sensationnel que de
rflexion, certains parents sempressent ainsi de retirer leurs chrubins dune cantine
scolaire proposant de la nourriture a priori douteuse, afin de pouvoir les gaver de
gallettes de tofu bio directement importes des hauts plateaux du Npal. Une seule
rponse ces comportements passionnels : un recours la raison, donc la logique.
Mais pour cela, assurons nous au pralable que nous disposons du bagage ncessaire
en logique des prdicats du 1er ordre pour mener bien ce programme salutaire.
Commenons donc par quelques travaux pratiques.
On demande de donner la traduction dans la logique des prdicats du 1er ordre des
noncs ci-dessous. On utilisera pour cela les prdicats suivants : Creutzfeld/1,
Manger/2, Boeuf/1, Farines/1, Francais/1.
1) Aucun boeuf nest nourrit quavec des farines animales.
2) Si un boeuf a consomm des farines animales cest quil nest pas franais.
3) Personne ne peut contracter la maladie de Creutzfeld-Jacob sans avoir
consomm de boeuf.

19 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 56 Jeu de construction logique (objectif 3.2.1)


Monsieur Patate, Madame Patate et Junior Patate sont bien embts : aprs une activit que la morale
rprouve certainement, ils ont mlang tous les lments de leur anatomie, et ont quelque mal bien
remettre tout en place. La logique va tenter de les aider. Pour cela, il vous est demand de reprsenter les
noncs ci-dessous en utilisant les prdicats suivants de la logique des prdicats du 1er ordre :

- Lunette(X) est vrai si X est une paire de lunette.


- Oreille(X) est vrai si X est une paire doreilles.
- Chapeau(X) est vrai si X est un chapeau.
- Moustache(X) est vrai si X est un chapeau
- Sur(X,Y) est vrai si X est sur Y (ou peut aller sur Y)
- Patate(X) est vrai si X est un membre de la famille patate
- Homme(X) est vrai si X est un homme (enfin, une patate du genre masculin !)

Donnez les traductions des noncs dans les cadres prvus cet effet. Ah, au fait, Mr Patate sappelle
Robert :

1. Tous les membres de la famille Patate ont un chapeau sur eux.


2. Toutes les paires doreille peuvent aller sur tous les membres de la famille Patate
3. Il nexiste pas de paire de lunettes qui peut aller sur tous les membres de la famille Patate
4. Si un lment est sur Robert, il ne sera pas sur une femme de la famille
5. Seuls les hommes de la famille Patate ont une moustache

Exercice 57 La tl rend fou (objectif 3.2.1)

A chaque rvlation d'un crime


perptr par un adolescent, la
tlvision est accuse d'amplifier les
tendances psychopathes des jeunes du
par la diffusion de sries policires
trop sanglantes. Ce qui est clair, c'est
que les tlspectateurs y trouvent ce
qu'ils cherchent comme va nous le
montrer un petit raisonnement.

Donnez la traduction, en logique des prdicats du 1 er ordre, du raisonnement ci-dessous. On utilisera pour cela les
prdicats personne/1, tele/1, regarde/2, psycho/1, criminel/1, nevrose/1, montre/2.
Tout tlspectateur qui regarde la tlvision devient psychotique la longue
Certains psychotiques ne regardent jamais tlvision
Si un criminel nest pas psychotique, alors il est nvros
TF1 ne montre longueur d'antenne de des criminels
Donc les gens que lon voit la tl sont des tlspectateurs

20 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 58 Le panda est un loup pour le bambou (15' environ ; objectif 3.2.1)

Symbole de la Chine ternelle, le panda est un animal dont le rgime alimentaire est un des plus spcialiss, ce qui nest
pas fait pour freiner sa dramatique extinction. Il se nourrit en effet quasiment exclusivement de feuilles du bambou.
Autant dire que pour le bambou, le panda napparat pas comme un bon gros nounours tout mignon, mais un terrible
criminel contre lhumanit, sanguinaire et sans piti. Mais qui se soucie des angoisses du pauvre bambou...
Traduire en LP1 les noncs ci-aprs en utilisant les 5 prdicats suivants :
Mange(x,y) est vrai ssi x mange y.
Herbivore(x) est vrai ssi x est un animal herbivore.
Vegetal(x) est vrai ssi x est un vgtal.
Bambou(x) est vrai ssi x est un bambou.
Panda(x) est vrai ssi x est un panda.

1. Les herbivores ne mangent que des vgtaux.


2. Aucun herbivore ne mange tout type de vgtal.
3. Il y a des vgtaux que ne mange aucun herbivore.
4. Les pandas sont des herbivores qui ne consomment
que des bambous

Exercice 59 Casse-tte au Dpartement Informatique : emplois du temps (10; objectif 3.2.1; )

Chaque anne la rentre, la consommation daspirine augmente dangereusement dans les rangs des directeurs de
filires du dpartement informatique. Tous sont en effet tarauds par la mme question : comment arriver caser un
emploi du temps sachant que le nombre de salles disponibles est infrieur au nombre de groupes dtudiants Les
difficults vont danne en anne croissants. En effet, bien des enseignants ne se contentent plus dune salle avec craie et
tableau noir : bien souvent, il faut galement tenir compte des besoins en tableau blanc interactif (TBI) ou en
vidoprojecteurs. Puisque chaque anne vos serviteurs sarrachent les cheveux vous concocter un emploi du temps aux
petits oignons, vous maintenant dattraper la migraine sur les traductions suivantes
Traduire les noncs suivants dans la logique des prdicats du 1 er ordre. On utilisera pour cela les prdicats tbi/1 ,
vidoproj/1, panne/1, amphi/1, salle_td/1, est_dans/2.
a) On trouve toujours un TBI dans une salle de TD.
b) Il ny a pas de vidoprojecteur en salle B301 .
c) Tous les vidoprojecteurs sont dans des amphis.
d) Sil y a un vidoprojecteur quelque part, cest quil sagit dun amphi.
e) Il ny a que des TBI dans les salles de TD.

Exercice 60 Un peu de rangement (objectif 3.2.1)

Deux heures du matin. Sous perfusion de cafine depuis le dbut de l'aprs-midi,


Bertrand Jmoitou vient enfin de finir la rvision de son cours de logique. Aprs
10 heures de combats homriques contre la multitude de polycopis que le prof
distribue chaque semaine, sa chambre est un vrai capharnam. Dire qu'il va falloir
tout ranger avant d'aller se coucher ! Procdant avec mthode, Bertrand Jmoitou
nonce :
(1) Tous les tiroirs contiennent des feuilles.
(2) Aucun des classeurs ne contient de polycopis.
(3) Dans l'un des classeurs, il n'y a que des polycopis.
(4) Si les polys ne sont pas dans les classeurs, elles sont dans des tiroirs.
(5) S'il y a des feuilles dans un tiroir, on est certain de ne pas y trouver de polys.
Traduire les noncs suivants en langage des prdicats du premier ordre. On utilisera 4 prdicats unaires destins
l'identification des objets dcrits dans ces noncs (par exemple, Feuille(x) a pour signification : x est une feuille),
et le prdicat Dans(x,y) vrai si et seulement si x est dans y.

21 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 61 Harry Potter et la formule logique (objectif 3.2.1)

En utilisant les prdicats Sorcier/1, Parent/2,


Malefique/1, Ensorcele/1, Ancetre/2, Grifondor/1
donnez la traduction en LP1 des noncs suivants :

1 Les parents des sorciers ne sont pas tous des sorciers


2 Tout sorcier a au moins un Moldu parmi ses anctres
3 Les sorciers ne sont pas tous malfiques
4 Un ancien de Grifondor est soit non malfique, soit
ensorcel.
5 Il ny a aucun ancien tudiant de Grifondor qui soit
devenu malfique
6 Il faut ncessairement tre sorcier pour pouvoir des
pouvoirs malfiques.

Exercice 62 La russite au bout du chagrin (objectif 3.2.1)

Si lcole mapprend pas a alors je dis halte tout , chantait


Renaud, qui avait apparemment du mal envoyer sa fille chaque
matin au chagrin . Il est vrai que le systme ducatif apparat
souvent ( tort ou raison ?) ses usagers comme une course
dobstacle dont la finalit est avant tout dobtenir des diplmes. En
tmoigne malheureusement linspiration de lauteur de cet
exercice...
Utiliser le prdicat binaire R(x,y) dont linterprtation est x russit
y ainsi que des variables et des constantes laisses votre choix
pour traduire en LP1 les noncs suivants :
1. Jean ne russira pas son licence sans que Yves le russisse.
2. Nul ne peut obtenir sa licence sil a chou son bac.
3. Il y a qui russissent leur bac tout en chouant leur permis de conduire.
4. Si on a un master ou un doctorat, cest quon a dj obtenu son licence.

APPLICATION AUX MATHEMATIQUES

Exercice 63 Encore des mathmatiques... (objectif 3.3.1)


Pour traduire leurs propositions dans leurs dmonstrations, les
mathmaticiens utilisent un langage formel qui ressemble de la
logique des LP1 mais n'en est pas vraiment. Afin de ne pas faire de
confusion entre syntaxe de la LP1 et syntaxe mathmatique, nous
allons traduire en logique des prdicats un certain nombre de
propositions mathmatiques.
1. Traduire dans la logique des prdicats les affirmations suivantes en
les symboles mathmatiques =, + et *, le prdicat unaire E(n) pour
exprimer que la variable n est un entier ainsi que le prdicat binaire .
1 Tout entier est le carr d'un entier.
2 Tout entier a pour carr la somme des carrs de deux entiers.
3 Certains entiers ont pour carr la somme des carrs de deux
autres entiers.
4 Aucun entier n'est plus grand que tous les autres.

22 J-Y Antoine et J. Villaneau


Logique pour linformatique

2. Traduisez ensuite la ngation des ces formules, puis simplifiez les fbf obtenues pour enfin en donner une traduction la
plus simple possible en franais.

TRADUCTIONS EN LP1 : POUR ALLER PLUS LOIN

Exercice 64 Instruction civique... (objectif 3.2.1)

Donnez une reprsentation des noncs suivant en logique des prdicats du premier ordre :
a Nul nest sens ignorer la loi
b Les hommes naissent et demeurent libres et gaux en droits
(Dclaration des Droits de lHomme et du Citoyen du 26 Aot 1789, article premier).

c Tout homme tant prsum innocent jusqu' ce qu'il ait t dclar coupable
(Dclaration des Droits de lHomme et du Citoyen du 26 Aot 1789, article IX).

d Nul ne doit tre inquit pour ses opinions, [mme religieuses] pourvu que leur manifestation ne trouble pas
l'ordre public tabli par la loi
(Dclaration des Droits de lHomme et du Citoyen du 26 Aot 1789, article X).

23 J-Y Antoine et J. Villaneau


Logique pour linformatique

Calcul des prdicats du premier ordre

QUESTIONS DE COURS

Exercice 65 Tout tait si simple en LP (objectif 3.1.7 et 2.1.4)

Expliquez pourquoi la mthode des tables de vrit n'est pas applicable en logique des prdicats du 1er ordre

Exercice 66 Transitivit et antisymtrie de la relation infrieure ou gale sur N (objectif 3.2.2)

On considre les deux fbf closes suivantes :


1 = xy (z ( P(x,z) P(z,y)) P(x,y) )
2 = xy ( P(x,y) P(y,x) (x = y) )
Dterminez la valeur de validit de ces formules pour l'interprtation
I = {D = n ; Ip : P(x) vrai ssi x y ; = : galit }

Exercice 67 Interprtation en LP1 (objectif 3.2.2)

On considre les deux formules suivantes de la logique des prdicats du premier ordre :
(F1) x y z ((P(x) S(x,y)) P(y) S(y,z) )
(F2) x z ((S(z,x) S(x,z)) y S(x,y))
On donne les deux interprtations A et B suivantes :
(Ia) le domaine est N ; S est la relation d'ordre usuelle et P(n) si et seulement si n est pair.
(Ib) le domaine est R ; S(x,y) si et seulement si y=x2 et P(x) si et seulement si x est un nombre rationnel.
De quelles formules F1 ou F2 les interprtations A et B sont-elles des modles ? (Rponse F2).

Exercice 68 Question de quantificateur (objectif 3.1.3 et 3.1.7)

Lorsque vous tes amens faire des traductions en LP1, le choix des bonnes combinaisons entre quantificateurs et
connecteurs logiques vous pose souvent problme. Considrons par exemple les deux noncs suivants :
(1) x ( P(x) Q(x) ) (2) x ( P(x) Q(x) )
Afin de saisir la distinction entre ces propositions, trouver un modle de (1) qui rend faux le second.

INTERPRETATIONS : EXERCICES

Exercice 69 Validit et domaine d'interprtation (objectif 3.2.2)

On se place dans la logique des prdicats du premier ordre. On considre les prdicats d'arit 2 Egal et Diff dont les
raccourcis d'criture sont respectivement = et , c'est dire que x = y est vrai ssi Iv(x) et Iv(y) sont gaux et x y est
vrai ssi Iv(x) et Iv(y) sont diffrents. Soient les formules suivantes :
a xyzt ( x y y z z x ( t = x t = y t = z))
b txyz ( x y y z z x ( t = x t = y t = z))
c x y tzt ( x y y z z x ( t = x t = y t = z))
d x y tzt ( x y y z z x ( t = x t = y t = z))
Dterminez la validit de ces formules (validit, satisfaisabilit, inconsistance) dans les cinq interprtations suivantes,
variant par leur domaine d'interprtation respectifs :
D1 = { 0 } D2 = { 0, 1} D3 = {0, 1, 2} D3 = {0, 1, 2, 3} D4 =

24 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 70 Encore des mathmatiques (objectif 3.2.2)

R et S sont deux prdicats darit 2 du langage des prdicats du 1er ordre. On considre les deux formules suivantes :
(F1) x y ( R(x,y) S(x,y) )
(F2) x y ( R(x,y) S(x,y) )
Le domaine dinterprtation est lensemble des entiers naturels suprieurs ou gaux 2. Linterprtation de R est la
relation dingalit , celle de S est la relation divise au sens de la division euclidienne dfinie sur les entiers.
1. Donner, dans cette interprtation, les valeurs de vrit respectives des formules F1 et F2.
Rponse I(F1) = F ; I(F2) = V.

2. En gardant les mmes interprtations pour R et S, modifier le domaine dinterprtation pour que les deux formules
soient vraies.

RECHERCHE DE MODELES : EXERCICES

Exercice 71 On est toujours le modle de quelquun (10 ; objectifs 3.1.2 et 3.2.2)

On considre les deux formules bien formes de la LP1 suivantes :


(1) x y ( P(x) Q(x,y)
(2) x y ( P(x) Q(x,y)
a) Donnez un modle de la formule (1) pour lequel la formule (2) est fausse.
b) Inversement, donnez un modle de la formule (2) pour lequel la formule (1) est fausse.

Exercice 72 Gare au quanti-fi-eur ! (10 ; objectifs 3.1.2 et 3.2.2)

On considre lensemble de formules de la logique des prdicats du 1er ordre suivant :

1) x [ P(x) y Q(x,y) ]
2) x [ P(x) y Q(x,y) ]

Donnez un modle de la formule (2) pour lequel la formule (1) est fausse.

Exercice 73 Modle en LP1 (objectif 3.2.2)

On se place dans la logique des prdicats du premier ordre. On considre, outre le symbole de la relation binaire galit,
deux symboles de fonctions unaires f et g pouvant recevoir diverses interprtations. On dfinit les formules suivantes :
F1 : x (f(x) = g(x))
F2 : x y (f(x) = g(y))
F3 : x y (f(x) = g(y))
Donner un modle pour chacune des formules : F1 F2, F2, F1 F3.

Exercice 74 Modle d'un systme logique (objectif 3.2.2)

Soit A les trois fbf suivantes :


(A1) xyz ((P(x,y)P(y,z) P(x,z))
(A2) x (P(A,x)P(x,B))
(A3) x P(x,f(x))
Donnez un modle de A.

25 J-Y Antoine et J. Villaneau


Logique pour linformatique

LP1 Mise sous forme clausale

Exercice 75 Forme prenexe (objectif 3.1.5)

Mettre sous forme prenexe les formules suivantes


a ( x P(x) x Q(x) ) ( R x S(x) )
b ( ( x P(x) x Q(x) ) ( R x S(x) ) )
c x P(x) x Q(x)

Exercice 76 Formules closes et forme clausale (objectif 3.2.3)

Mettre sous forme clausale les fbf suivantes :


a x y z [ R(x,y,z) t z S(t,z) ]
b y x R(x,y) z x R(z,x)
c x y ( GP(x,y) z ( P(x,z) P(y,z) ) )
d x [ P(x) y t ( Q(t,y) z R(A,t,y) ) ]
e x ( y [ R(y,x) u R(u,x) ( t ( R(t,x) R(t,y) ) ) ] )

26 J-Y Antoine et J. Villaneau


Logique pour linformatique

Unification

QUESTIONS DE COURS

Exercice 77 Unification : cas dcole (objectif 3.1.6)

Trouvez, quand il existe, un unificateur de chacun des ensembles de clauses ci-dessous. Donnez en outre la fbf
rsultante de l'unification opre sur ces clauses :
a G(x, f (A, y) ) G(x, B) G(x, f(A, g(z) ) )
b P(u, g( f(a, b) ), u ) P( f(x, g(z)), x, f(y, g(b) ) )
c G(x,y) G( f(x), A )

UNIFICATION : EXERCICES

Exercice 78 Quelques unifications trop tranquilles... (objectif 3.1.6)

Pour chaque cas, dire si les deux formules atomiques sont unifiables et en donner le cas chant un unificateur :
b A(x, g(x,y) ) A(g(y, z), g ( g( h(u), y) , h(u) ) )
b B(x, f(g(y)), f(x)) B(h(t,z),f(z),f(h(y,z)))
c P( x, f(x), g( f(x),x ) ) P(z, f(f(A)), g( f(g(A,z)), v ) )
d P(u, g( f(A,b)), u ) P( f(x, g(z)), x, f(y, g(B)) )
e P( x, f(x), f(f(x)) ) P( f(f(y)), y, f(y) )

Rponse formules unifiables : b et d.

27 J-Y Antoine et J. Villaneau


Logique pour linformatique

Rsolution LP1

QUESTIONS DE COURS

Exercice 79 Rsolution : cas dcole (objectif 3.1.6)

Prciser, en appliquant la mthode de rsolution, si les ensembles de clauses suivantes sont contradictoires ou non.
1) S(z) S(A) S(t) S(A) S(y)
2) Q(A) P(x,f(x)) P(z,t) Q(z)
3) A(A) N(B) A(x) N(x)
4) P(x) Q(f(x)) Q(y) P(f(y))

Exercice 80 Un petite rsolution complte en LP1 (objectif 3.2.4)

Montrez, l'aide du principe de rsolution, la validit du raisonnement suivant (transitivit de l'implication) :


x (P(x) Q(x)) , x ( Q(x) R(x) ) |= x ( P(x) R(x) )
Exercice 81 Unification et rsolution. (objectifs 3.1.6 & 3.2.4)
Lorsque cela est possible, donnez la rsolvante correspondant lapplication de lunification sur les clauses ci-dessous.
On prcisera chaque fois lunificateur utilis.
1 A(x,Jean) B(Jean,y) et A(z,Paul) B(Pierre,t)
2 A(y,Jean) B(Jean,y) et A(Paul,z) B(t,Pierre)
3 A(Paul,Jean) B(Jean,y) et A(Paul,Jean) B(Jean,t)
4 A(x,Jean) B(Jean,f(x)) et A(x,y) B(Jean,g(t))
5 A(x,Jean) B(Jean,y) et A(x,Jean) B(Jean,f(y))

RESOLUTION : EXERCICES

Exercice 82 Quelques rsolutions un peu plus complexes (objectif 3.2.4)

Prciser, en appliquant la mthode de rsolution, si les ensembles de clauses suivantes sont contradictoires ou non.
1) P(x) Q(s(x)) Q(x) P(s(x)) P(A) P(s(s(s(s(A)))))
2) P(A,y) P(y,A) Q(z) S(z) R(u) Q(u) S(x)
3) H(x) P(x) D(y) P(y) H(z) I(z) D(F) I(F)

Exercice 83 Toooh encore un exercice sur la rsolution (objectifs 3.2.1 et 3.2.4)

Dmontrez la validit des raisonnements suivants l'aide du principe de rsolution. Nous avons dj ralis la traduction
en LP1 du premier raisonnement.
a Tout homme est un singe suprieur
Tout singe suprieur est un primate
Les dauphins ne sont pas des primates
Il y a des dauphines qui sont intelligents
Donc on peut ne pas tre un homme et tre intelligent
b Lisa Simpson est intelligente
Bart Simpson a une intelligence trs trs limite
Homer Simpson est moins intelligent qu'un donuts.
Lisa Simpson et Bart Simpson sont les enfants de Homer Simpson.

Donc l'intelligence n'est pas hrditaire.

28 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 84 Rsolution et validit de formule (objectif 3.2.4)

1. Dmontrer la validit ou la contradiction de la formule suivante l'aide de la mthode de rsolution :

x y ( ( S(x) S(y) ) x S(x))

2. Si la formule n'est pas valide, donnez un exemple d'interprtation qui la rend fausse.

Exercice 85 Quelques raisonnements (objectif 3.2.4)

Montrer en utilisant le principe de rsolution que les raisonnements suivants sont valides.

a x y P(x,y)
zt ( P(z,t) Q(z) )
u Q(u)
b x ( P(x) P( f (f(x)) ) )
x ( P(x) R( f(x) ) )
x ( R(x) P( f(x) ) )
c x ( P(x) Q(s(x)) )
x ( Q(x) P(s(x)) )
P(A)
P(s(s(s(s(A)))))

Exercice 86 Un exemple d'indcidabilit en logique des prdicats (objectifs 3.2.4 et 4.1.1)

Nous avons vu en cours que la logique des prdicats du premier ordre tait indcidable. Nous allons prcisment tudier
dans cet exercice un exemple flagrant d'indcidabilit.
Appliquez le principe de rsolution sur le raisonnement suivant :

x ( P(x) Q(f(x)) ) , x ( Q(x) P(f(x)) ) , P(A) |= x P(x)

Peut-on conclure que le raisonnement est valide ? Si non, essayez de montrer que la conclusion nest pas une
consquence logique des hypothses en exhibant un contre-exemple.

Exercice 87 Art et logique (objectifs 3.2.1 et 3.2.4)

On considre les deux raisonnements suivants :


a Certains peintres ont peint leur propre portrait.
Il existe des peintres qui ont ralis des natures mortes

Il existe des autoportraits de peintres de natures mortes.


b Czanne a fait son autoportrait.
Czanne a peint de nombreuses natures mortes.

Il existe des autoportraits de peintres de natures mortes.


1 Ces raisonnements vous paraissent-ils valides ?
2 Donnez une reprsentation de ces raisonnements en logique des
prdicats du premier ordre. On utilisera pour cela les prdicats
Peintre/1, Peinture_de/2 et represente/2.
3 En utilisant la mthode de rsolution, justifiez vos rponses la
premire question.

29 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 88 De l'art de la contradiction (objectifs 3.2.2 et 3.2.4)

On considre l'ensemble des formules suivantes :


(1) x y z [ (F(x,y) F(y,z)) G(x,y) ]
(2) x y F(y,x)
(3) [ x y G(y,x) ]
1 En utilisant le principe de rsolution, montrez que cet ensemble de clauses est contradictoire.
2 La rsolution montre que les 3 formules sonte toutes ncessaires l'inconsistance de l'ensemble. Montrer que
l'ensemble des clauses rduites (1,2) est satisfaisable en en donnant un modle. Faire de mme avec (1,3).

Exercice 89 Logique et religion (objectifs 3.2.1 et 3.2.4)

Suite la dcouverte de lAmrique et de ses habitants, une des questions qui agita lglise catholique fut de savoir si les
amrindiens avaient une me. Cette question, qui fut tranche favorablement (controverse de Valladolid), ntait pas
sans arrire pense : elle justifiait ou non le recours lesclavage. La logique aurait-elle pu tre mise contribution dans
ce dbat religieux ? Considrons le raisonnement suivant :
Les amrindiens sont tous des tres humains
Les tres humains ont une me
Il y a des amrindiens qui ont une me
a Donnez une reprsentation logique de ce raisonnement.
b Donnez la liste des clauses correspondant la formule de rfutation associe au raisonnement.
c Ce raisonnement est-il valide ?
d Ce rsultat tait-il prvisible ? Justifiez votre rponse dans le cadre ci-dessous

Exercice 90 Les chargs de la route (objectifs 3.2.1 et 3.2.4)

La traduction sous forme logique des raisonnements humains est une


science pleine de risque. Tout d'abord, nous avons souvent eu l'occasion
de constater que la mise sous forme logique d'un nonc en langue
naturelle n'tait le plus souvent ni triviale, ni directe. Mais en outre, le
raisonnement humain recle de considrations implicites qui, si elles ne
sont pas explicites, rendent le raisonnement logique totalement
incohrent. L'exemple suivant, tir des phnomnes de dopage dans le
monde cycliste, va clairer ce dernier point.
Bien que ses coquipiers aient dans leur grande majorit avou tre aussi
chargs que dixit un enquteur de la police judiciaire "un bifteck
de veau aux hormones", l'ancien cycliste Lance Armstrong a longtemps
affirm navoir eu recours aucun produit prohib
Le cycliste se rvle peut-tre ici sur un terrain sur lequel on ne l'attendait pas, celui de la logique. S'il en connat bien
les principes, celui-ci peut en effet affirmer sans crainte que la conclusion du raisonnement suivant, premire vue
correct, n'est pas une consquence logique des hypothses:
(1) Si tu te dopes, tu peux soit gagner, soit tre pris.
(2) Si tu es un super coureur, tu peux gagner que tu sois dop ou non.
(3) Lance Armstrong, qui n'est pas un super coureur, gagne des preuves

(4) Lance Armstrong se dope


1 Traduire ce raisonnement en utilisant la logique des prdicats du 1er ordre.
2 En appliquant la mthode de rsolution, montrez que ce raisonnement n'est pas valide.
3 Quelle affirmation, non formule dans le raisonnement ci-dessus, nous permettrait de conclure ? Quelle hypothse
complte-t-il implicitement ? Traduisez sous forme logique cette hypothse implicite et montrez que le
raisonnement est effectivement valide.

30 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 91 Les aliens sont parmi nous (objectifs 3.2.1 et 3.2.4)

Une trange rumeur court au sein de la famille Patate et de ses semblables : des extra-lgumes se seraient glisss au sein
de la communaut. Afin de les dmasquer, Monsieur Patate chafaude quelques raisonnements subtils. Pourriez-vous
reprsenter ces derniers dans la logique des prdicats du 1er ordre, puis vrifier laide de la mthode de rsolution que
Monsieur Patate ne raisonne pas comme une courge, c'est--dire que ses raisonnements sont valides On utilisera pour
cela les prdicats suivants :
- AL(X) est vrai si X a un sabre laser.
- P (X) est vrai si X est une (vraie) patate (i.e. pas un extra-lgume)
- AM(X) est vrai si X a un masque.

Ainsi que la fonction v(X) qui dsigne le voisin de tout individu X. Mr Patate sappelle toujours Robert, et on supposera
que tout non patate est un extra-lgume (et inversement). Attention : les rponses sont remettre sur la copie jointe

Raisonnement 2 Les extra-lgumes ont un masque


Robert a un sable laser
Le voisin de Robert na pas un sabre laser
Il existe donc extra-lgumes

Raisonnement 2 Les extra-lgumes ont un masque


Robert na pas de masque
Donc Robert nest pas un extra-lgume

Raisonnement 3 Les extra-lgumes ont un masque


Les patates nont pas de masque
Toute personne qui a un masque nest pas une patate

31 J-Y Antoine et J. Villaneau


Logique pour linformatique

RESOLUTION : PROBLEMES

Exercice 92 Malvita (objectifs 3.2.1 et 3.2.4 ; 40')

Rfugi Chollong-sur-Arve, petite bourgade de


Normandie, Giovanni Manzoni, chef mafieux dsormais
repenti et recherch par toutes les familles de la mafia
New-Yorkaise pour les avoir trahi, rflchit sur sa vie, son
pass. Ntant jamais all luniversit, il peine analyser
de manire logique les ides qui lui viennent la tte.
Pourriez-vous laider en donnant la traduction, en logique
des prdicats du 1er ordre, des noncs ci-dessous ?

On utilisera pour cela les prdicats Voleur/1, Assassin/1, Criminel/1, et Famille/2 et on se placera dans le domaine
dinterprtation de lensemble des tres humains
1 Certaines personnes sont des assassins
2 Tout assassin a dj vol
3 Les voleurs ne sont pas tous des assassins
4 Un criminel ne peut tre quun assassin ou un voleur (ou les deux)
5 Il y a un criminel dans ma famille (cest--dire la famille de Giovanni Manzoni)
6 Tous les membres de ma famille (cest--dire la famille de Giovanni Manzoni) sont des voleurs
Giovanni en arrive alors la conclusion suivante : Il ny a pas de voleurs dans ma famille. Nous allons utiliser la
mthode de rsolution pour montrer validit (ou non) de son raisonnement.

7 Donnez lensemble des clauses correspondant la mise sous forme clausale de la formule de rfutation
correspondant ce raisonnement..
8 Donnez larbre de rsolution LP1 qui vous permet de montrer que le raisonnement est ou nest pas valide
9 Parmi les clauses que vous avez donnes en question 7, donnez celles qui ne sont pas des clauses de Horn.

Exercice 93 Question(s) d'interprtation (objectifs 3.2.2, 3.2.3. et 3.2.4 ; 15')


Dans le cours sur la mise sous forme prnexe, nous avons montr un certain nombre de formules dquivalence qui nous
permettaient de passer en dbut de formules les quantificateurs prsents en leur sein, tout en mettant en garde sur le fait
que lon ne pouvait pas toujours faire nimporte quoi. Ainsi, il ny a pas quivalence entre la formule x A y B et la
formule x (A B) o A et B sont des formules quelconques de la logique des prdicats du 1 er ordre. Nous allons
montrer cette absence dquivalence de deux manires diffrentes.

1 Construisez un exemple avec des formules A et B de votre choix, puis donnez en une interprtation pour montrer
quil ny a pas quivalence.

2 En reprenant votre exemple pour A et B, utilisez la mthode de rsolution pour montrer que les deux formules x A
y B et x (A B) ne sont pas quivalentes.

Exercice 94 Rsolution (objectif 3.2.3 et 3.2.4)

On considre les trois hypothses suivantes :

(H1) x z (y R(x,y,z) S(z,x))


(H2) xy ( S(x,y) => S(f(x),f(y)))
(H3) x y ( R(x,y,x))

On considre maintenant les trois conclusions suivantes :

32 J-Y Antoine et J. Villaneau


Logique pour linformatique

(C1) x S(f(x),f(x))
(C2) x y S(f(x),y)
(C3) y x S(f(x),y)
Dterminer quelles sont les consquences logiques de lensemble des trois hypothses. Pour chacune des conclusions
qui nest pas consquence logique des hypothses, trouver un modle des hypothses o la conclusion est fausse

Exercice 95 Quelques rgles dquivalence : exercice un peu plus thorique (objectif 3.1.2 et 3.2.2)

Dmontrez la validit des formules suivantes en partant de la dfinition des interprtations des quantificateurs
existentiels et universels.
a | == x A(x) A(x) axiome de spcialisation
b | == x [ A(x) B(x)] x A(x) x B(x) distributivit de sur
c | == x [ A B(x)] A x B(x) distributivit de sur et A formule close pour x
d | == x y R(x,y) y x R(x,y) commutativit partielle de et
e | == y [ R(x,y) R(x,x) ]

33 J-Y Antoine et J. Villaneau


Logique pour linformatique

Clauses de Horn et Langage PROLOG

QUESTIONS DE COURS

Exercice 96 Le retour dAristote (objectifs 4.1.3, 4.1.4, 4.2.3 et 4.2.4)

Dans cet exercice, nous allons tudier le syllogisme aristotlicien suivant :

Les caniches sont des chiens


Les chiens sont des canids
Donc il existe des caniches qui sont des canids
On veut cette fois-ci vrifier exprimentalement la validit de ce raisonnement en utilisant un interprteur Prolog.
1 A quoi correspondront les hypothses du raisonnement en Prolog ?
2 A quoi correspondra la conclusion et comment vrifierons nous la validit du raisonnement ?
3 Mettre sous forme de clauses Prolog, puis donnez les clauses de Horn correspondantes.
4 Vrifiez alors la validit de ce raisonnement en appliquant la mthode de rsolution.
5 Comparez cette rsolution avec la rsolution Prolog quivalente.

Exercice 97 Cap l'Ouest (objectif 4.1.4)

On considre le programme ci-dessous, constitu de 4 clauses.


(1) finistere(Brest);
(2) morbihan(Vannes) , morbihan(Lorient);
(3) bretagne(X) :- finistere(X);
(4) bretagne(X) :- morbihan(X);
(5) france(bretagne(X)).
1 Ce programme prsente plusieurs fautes de syntaxe. Pouvez vous les dtecter et les corriger ?
2 Quels sont les clauses qui correspondent des faits dans ce programme ? des rgles ?
3 Que reprsentent brest, vannes et lorient ? Sont-ils des variables ou des atomes (constantes) Prolog ?

Exercice 98 Bugs tous les tages (5 ;objectif 4.1.4)

Ali Dentic a plac sur le serveur de luniversit un squelette de programme correspondant son TP sur les cursus
d'informatique ralisables au sein de luniversit. Or, ce programme ne respecte pas toujours la syntaxe du langage
Prolog Pouvez-vous laider dtecter ses erreurs de syntaxe (et non pas de smantique !) ? Il est demand de donner
chaque fois la ligne incrimine, lerreur correspondante et comment vous la corrigeriez.

/************************************************************/
/* FICHIER : di.pl */
/* AUTEUR : Dentic Ali */
/************************************************************/

/*-- suite(Avt,Apr) vrai si on peut suivre le cursus Apr juste apres Avt -----*/

suite(bac,l1_info1), suite(l1_info,l2_info), suite(l2_info,l3_info).


suite (bac,iut_info1).
suite(iut_info1,dut_info).

/*-- cursus(Deb,Fin) vrai sil existe un cursus entre Deb et Fin ------------*/

cursus(Deb,Fin) :- suite(Deb,Fin)
cursus(Deb,Fin) :- suite(Deb,Entre),
suite(Entre,Fin).
cursus(Deb,Fin) :- cursus(Deb,Entre,Fin).

34 J-Y Antoine et J. Villaneau


Logique pour linformatique

EXERCICES : PROLOG ET LP1

Exercice 99 Instruction civique europenne (10 ; objectifs 4.2.2 et 3.2.4)

Alors que des pays comme lIrlande, le Royaume-Uni et, plus


rcemment, les pays scandinaves ont accord le droit de vote aux
lections locales leurs rsidents trangers sans quaucune
catastrophe ne sensuive, la classe politique franaise rechigne
toujours a aborder cette question. Nanmoins, suite aux accords
de Maastricht, tout ressortissant de lunion europenne dispose
dun tel droit de vote en France. On considre un petit
programme Prolog illustrant cette situation :
francais( dupond ).
europeen( gert ).
habite( gert, France).
vote(X) :- francais(X).
vote(X) :- europeen(X), habite(X,france).

a) Donnez la traduction en logique des prdicats du 1 er ordre


de la question Prolog : ?- vote(X).
b) Donnez lensemble des clauses de Horn correspondant la traduction en logique des prdicats du 1 er ordre du
programme et de la question.
c) Donnez toutes les rponses obtenues par application de la mthode de rsolution sur cet ensemble de clauses de
Horn. Pour chaque solution, on donnera le nombre de dmonstrations obtenues.

Exercice 100 Do you speak clauses de Horn ? (objectifs 4.1.3 et 4.2.3)

Les clauses de Horn utilises par Prolog imposent des contraintes non ngligeables sur la traduction logique des
raisonnements. En rgle gnrale, ces contraintes restent cependant facilement satisfaisables. En particulier, l'opration
de renommage que nous allons tudier dans cet exercice permettant une reformulation adquates des clauses posant
problme.
On considre ici l'ensemble des clauses suivantes, o P, Q, R et S dsignent des formules atomiques :
(1) P Q R
(2) P S
(3) QT
1 Dire, parmi ces trois clauses, lesquelles ne sont pas des clauses de Horn.
2 On appelle renommage de P l'opration, note [P P1], qui consiste remplacer dans toute clause P par P1.
Donner un ensemble de clauses de Horn quivalent l'ensemble prcdent en utilisant le renommage d'un nombre
minimal de formules atomiques. On prcisera l'ensemble des renommages effectus.
3 Ecrire alors les affirmations suivantes sous forme de clauses Prolog
(1) En cas de grve, je prendrai ma voiture
(2) Si je fais ce voyage, je prendrai le train ou la voiture
(3) Quelle calamit : il y aura grve ou bien ce sera encore la Coupe du Monde de football !

35 J-Y Antoine et J. Villaneau


Logique pour linformatique

EXERCICES : PROGRAMMATION PROLOG

Exercice 101 Cluedo logique (objectifs 4.2.3 et 4.2.4)

Soit colonelMoutarde et mademoiselleRose des suspects, chandelier un objet contondant, et le


bureau et la bibliothque une salle. Les empreintes de doigts appartenant au colonelMoutarde ont
t trouvs dans le bureau, et celles de mademoiselleRose dans la bibliothque. Un cadavre a t
dcouvert dans le bureau. Le chandelier se trouve dans le bureau.

1 En choisissant des prdicats adquats, reprsentez ces connaissances par desclauses Prolog.

2 Donner une clause Prolog utilisant les prdicats coupable/1, condamne/1 qui correspondent
l'assertion si un suspect est coupable d'un meurtre, alors il doit tre condamn

3 Donner une rgle Prolog qui correspond l'assertion si un cadavre a t dcouvert dans une
salle et qu'on dcouvre les empreintes d'un suspect dans cette salle, alors le suspect est
coupable

4 Donner une rgle Prolog qui correspond l'assertion si un cadavre a t trouv dans une
salle et si un objet (contondant) se trouve dans cette salle, il s'agit indubitablement de l'objet
qui a permis de commettre cet acte dlictueux

5 Donnez les arbres de drivation qui correspondent aux question Mademoiselle Rose est-elle
coupable ? et Le Colonel Moutarde est-il coupable et quel objet a-t-il utilis pour raliser
son forfait ?.

Exercice 102 Progammation logique et littrature de l'absurde (objectifs 4.2.3 et 4.1.4)

Une bibliothque possde un certain nombre d'ouvrages, tous crits par des auteurs de l'absurde et classs en diffrentes
catgories :
romans : La Peste Camus
essais : Le mythe de Sisyphe Camus
thtre : Rhinocros Ionesco
En attendant Godot Beckett
Caligula Camus

1 Reprsenter les informations suivantes (par exemple : Godot est une pice de thtre dont l'auteur est Beckett) sous
la forme de faits Prolog.
2 Ecrire un prdicat partout(Auteur) qui russit si la bibliothque dispose d'uvres de l'auteur Auteur dans
tous les types d'ouvrages.
3 Ecrire un prdicat plusieurs(Auteur,Type)qui russit si la bibliothque possde plusieurs uvres de
l'auteur Auteur dans la mme catgorie Type. On suppose qu'on dispose d'un prdicat diff(X,Y) prdfini
qui russit si X et Y sont diffrents.

Exercice 103 Gastronomie Prologienne (objectifs 4.2.3 et 4.1.4)

On dsire crire un petit programme Prolog qui aide une personne donne choisir un menu au restaurant. Sur la carte
de l'tablissement, sont prcises les informations suivantes :
vin : cidre
cte du Rhne
plats : galettes de bl noir l'andouille de Gumn
ravioles du Royans
desserts : far aux pruneaux
pogne de Romans

36 J-Y Antoine et J. Villaneau


Logique pour linformatique

1 Reprsentation des connaissances Reprsenter les informations ci-dessus (par exemple : le far est un dessert)
sous la forme de faits Prolog.
2 Pour chaque type de met, l'un est typique de Bretagne, l'autre de Rhne Alpes. Reprsenter les informations
correspondantes en utilisant un prdicat d'arit 2 lieu(Elt,Region) qui russit si Elt provient de Region.
3 Ecrire un prdicat d'arit 4 menu_reg(Vin,Plat,Dessert,Region) qui russit si le vin, le plat et le dessert
considrs composent un menu typique de la Region.
4 Fanch est breton et Pierre rhnalpin. Traduire cette information l'aide du prdicat lieu. Ecrire un prdicat d'arit
4 menu_habituel(Vin,Plat,Dessert,Personne) qui russit si le vin, le plat et le dessert composent un
menu correspondant la rgion d'o est originaire Personne.
5 Par quel but obtiendrez vous le menu habituel qui sied Fanch ?

Exercice 104 Tous Carrouf ! (15 ; objectifs 4.2.3 et 4.1.4)

On dsire raliser un programme Prolog qui modlise une base de donnes permettant de grer le stock dun
supermarch. Dans cette base de donnes, chaque produit rfrenc est dcrit par son nom, le rayon o il se trouve, son
prix unitaire et la quantit (en nombre dunits) prsente en stock. Le tableau ci-dessous prsente un extrait de cette BD.
On suppose que lon dispose du prdicat prdfini between/2 dfini comme suit : between(Min,Val,Max)
russit si Val est un entier ou un rel compris au sens large entre les valeurs Min et Max. Son seul mode dutilisation
est (+,+,+), c'est--dire que ses arguments doivent tre instancis par des valeurs lors de l'appel.

Nom Rayon Prix (Euros) Stock


Marronsuisse Danone Produits laitiers 1,6 0
BN Fraises Biscuits 0,6 45
Huile olive Puget Condiments 3,5 20

a) Reprsentation des connaissances Comment reprsenterez-vous ces connaissances dans votre programme
Prolog ? La reprsentation choisie devra vous permettre de rpondre aisment aux problmes ci-dessous.
b) Gestion de stock Donnez lcriture Prolog du prdicat rupture/2 dfini comme suit :
rupture(Prod,Rayon) russit si Prod est un produit prsent normalement dans le rayon Rayon qui est
actuellement en rupture de stock. Ce prdicat devra fonctionner dans tous les modes dutilisation possibles.
c) Donnez des exemples de questions que vous poseriez pour tester la validit du prdicat rupture/2 en mode (+,+).
d) Aide au client Donnez lcriture Prolog du prdicat choix/3 dfini comme suit : choix(Rayon,Px_Max,
Prod) russit si Prod est un produit prsent dans le rayon Rayon et dont le prix est infrieur Px_Max. Ce
prdicat devra fonctionner dans les modes (+,+,-) et (+,+,+), cest--dire que le client donne chaque fois le rayon et
le prix maximal recherch.

Exercice 105 Conjonctions et disjonctions en Prolog : BD transport arien

Consquence de lexplosion dInternet mais aussi de la mondialisation des changes, les bases de donnes et plus
gnralement les systmes dinformations occupent une place de plus en plus importante dans lconomie et
constituent un domaine majeur de linformatique. C'est pour cela que nous avons orient notre Master Informatique vers
les mtiers lis au dveloppement ou la gestion des bases de donnes et leur interfaage sur le WWW. Nous allons
voir qu'il est galement possible de dfinir des bases de donnes logiques en Prolog. Historiquement, le transport arien
a t un des premiers secteurs conomiques faisant un usage intensif de grandes bases de donnes. Dans cet exercice, on
considre une petite base de donnes donnant un ensemble dinformations sur les vols de diffrentes compagnies. La
premire table comprend les champs (attributs) dcrits ci-dessous avec un exemple de contenu (enregistrements) :
- vol numro du vol
- compagnie nom de la compagnie
- avion type davion utilis
- jour jour de la semaine correspondant ce vol
- horaire horaire de dpart du vol
- depart code de laroport de dpart
- arrivee code de laroport darrive

37 J-Y Antoine et J. Villaneau


Logique pour linformatique

vol compagnie avion jour horaire depart arrive


AF4056 Air France Airbus Me 9.45 NTE LYS
AF7734 Air France Fokker Je 14.50 BRG TLE
AL9712 Air Littoral ATR Lu 10.30 CDG NIC

Par ailleurs, la table ci-dessous donne la liste des aroports et de la ville principale quils desservent :
- code code de laroport
- aroport nom de laroport
- ville ville desservie par laroport
code aroport ville
CDG Roissy - Charles de Gaulle Paris
BRG Brest Guipavas Brest
TLE Toulouse Blagnac Toulouse
NIC Nice Nice
NTE Nantes Atlantique Nantes Atlantique
LYS Lyon Saint Saint-Exupry Lyon Saint Saint-Exupry

Au cours de cet exercice, nous allons raliser un petit programme qui nous donnera une ide de la ralisation en Prolog
de bases de donnes simples ainsi que de leur interrogation.
1 Reprsentation des connaissances Comment reprsenterez-vous en Prolog les informations de cette base de
donnes ? Donnez titre dillustration la reprsentation des vols figurant en exemple dans le tableau.
2 On dsire obtenir la liste des compagnies assurant une liaison entre deux villes. Dfinir le prdicat liaison/3 tel
que liaison(Dep,Arr,Comp) russit si Comp est une compagnie assurant un vol entre Dep et Arr.
3 On dsire maintenir obtenir la liste des compagnies assurant une liaison entre deux villes avec un dpart matinal.
Dfinir un prdicat liaison/4 tel que liaison(Dep,Arr,Comp,Matin) russit si Comp est une compagnie
assurant un vol entre Dep et Arr soit en matine (Matin =1) soit en aprs-midi (Matin =0). Dans ce cas, il faut
que le vol parte le matin ET quil assure la liaison demande. On suppose que lon dispose dun prdicat
avant(X,Y) qui russit si lheure X est infrieure lheure Y.
Afin de rduire leurs frais dexploitations sur certaines liaisons intrieures peu rentables, les grandes compagnies
ariennes ont de plus en plus recours de petits oprateurs locaux assurant pour leur compte ces dessertes. Cest ainsi,
par exemple, que la majeure partie des vols dAir France au dpart de la Bretagne sont assures par BritAir. Cette
information peut-tre importante pour les clients, ces oprateurs rgionaux proposant frquemment un accueil bord
bien plus apprci que celui des grandes compagnies.
On se propose donc de complter notre base de donnes par une table complmentaire dcrivant lensemble de ces vols
raliss par un oprateur autre que la compagnie commercialisant le vol :
- vol numro du vol
- compagnie nom de la compagnie commercialisant le vol
- oprateur nom de loprateur ralisant effectivement le vol
Le tableau ci-dessous donne un aperu du contenu de cette base de donnes :
vol compagnie oprateur
AF4056 Air France BritAir
AF7734 Air France BritAir

4 Reprsentation des connaissances Comment reprsenterez-vous en Prolog ces nouvelles informations ?


Donnez titre dexemple la reprsentation des accords commerciaux figurant ci-dessus.
5 Modifier le prdicat liaison/3 afin de considrer la fois les compagnies commercialisant un vol ET celles
lassurant en tant quoprateur.

38 J-Y Antoine et J. Villaneau


Logique pour linformatique

EXERCICES : SEMANTIQUE OPERATIONNELLE DE PROLOG

Exercice 106 Paradis glacs (objectifs 4.1.5 et 4.2.4)

Si les les sont le plus souvent synonymes de soleil, cocotiers et vahins dans lesprit des vacanciers occidentaux, il en
est qui, balayes par les Quarantimes Rugissants ou situes aux confins de lArctique, nont pour elles que leur solitude
et leur caractre grandiose. On considre le programme Prolog suivant, correspondant une mini base de donnes issue
dun SIG (systme dinformation gographique) consacr aux les des rgions arctiques :
(1) ile(crozet,france,indien).
(2) ile(georgie_sud,royaume_uni,atlantique_sud).
(3) ile(francois_joseph,russie,arctique).
(4) ile(ellesemere,canada,artique).
(5) hemisphere(indien,sud).
(6) hemisphere(atalantique_sud,sud).
(7) hemisphere(arctique,nord).
(8) possession(Pays,Hemisph):- ile(_,Pays,Ocean), hemisphere(Ocean,Hemisph).

1 Donnez larbre de rsolution correspondant la question : ?- possession(france,sud).

2 Donnez larbre de rsolution correspondant la question : ?- possession(russie,sud).

3 Donnez larbre de rsolution correspondant la question : ?- possession(X,nord).

Exercice 107 Un petit tour Roland Garros (objectifs 4.1.5 et 4.2.4)

On considre le programme Prolog suivant :


(1) soleil.
(2) lobes(ivanovic).
(3) petit(safina).
(4) meilleur(henin).
(5) gagnant(X,Y) :- meilleur(X).
(6) gagnant(X,Y) :- plus_malin(X,Y).
(7) gagnant(X,Y) :- plus_chanceux(X,Y).
(8) plus_malin(X,_Y) :- soleil, lobes(X).
(9) plus_malin(X,Y) :- petit(Y), lobes(X).
(10) plus_chanceux(_X,safina).
Construire l'arbre de rsolution Prolog correspond la question ?- gagnant(X,_Y). Quelle(s) rponse(s) obtient-on ?
Rponse indicative On obtient 4 solutions possibles avec le mme gagnant dans deux cas de figure.

Exercice 108 Ds que le vent soufflera (objectifs 4.1.5 et 4.2.4)

On considre le programme Prolog suivant :


(1) navigue(parlier,mardi).
(2) navigue(desjoyeux,mercredi).
(3) navigue(desjoyeux,jeudi).
(4) navigue(ledam,J).
(5) temps(mardi,calme).
(6) temps(mercredi,calme).
(7) temps(jeudi,grostemps).
(8) aime(ledam,grostemps).
(9) aime(X,calme).
(10) chance(desjoyeux,mercredi).
(11) gagne(X,J) :- navigue(X,J), temps(J,T), aime(X,T).
(12) gagne(X,J) :- navigue(X,J), chance(X,J).

Question Quelles sont les rponses donnes par Prolog au but : ?- gagne(X,mercredi)
Donnez l'arbre de rsolution correspondant.
Rponse indicative On obtient 2 gagants possibles le mercredi ... mais trois dmonstrations au total.

39 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 109 Rcursivit par lexemple: les amis de mes amis ... (objectifs 4.1.5 et 4.2.4)
Au chapitre suivant, nous allons dcouvrir les plaisirs de la programmation rcursive, voir sa puissance mais aussi ses
dangers. Rien ne nous empche de dcouvrir par lexemple ce type de programmation se mordant la queue . On
considre le programme suivant :
(1) ami(paul, pierre).
(2) ami(pierre,jacques).
(3) ami(X,Y) :- ami(X,Z), ami(Z,Y).

1 Comment peut sinterprter en franais la rgle (3) ? En quoi cette rgle est-elle particulire ?
2 Donnez larbre de rsolution correspondant la question : ?- ami(paul,jacques).
3 Donnez larbre de rsolution correspondant la question : ?- ami(paul,LesAutres). Commentaire ?

PROBLEMES

Exercice 110 Zoologie Prologienne (objectifs 4.1.3, 4.2.2., 4.2.3 et 4.2.4)

On considre la base de connaissances suivante, concernant des espces alpines en voie de disparition :
Le ttras lyre est un oiseau (appel aussi coq de bruyre)
Le gypate barbu est un oiseau carnivore (appel aussi vautour des agneaux car raffolant de ces tendres petites btes...)
Le lynx est un animal carnivore.
Un oiseau est un animal.
Les carnivores mangent de la viande.
Dans tout animal, il y a de la viande.
Tous les animaux boivent de l'eau.
Un animal consomme ce qu'il boit ou mange.
1 Reprsenter cette base de connaissances en logique de prdicats du 1er ordre, puis en un programme Prolog.
2 Les clauses Prolog du programme correspondent-elles bien des clauses de Horn de la LP1 ?
3 Comment interprtez-vous la question suivante : ?- carnivore(X), conso(X,Y).
4 Donnez l'arbre de rsolution complet cette question.

Exercice 111 Erreurs de syntaxe et messages SWI-Prolog (15; objectifs 4.1.4 et 4.2.5)

Lobservation de la mthodologie de programmation des tudiants en sance de TP est une preuve souvent prouvante
pour les enseignants qui sattendent toujours plus de rflexion de la part de leurs lves. Il est ainsi rageant de vous
voir modifier nimporte quoi au hasard dans votre programme suite laffichage dune erreur de compilation, ou pire
encore vous voir utiliser votre programme alors que des erreurs de compilation vous ont t signifies Ce petit
exercice a prcisment pour objectif de vous faire rflchir vos mthodes de programmation.
1 Pourquoi est-il toujours possible dutiliser un programme Prolog en dpit de laffichage derreurs la
compilation ? Pourquoi est-on assur que le comportement du systme sera erron ? Justifiez votre rponse.
2 Pour compiler un programme sous SWI-Prolog, on appelle un prdicat prdfini ( consult/1). Sil y a des erreurs
dans le programme compil, lappel consult russira-t-il (i .e. rponde Yes au final) ou non ?
On considre le message derreur suivant obtenu sur le compilateur SWI-PROLOG :
[WARNING: (/D:/toto.pl:2) Syntax error: Operator expected]
3 Que signifie la partie (/D:/toto.pl:2) du message derreur ?
On considre le programme Prolog suivant (les numros de lignes indiqus gauche ne sont l que pour vous aider
vous reprer dans le fichier : ils napparaissent bien entendu pas dans le programme proprement dit) :

(1) /****************************************************************/
(2) /* FICHIER : syracuse.pl */
(3) /* OBJET : mise en oeuvre de l'algo de Syracuse */
(4) /* AUTEUR : J.Y. Antoine */
(5) /* DATE : 01/12/2001 */
(6) /****************************************************************/

40 J-Y Antoine et J. Villaneau


Logique pour linformatique

(7) /* impair(N) reussit si N est un nombre entier impair ***********/


(8) /* pair (N) : idem avec parite */

(9) impair(N) :- 1 is N mod 2.


(10) pair(N) :- 0 is N mod 2.

(11) /* div2(NN,N) reussit si N est egal a la moitie de NN **********

(12) div2(NN,N) :- N is NN / 2. */

(13) /* suivant(Crt,Suivt) reussit si Suivt obtenu avec Crt par l'algo de Syracuse */

(14) suivant(Crt,Suivt) :- pair (Crt), div2(Crt,Suivt).


(15) suivant(Crt,Suivt) :- impair(Crt), Suivant is Crt * 3 + 1.

(16) /* syra(N) execute l'algo de Syracuse a partir du nb N **********/

(17) syra(1)
(18) syra(N) :- write(N), tab(1), suivant(N,Suivt), syra(Suivt).

4 Ce programme prsente quatre erreurs. Il vous est demand de les dtecter en donnant chaque fois la nature de
lerreur (i.e. quelle serait la bonne criture), le message quaffichera le compilateur Prolog en dtectant cette erreur.

41 J-Y Antoine et J. Villaneau


Logique pour linformatique

PROLOG : terminaison, rcursivit

QUESTIONS DE COURS

Exercice 112 Retour au port compromis (objectifs 4.2.4 et 5.2.2)

On dsire raliser un programme Prolog qui recherche, partir de la donne de relations maritimes directes (i.e. sans
escales), lensemble des voyages possibles que lon peut effectuer en bateau entre deux ports. Ce programme nutilise
quun seul prdicat darit 2 : liaison(dep,arr) qui russit sil existe une liaison maritime entre le port de dpart
dep et le port darrive arr. Dans lcriture propose du programme, les relations directes sont alors reprsentes par
un ensemble de faits, alors que les liaisons avec escale sont obtenues laide dune rgle rcursive :
(1) liaison(brest,le_conquet).
(2) liaison(le_conquet,molene).
(3) liaison(molene,ouessant).
(4) liaison(santander,brest).
(5) liaison(brest,plymouth).
(6) liaison(Dep,Arr) :- liaision(Dep,Esc), liaison(Esc,Arr).

1 Donnez l'arbre de rsolution Prolog correspondant la question ?-liaison(brest,ouessant).


2 Donnez l'arbre de rsolution Prolog correspondant la question ?-liaison(brest,santander). Quel
problme rencontre-t-on ?
3 Modifiez le programme pour rsoudre le problme rencontr.

Exercice 113 L'argent ne fait pas le bonheur : rcursivit (mal) cache (objectifs 4.2.4, 5.1.2. et 5.2.2)

On considre le programme Prolog suivant :


amoureux(jean).
heureux(X) :- riche(X).
heureux(X) :- amoureux(X).
riche(X) :- actions(X).
actions(X) :- argent(X).
argent(X) :- riche(X).
1 Donnez l'arbre de rsolution Prolog correspondant la question ?- heureux(jean). Que se passe-t-il ?
2 Comment rsoudre le problme rencontr ?

Exercice 114 Un peu de recul par rapport au cours (objectif 5.1.2)

On considre un prdicat quelconque lambda/2. Sachant que ce prdicat nest pas rcursif et quil ne met pas en jeu de
prdicats extralogiques, pouvez-vous dire quels sont ses modes dutilisation ? Justifiez votre rponse.

Exercice 115 Au suivant ! (10 ; objectifs 4.2.4 et 5.2.2)

On considre le programme Prolog suivant, dfinissant une relation dordre (suprieur) entre nombres entiers :
(1) suivant(1,0).
(2) suivant(2,1).
(3) suivant(3,2).
(4) sup(Sup,Inf) :- suivant(Sup,Inf).
(5) sup(Sup,Inf) :- sup(Sup,Entre), sup(Entre,Inf).

a) Donnez larbre de rsolution correspondant la question ?- sup(0,3).


b) Quaffichera Prolog en rponse cette question ?- sup(0,3).
c) Quels commentaires pouvez-vous faire sur le programme ?

42 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 116 Reprsentation des listes (objectif 5.1.3)


Ecrire la forme gnrale des listes suivantes :
1) liste quelconque deux lments
2) liste un lment, telle que cet lment est une liste deux lments.
3) liste deux lments, telles que le deuxime lment est la liste vide.
4) liste ayant au moins deux lments.
5) liste au moins trois lments, telles que le deuxime lment est une liste trois lments.

Exercice 117 Listes : syntaxe (5 ; objectif 5.1.3)

Voici une fois encore a ralis un programme prsentant de nombreuses fautes de syntaxe Pouvez-vous les corriger ?

/*****************************************************************************/
/* FICHIER : team.pl */
/* AUTEUR : Antoine Jean-Yves */
/*****************************************************************************/

/* faits */

equipe([nicolas, jean_pierre, jacques]).


equipe([lionel, dominique | laurent ]).
equipe([robert | [anne_marie , joseph]]).
equipe([arlette | alain , olivier]).
equipe([noel, [ dominique, alain]]).

/* oter(E,LE,L) reussit si L est la liste LE a laquelle on a ote E*/

oter(E,[E|Q],Q).
oter(E,[X|QE],[X|Q]) :- oter(E,[QE],[Q]).

a) On vous demande tout dabord de donner lensemble des erreurs de syntaxe du programme, cest--dire celles
qui donneront lieu des messages derreurs de la part de linterprteur Prolog lors de ltape de consultation du
programme (appel au prdicat consult/1). Il est demand de donner chaque fois la clause incrimine, lerreur
correspondante et comment vous la corrigeriez.
b) On vous demande tout dabord de donner lensemble des erreurs de programmation qui correspondront une
smantique non attendue du programme. Cest dire aux erreurs qui ne seront pas dtectes par linterprteur,
mais qui conduisent visiblement un comportement erron du programme. Il est demand de donner chaque
fois la clause incrimine, lerreur correspondante et comment vous la corrigeriez.

Exercice 118 Arbre de rsolution avec liste (objectif 5.1.3 et 4.2.4)


On considre le prdicat darit 2 elem(E,L), tudi en cours, qui russit si E est un lment de la liste L :
(1) elem(E,[E|_]).
(2) elem(E,[_|Q]):- elem(E,Q).
Donnez les arbres de rsolution complets qui correspondent aux questions suivantes :
1) ?- elem(1,[2,3]).
2) ?- elem(X,[1,2]).

EXERCICES : RECURSIVITE ET MODES D'UTILISATION

Exercice 119 Les voisins de mes voisins sont mes voisins (5 ; objectifs 5.1.2 et 5.2.2)
Le programme Prolog suivant cherche donner tous les couples de pays frontaliers aux abords de la pninsule ibrique.
Il prsente des problmes de gestion de rcursivit :

43 J-Y Antoine et J. Villaneau


Logique pour linformatique

(1) frontalier(espagne,france).
(2) frontalier(espagne,portugal).
(3) frontalier(X,Y) :- frontalier(Y,X).
Rcrire le programme afin de rendre celui-ci utilisable dans tous les modes dutilisation.

Exercice 120 Vive la Royale (15 ; objectifs 4.2.4, 5.1.2 et 5.2.2)

On considre le programme Prolog suivant, qui dcrit les relations de commandement au sein des officiers gnraux et
suprieurs de la marine nationale :
/* sup(Sup,Inf) reussit si Sup est le grade directement superieur Inf */
(1) sup(amiral,vice_amiral).
(2) sup(vice_amiral,ctre_amiral).
(3) sup(ctre_amiral,capt_vaisseau).
(4) sup(capt_vaisseau,capt_fregate).
(5) sup(capt_fregate,capt_corvette).
/* obeit(Inf,Sup) reussit si Sup a un grade superieur Inf */
/* modes dutilisation recherches : (+,+) et (+,-) */
(6) obeit(Inf,Sup) :- obeit(Sup,Entre), obeit(Entre,Inf).
(7) obeit(Inf,Sup) :- sup(Sup,Inf).

a Quaffichera linterprteur Prolog en rponse la question ?- obeit(ctre_amiral,X). Conclusion ?


b Quaffichera-t-il en rponse la question ?- obeit(amiral,capt_corvette). Conclusion ?
c Modifiez le programme ci-dessus pour permettre un fonctionnement correct en modes (+,+) et (+,-).
d En dsire que le programme fonctionne en modes (+,+) et (-,+). Modifiez le programme en consquence.

Exercice 121 Factorielle (5 ; objectif 5.1.2)


On considre un programme Prolog ci-dessous ralisant le calcul de la factorielle FN dun nombre N donn :
fact(0,1).
fact(N,FN) :- sup(N,0), plus(N,-1,N1), fact(N1,FN1), fois(N,FN1,FN).

On suppose que :
sup(S,I) est vrai si S entier est strictement suprieur I. sup/2 a pour mode dutilisation (+,+).
plus(A,B,AB) est vrai si AB = A + B. plus/3 a pour modes : (+,+,+), (+,+,-), (-,+,+), (+,-,+).
fois(A,B,AB) est vrai si AB = A * B. fois/3 a pour modes : (+,+,+), (+,+,-), (-,+,+), (+,-,+).
Donnez les modes dutilisation du prdicat fact/2 ainsi dfini.

Exercice 122 Le programme inconnu (30 ; objectifs 4.2.4 et 5.1.2)

Etudiant en licence informatique, Jos Spr-Ledis se voit proposer le programme inconnu suivant :
(0) aez(A,B) :- jed(B,1,A).
(1) jed (1,A,A).
(2) jed (B,Q,A) :- QS is Q+1, 0 is B mod QS, BD is B div QS, jed(BD,QS,A).
On rappelle que les prdicats arithmtiques mod et div correspondent respectivement au calcul du reste et du quotient
de la division entire.
1 Donnez les arbres de rsolution complets correspondant aux questions :
a) ?- aez(A,2).
b) ?- aez(A,6).
c) ?- aez(3,4).

2 Quels sont les modes d'utilisation de ce prdicat ? Justifiez votre rponse.


3 Que ralise selon vous le prdicat aez/2 ?
4 Sauriez-vous donner une autre criture de ce prdicat qui fonctionne en mode (+,-) ou (+,+) ?
5 Dans la rgle 2, que vrifie le sous-but 0 is B mod QS ? On dsire crire un prdicat darit 2 verif(B,QS)
qui ralise cette vrification. Donnez une criture du prdicat qui ralise cette vrification en nutilisant pas de
prdicats extralogiques.

44 J-Y Antoine et J. Villaneau


Logique pour linformatique

PROGRAMMATION RECURSIVE : EXERCICES SIMPLES

Exercice 123 Cest pas moi, cest lautre (25 ; objectifs 5.2.1 et 5.2.2)

Souvenez-vous... La France a connu au cours de lt 2002-2003 un pisode de canicule dont se serait bien pass Jean-
Pierre Raffarin, le premier ministre de l'poque. Celui-ci fut en effet accus par lopposition, mais galement par les
observateurs politiques, de vacance de pouvoir alors mme que des milliers de personnes mourraient dhyperthermie
dans des hpitaux surchargs. Lexplication qua donn le premier ministre cette faillite de lEtat se rsume la
maxime cest pas moi, cest lautre : il na pas t inform par le ministre de la Sant de l'poque (J-F. Mattei) qui lui
mme na pas t alert par son Directeur Gnral de la Sant (L. Abenham) qui lui mme na pas reu suffisamment
dinformations du directeur (P. Brcker) de lINSV (Institut National de Veille Sanitaire) qui lui-mme
Sans chercher trancher ici sur les responsabilits de chacun, cet prouvant pisode estival est loccasion dun exercice
de rentre portant sur la chane dinformation qui doit remonter du terrain jusquaux cabinets gouvernementaux. Deux
prdicats sont utiliss pour dfinir la liste des protagonistes de laffaire et leur liens de subordination :
fonction(P,F) est vrai si la personne P a pour fonction (premier ministre, par exemple) F.
superieur(F,FSup) est vrai si la personne de fonction F est le subordonn direct de la personne de fonction Fsup
(fonction hirarchique directement suprieure).
1) Reprsentez les connaissances donnes dans lnonc ci-dessus laide de ces prdicats.
Pour rsoudre notre problme, on dsire maintenant raliser un prdicat informe_par(P1,P2), qui russit si la
personne P1 doit tre informe, directement ou indirectement (i.e. par voie hirarchique) par la personne P2. Ce
prdicat doit fonctionner en mode (+,+) et (+,-).
2) Donnez lanalyse du problme correspondant la dfinition du prdicat.
3) Donner lcriture du prdicat en Prolog.
4) Donnez un ensemble de tests permettant de vrifier systmatiquement que le prdicat fonctionne bien dans les
modes attendus.

Exercice 124 Le monde des blocs (objectifs 5.2.1 et 5.2.2)

Se cherchant de grands dfis intellectuels solutionner, l'Intelligence Artificielle, ses dbuts dans les annes 60, s'est
passionne pour ce qu'on appelait le monde des blocs. Il s'agissait en fait de rsoudre un problme enfantin la porte
de tout nourrisson : dplacer, l'aide des robots, des cubes empils dans une configuration donne pour les replacer
dans une autre configuration, ceci en ne prenant chaque fois qu'un seul cube. Par exemple :

A C
B A
C B

La solution apparut rapidement, et ce grand classique trouva sa place dans tous les enseignements de base en
Intelligence Artificielle. Le problme est d'ailleurs assez simple et peut tre rsolu en Prolog par un tudiant de 1 er cycle.
Nous allons tudier ici une toute petite partie du problme. On reprsente tout empilement l'aide d'un ensemble de
faits pose_sur(X,Y), prdicat qui russit si X est pos directement Y. Ainsi, la pile gauche de la figure ci-dessus se
dcrit comme suit :
pose_sur(c,sol).
pose_sur(b,c).
pose_sur(a,b).
Pour estimer si une position est correcte ou non, il peut tre utile au robot de savoir d'une manire gnrale si un bloc
donn est au dessus d'un autre, sans que ceux-ci soient poss l'un sur l'autre. Par exemple, sur la figure de gauche, A est
au dessus de B, mais aussi de C et du sol.
Question On demande prcisment d'crire le prdicat sur(X,Y) qui russit sur X est au dessus de Y.

45 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 125 Histoire de lArt (15 ; objectifs 5.2.1 et 5.2.2)

Si certains critiques dart ont remis en cause une certaine vision dterministe de la modernit dans lart, il nen reste pas
moins que lvolution des courants artistiques sest souvent faite de proche en proche : une cole stylistique, une fois
tablie, influence de nouveaux artistes qui sy intgrent puis vont plus encore de lavant dans linnovation pour crer
finalement une nouvelle cole artistique. En Prolog, on dcide de reprsenter ces relations dinfluences successives par
une liste de faits utilisant le prdicat prefigure(X,Y), qui russit si lcole X a prfigur lapparition de lcole Y et
est donc son prdcesseur direct dans lhistoire de lart. On suppose (postulat trs rducteur) au passage que tout
courant artistique na t influenc que par un prdcesseur unique. Par exemple :
prefigure(barbizon,impressionnisme).
prefigure(pont_aven,nabis).
prefigure(impressionnisme,fauvisme).
prefigure(cubisme,futurisme).

On veut crire un prdicat darit 2 apres(Apr,Avt)qui russit si Avt est une cole stylistique apparue aprs Apr.

a) Donnez votre analyse du problme spcifi de la manire suivante : apres(Apr,Avt) russit si lcole Apr est
apparue aprs lcole artistique Avt
b) Donnez la programmation en Prolog du prdicat apres/2 conformment cette analyse.

Exercice 126 Woube story, ou le mythe d'Ariane revisit (objectifs 4.2.4, 5.2.1 et 5.2.2)

Alec Tronic, lingnieur systme du Dpartement Informatique, est charg de connecter lensemble des ordinateurs en
libre service. Pour cela, il relie les ordinateurs deux deux. Pour ne pas se tromper, il note chaque fois le nom de
chaque ordinateur reli, en tenant bien compte du sens de la connexion. Au bout dun moment, il ne sait plus trs bien
o il en est. Sur son papier, il a not les relations directes entre chaque ordinateur :
Lordinateur a est reli lordinateur f
Lordinateur b est reli lordinateur d
Lordinateur d est reli lordinateur c
Lordinateur a est reli lordinateur c
Lordinateur c est reli lordinateur e
Lordinateur g est reli lordinateur h
Pour laider, on va reprsenter chaque connexion directe entre des ordinateurs X et Y par le prdicat lie(X,Y). On
suppose que ces connexions sont unidirectionnelles, cest dire que le fait que X est li Y nimplique pas que Y soit
li X.
a Dfinissez sous forme de clauses Prolog le prdicat connecte(X,Y) qui est vrai sil existe une connexion, directe
ou non, entre les ordinateurs X et Y. L encore, il ny a pas a priori de bidirectionnalit des connexions.
b Etes-vous srs que votre programme ne boucle pas. Pour vous en persuader, crivez larbre de preuve Prolog en
rponse aux questions suivantes :
?- connecte(b,c).
?- connecte(c,b).
?- connecte(z,u).

Exercice 127 Recherche de diviseur ... sans division (objectifs 5.2.1 et 5.2.2)

Pour lordinateur (et ltre humain !), la division est une opration plus difficile raliser quune simple addition ou
soustraction. Cest ainsi quil nest pas dfini en Prolog de prdicat logique ralisant la division (cf. chapitre consacr
lartithmtique Prolog et ses prdicat extra-logiques). Pour le programmeur dsireux de nutiliser quun langage Prolog
pur, cest dire nutilisant que des prdicats rigoureusement logiques, comment rpondre alors au problme suivant :
raliser un prdicat darit diviseur(N,Div) qui russit si lentier Div est un diviseur de lentier N.
La solution a ce problme est heureusement trouve depuis lantiquit : il suffiser de constater que si B est un diviseur
de A, alors B est aussi un diviseur de B-A. Partant de cette proprit, sauez-vous raliser ce prdicat ?
Indication On pourra pour utliser le prdicat logique plus/3 dfini comme suit : plus(X,Y,Z) russit si Z est la somme
de X et Y entiers relatifs.

46 J-Y Antoine et J. Villaneau


Logique pour linformatique

Exercice 128 Baby boom (45 ; objectifs 5.1.2.)

Le programme Prolog suivant cherche donner lensemble des couples de jumeaux dune maternit. Le prdicat
jumeaux/2 est sens fonctionner en mode (+,+) et (+,-) :
/* faits : declarations des jumeaux */
(1) jumeaux(riri,fifi).
(2) jumeaux(igor,grichka).
/* regles : jumeaux(X,Y) est vrai si X et Y sont jumeaux et reciproquement */
(3) jumeaux(X,Y) :- jumeaux(Y,X).

1) Donnez larbre de rsolution correspondant la question : ?- jumeaux(fifi,riri).


2) Donnez larbre de rsolution correspondant la question : ?- jumeaux(riri,X).
3) Donnez larbre de rsolution correspondant la question : ?- jumeaux(cecilia,carla).
4) A la lumire des questions prcdentes, pouvez-vous expliquez quel(s) problme(s) prsente ce programme ?
5) Rcrire le programme afin de rendre celui-ci utilisable dans tous les modes dutilisation prvus.
On dsire maintenant tendre la porte de ce programme lensemble des tripls, quadrupls etc

Reprsentation des connaissances Dans ce cas, les bbs pris deux deux sont considrs comme des jumeaux. On
reprsentera donc les enfants multiples deux deux, laide du prdicat jumeaux/2. Par exemple, si Riri, Fifi et Loulou
sont des tripls, on se contentera de dfinir les faits suivants :
jumeaux(riri,fifi).
jumeaux(fifi,loulou).

Spcification du problme Il vous est demand de raliser un prdicat (qui peut-tre jumeaux/2) darit 2 qui
russit pour tout couple de jumeaux, que ceux-ci fassent partie dune porte de 2, 3, 4, 5 etc enfants multiples.
6) Donnez lanalyse du problme correspondant cette nouvelle dfinition du prdicat.
7) Donner lcriture du prdicat correspondant cette nouvelle dfinition

Exercice 129 Calcul dune fonction par mthode dichotomique (objectifs 5.2.1 et 5.2.2)
La recherche exacte des zros dune fonction est un problme mathmatique parfois trs complexe. Lordinateur fournit
alors une aide prcieuse en trouvant une solution par approximation. La mthode la plus simple est de procder par
dichotomie : on considre la fonction sur un intervalle [a,b] sur lequel on sait que f change de signe (cest dire que
f(a)*f(b) 0). On cherche alors rduire cet intervalle en le coupant en deux et en retravaillant ensuite sur le sous-
intervalle vrifiant encore la proprit de changement de signe. On procde par itration jusqu ce que lon tombe pile
sur le zro de la fonction, ou quon arrive un intervalle dont on juge quil encadre de manire suffisamment prcise le
zro. La valeur infrieure de lintervalle est alors choisie comme approximation du zro de la fonction.

Question On considre une fonction f darit 1dfinie en Prolog laide du prdicat darit 2 f(X,Y) qui russit si
Y = f(X). On demande de raliser un prdicat darit 2 zero(Zero,Min, Max, Seuil) qui donne le zro de cette
fonction su lintervalle [Min,Max] de manire exacte, ou approxime cette valeur avec un cart infrieur Seuil. Le
rsultat tant reprsent par le premier argument du prdicat.
Remarque On suppose que lon dispose pour cet exercice des prdicats prdfinis suivants :
plus(A,B,C) qui russit si C est gal la somme de A et de B
fois(A,B,C) qui russit si C est gal au produit de A et B
div(A,B,C) qui russit si C est gal la division de A par B
inf(A,B) qui russit si A est infrieur B

Exercice 130 Mcano financier (objectifs 5.2.1 et 5.2.2)

Holding financires, participations croises, O.P.A. amicales ou ennemies, intervention de fonds de pensions,... : les
capital des grandes entreprises est de plus en plus complexe et fragment, tel point que le petit actionnaire y perd le
plus souvent ses petits. Dans cet exercice, nous allons nous intresser au monde de la grande distribution, qui a connu
ces dernires annes plusieurs fusions / acquisitions spectaculaires.

47 J-Y Antoine et J. Villaneau


Logique pour linformatique

Promods Guichard Carrefour Chargeurs

18 % 24 % 51 % 7% 100%

Casino

51%

49%
Prisunic Chargeurs_distribution

Nous allons raliser un petit programme qui permettra de rpondre automatiquement a la question essentielle suivante :
qui a le contrle dune socit donne. Pour cela, on tudie le cas faussement artificiel rsum par la figure ci-
dessus.
Ce schma se lit comme suit : la socit Promods dtient 18% du capital de la socit Casino. Les hritiers de
Geoffroy Guichard dtiennent 34 % de la socit Casino, et ainsi de suite.
Remarque : dans cet exercice, on pourra utiliser les prdicats prdfinis suivants :
plus(A,B,C) qui russit si C est gal la somme de A et de B
fois(A,B,C) qui russit si C est gal au produit de A et B
between(A,B,C) qui russit si C est compris entre les valeurs de A et B
1 Reprsentez en Prolog lensemble des faits illustrs sur la figure prcdente. On utilisera pour cela le prdicat
darit 3 action(E1,E2,Part) qui russit si la socit E1 est un actionnaire de la socit E2 qui dtient Part
pour-cents du capital de cette dernire. On normalisera les pourcentages considrs, cest dire que 18% se
reprsentera par exemple par le rel 0,18.
2 Ecrire un prdicat darit 2 filiale(E1,E2) qui russit si la socit E1 est une filiale de la socit E2, cest
dire que cette dernire dtient une partie du capital de la premire. On remarquera que cette dtention de capital
peut-tre indirecte. Par exemple, votre programme doit rpondre par laffirmative la question :
?- filiale(prisu,promodes).
3 Etre actionnaire dune socit, cest bien. En tre lactionnaire majoritaire, cest mieux. Ecrire un prdicat darit 2
controle(E1,E2) qui russit si la socit E1 est un actionnaire majoritaire de la socit E2 (nous dirons quelle
la contrle), ou bien quelle est actionnaire majoritaire dune socit qui contrle la socit E2. Ainsi, votre
programme doit rpondre par laffirmative la question : ?- controle(carrouf,prisu).
Un des intrts de ces prises de participation en cascade est quelles permettent de contrler indirectement une socit
alors quon ne possde rellement quune minorit de son capital. Cest ce type de mcano financier qui permet, par
exemple, la famille Bouygues de contrler peu de frais un immense empire. Nous allons crer de nouveaux
prdicats pour dtecter ce genre de situation.
4 Ecrire un prdicat part_action(E1,E2,P) qui russit si la socit E1 possde en ralit P pour-cents du
capital de la socit E2. Par exemple, la question
?- part_action(carrouf,prisu,P).
votre programme devra rpondre par laffirmative et donner P = 0.2601.
En effet, 51 % * 51 % = 26,01 %
On supposera dfini un prdicat darit 3 fois(A,B,C) qui russit si C est gal la multiplication de A par B.
5 Enfin, crire un prdicat darit 2 bingo(E1,E2)qui russit si la socit E1 contrle la socit E2 tout en ne
possdant pas la majeure partie de son capital.

48 J-Y Antoine et J. Villaneau


Logique pour linformatique

LISTES ET TERMINAISON

Exercice 131 Listes et terminaison (objectif 4.2.4, 5.1.3 et 5.2.3)


On donne le programme Prolog suivant :
efface(X,[X|L],L).
efface(X,[H|L],[H|Leff]) :- efface(X,L,Leff).
Donner la rponse trouve par Prolog chacune des questions suivantes :
a ?- efface(2,[1,2,3,2,4],[1,3,2,4])
b ?- efface(2,[1,2,3,2,4],[1,2,3,4])
c ?- efface(2,[2,3],3)
d ?- efface(X,[1,2,3,2,4],[1,2,3,4])
e ?- efface(2,[1,2,3,2,4],L)
Rponse indicative On a une rponse positive pour toutes les questions sauf dans le cas c).

Exercice 132 Problmes dutilisation (objectif 5.1.2. et 5.1.3)


Nous avons vu quil nexistait pas de mthode infaillible pour dterminer lordre des sous-buts dune clause rcursive.
Cet exercice va prcisment nous donner une illustration flagrante de cette impuissance : souvent, il nexiste dordre
prfrable de sous-buts. Simplement, chaque ordre correspondra une utilisation diffrente du prdicat concern.
a On considre tout dabord le prdicat concat, dfini comme suit en cours :
(1) concat([],L,L).
(2) concat([T|Q],L,[T|QC]) :- concat(Q,L,QC).
Dterminez les modes dutilisation de ce prdicat.
b On considre maintenant le prdicat inverse (cf exercice 2-5). En fait, on peut dfinir ce prdicat de deux manires
diffrant uniquement par lordre des sous-buts de la clause rcursive :
(1) inverse([],[]).
(2) inverse([T|Q],L) :- inverse (Q,QR), concat(QR,[T],L).

(1) inverse([],[]).
(2) inverse([T|Q],L) :- concat(QR,[T],L), inverse (Q,QR).
Dterminez les modes dutilisation du prdicat, pour les deux dfinitions. Conclusions ?
Rponse indicative Les deux critures se diffrencient par les modes dutilisation (-,+) et (+,-).

Exercice 133 Les Zuns et les Zotres (20' ; objectifs 5.2.3 et 5.2.4.)
Sur une plante loigne rgne Jeanmari Ier, le roi-despote des Zuns. Ce peuple belliqueux voue une haine sculaire aux
Zotres, des trangers nayant pas comme eux trois yeux, six antennes et la peau verte. Une loi ayant impos aux Zotres
de porter un nom comportant au moins un z , le roi Jeanmari Ier a demand ses plus grands scientifiques de lui
produire un programme Prolog permettant de dtecter automatiquement tout nom Zotre, chaque nom tant reprsent
par une liste de lettres.
Aprs des annes de recherche, le Haut-Comit Scientifique Zun propose le programme suivant : le prdicat darit 2
type(Nom,Type) doit tre vrai si et seulement si le nom (rdig uniquement en caractres minuscules) correspond un
patronyme rserv au type (Zun ou Zotre) adquat.
(1) type( [ z |_] , zotre).
(2) type( [_|Q] , Type ) :- type(Q,Type).
(3) type( [] , zun ).
1 Donnez les modes dutilisation de ce programme, cest--dire ici les modes pour lesquels le programme ne boucle
pas, quil donne une rponse correcte ou errone. Justifiez votre rponse.
2 Il semble que le programme propos ne soit pas correct. Afin de vous en persuader, donnez les arbres de rsolution
correspondant aux questions ci-dessous. Conclusions ?

49 J-Y Antoine et J. Villaneau


Logique pour linformatique

a) ?- type([ j ,O], Type).


b) ?- type([ z , u , t ], Type).
c) ?- type([ z , u , n ], zun ).
Craignant le courroux de leur roi, les scientifiques proposent alors en dsespoir de cause trois programmes alternatifs
(diff/2 est un prdicat darit 2, suppos prdfini, qui russit si ses deux arguments ne sont pas unifiables) :
Programme 1 (1) type( [] , zun ) .
(2) type( [T|Q] , Type ) :- type(Q,Type).
(3) type( [ z |_] , zotre).
Programme 2 (1) type( [ z |_] , zotre) .
(2) type( [T|Q] , Type ) :- diff(T,z), type(Q,Type).
(3) type( [] , zun ) .
Programme 3 (1) type( [] , zun ) .
(2) type( [T|Q] , Type ) :- diff(T,z), type(Q,Type).
(3) type( [ z |_] , zotre).
3 Identifiez, parmi ces quatre propositions, les programmes incorrects. Justifiez vos rponses.

Exercice 134 Le programme inconnu : modes dutilisation et terminaison (contrle 1999-2000 ; 25' ;
objectif 5.1.2., 5.2.2. et 5.2.4.)
On considre le programme inconnu suivant :
(1) diwezh([T], T, []).
(2) diwezh([T|Q], S, [T|R]) :- diwezh(Q, S, R).

1 Donnez les arbres de rsolution complets correspondant aux questions suivantes :


1) ?- diwezh([], X, Y).
2) ?- diwezh([1,2,3], X, Y).
2 Dduisez de la question prcdente le rle du prdicat diwezh. Donnez ses modes dutilisation.
Indication En breton : diwezh = fin en franais.
3 On dsire maintenant utiliser diwezh pour programmer un second prdicat qui ralise linversion tte-queue des
lments dune liste. Toujours factieux, lenseignant propose trois critures de ce prdicat :
Programme A (1a) renverse([], []).
(2a) renverse(L, [T|QR]) :- renverse(QL,QR), diwezh(L,T,QL).
Programme B (1b) renverse([], []).
(2b) renverse(L, [T|QR]) :- diwezh(L,T,QL), renverse(QL,QR).
Programme C (1c) renverse(L, [T|QR]) :- diwezh(L,T,QL), renverse(QL,QR).
(2c) renverse([], []).
Donnez, en justifiant vos rponses, les modes dutilisation de chacun de ses programmes.
4 En rgle gnrale (liste de longueur quelconque) quel est le programme le plus efficace entre B et C ? Justifiez
votre rponse.

Exercice 135 Un autre programme inconnu : modes dutilisation et terminaison (40' ; objectif 5.1.2.,
5.2.2. et 5.2.4.)
Premier prdicat (contrle continu) Dans tout ce problme, on considrera le programme (inconnu) suivant :
(1) dre_holl([],X,[]).
(2) dre_holl([T|Q],X,[T,X|QD]) :- dre_holl(Q,X,QD).
(3) dre_holl([T|Q],X,[T |QD]) :- dre_holl(Q,X,QD).
1 Donnez les arbres de rsolution correspondant aux questions suivantes :
1) ?- dre_holl([1,2,3],2,[1,2,2]).
2) ?- dre_holl([1,2],3,X).
2 Quel est le rle du prdicat dre_holl/3 :
Indication En breton : dre-holl = partout en franais.
3 Quel sont les modes dutilisation du prdicat dre_holl/3 (cochez les modes dutilisation corrects) :

50 J-Y Antoine et J. Villaneau


Logique pour linformatique

(+,+,+) (+,+,-) (-,+,+) (-,+,-)


(+,-,+) (+,-,-) (-,-,+) (-,-,-)
4 Donnez la rponse la question suivante :?- dre_holl([[1,2],[3,4]],3, X).
5 On redfinit le prdicat en plaant en dernier les clauses non rcursives du programme.
(1) dre_holl([T|Q],X,[T,X|QD]) :- dre_holl(Q,X,QD).
(2) dre_holl([T|Q],X,[T |QD]) :- dre_holl(Q,X,QD).
(3) dre_holl([],X,[]).
Quels sont alors les modes dutilisation du prdicat ainsi redfini .

Second prdicat (contrle de septembre) Dans tout ce problme, on considrera le programme (inconnu) suivant :
(1) dizurzh([],[]).
(2) dizurzh([X,Y,Z |Q],[X,Z,Y|QG]) :- dizurzh(Q,QG).
(3) dizurzh([X,Y,Z |Q],[Y,X,Z|QG]) :- dizurzh(Q,QG).
(4) dizurzh([X,Y,Z |Q],[Y,Z,X|QG]) :- dizurzh(Q,QG).
1 Donnez les arbres de rsolution complets correspondant aux questions suivantes :
1) ?- dizurzh([1,3,2,4,5,6],[1,2,3,4,5,6]).
2) ?- dizurzh([1,1,1],X).
2 Quel est le rle du prdicat dizurzh/3 ?
Indication En breton : dizurzhl = dsordre en franais.
3 Quel sont les modes dutilisation du prdicat dizurzh/3 ?
4 Donnez la rponse du programme prcdent aux questions suivantes. Commentaires ?
1) ?- dizurzh([1,2,3,4],X).
2) ?- dizurzh([1,2,3,4,5],X).
5 Modifiez les cas darrts du programme pour viter les problmes observs la question prcdente.
6 Donnez alors la rponse du programme prcdent la question suivante :
?- dizurzh([[1,2,3]],X).

PROGRAMMATION AVEC LISTES

Exercice 136 Quelques prdicats lmentaires (objectif 5.2.4.)


1 Sans utiliser le prdicat concat, crire le prdicat ajout_en_fin(X,Ls,LsX) vrai si et seulement si LsX est la
liste obtenue en ajoutant l'lment X en queue de la liste Ls.
2 Ecrire un prdicat longueur(Ls,Long) vrai si et seulement si Long est le nombre d'lments de la liste Ls
(utiliser plus(X,Y,Z)). Faire l'arbre de rsolution du but : ?- longueur([1,2,3],N).
3 Ecrire le prdicat double(L,LL) vrai si et seulement si LL la liste L dont on aurait doubl tous les lments.
4 Ecrire le prdicat inverse(L,R), vrai si et seulement si R correspond la liste L renverse. En dduire le
prdicat palindrome(L) qui est vrai pour tout p alindrome (mot ou phrase) reprsent sous par la liste L des lettres
qui le compose.
5 Ecrire le prdicat adjacent(X,Y,L) vrai si et seulement si X et Y sont deux lments qui se suivent dans L.

Exercice 137 Manipulation de listes et arithmtique (objectif 5.2.4.)


Dans cet exercice, on suppose que lon dispose des prdicats prdfinis suivants :
plus(A,B,C) qui russit si C est gal la somme de A et de B
fois(A,B,C) qui russit si C est gal au produit de A et B
inf(A,B) qui russit si A est infrieur B

51 J-Y Antoine et J. Villaneau


Logique pour linformatique

1 Raliser un prdicat darit 2 somme(L,Somme) qui russit si Somme correspond la somme des lments de la
liste L.
2 Raliser un prdicat darit 3 somsign(L,SPlus,SMoins) qui calcule les sommes SPlus et SMoins
respectivement des lments positifs et ngatifs de la liste L.
3 Raliser un prdicat darit 3 somspond(LVal,LPoids,Somme) qui russit si Somme est la somme des lments
de la liste Lval pondrs par les valeurs correspondantes de la liste Lpoids. Les 2 listes sont donc de mme longueur.

Exercice 138 Prfixes et suffixes (objectif 5.2.4.)


1 On demande d'crire de deux manires diffrentes (directement et en utilisant le prdicat concat de concatnation
de listes) les prdicats suivants:
prefixe(Prefs,Liste) vrai si et seulement si la liste Prefs est un prfixe de la liste Liste
suffixe(Suffs,Liste) vrai si et seulement si la liste Suffs est un suffixe de la liste Liste

2 Construire l'arbre de rsolution des buts prefixe(P,[1,2,3]) et suffixe(L,[1,2]) pour chaque criture.
3 Ecrire 3 versions du prdicat sous_liste(Sls,Ls) vrai si et seulement si Sls est une sous liste de la liste Ls:
a) en utilisant prdicats prefixe et suffixe de la premire question.
b) en utilisant uniquement le prdicat prefixe.
c) en utilisant le prdicat concat.
Quelle est l'criture la plus efficace ? Pour vous aider rpondre, vous pouvez si ncessaire comparer les arbres de
rsolution de sous_liste(Sls,[1,2]) avec ces diffrentes critures.
4 Mmes questions avec le prdicat dernier(X,Ls) qui russit ssi X est le dernier lment de la liste Ls.

Exercice 139 Entre parenthses (30 ; objectif 5.2.4.)


On se propose d'tudier des expressions arithmtiques composes exclusivement d'entiers et des deux oprateurs + et *,
dans lesquelles les parenthsages sont compltement explicits. Par exemple, on veut crire (3+(4*5))*6 et non pas
lcriture simplifie (3 + 4*5)* 6 utilisant la connaissance des priorits entre oprateurs + et *.
On modlise ce type dexpression par une liste o p reprsente une parenthse ouvrante et q une parenthse fermante.
L'expression donne en exemple est donc modlise par la liste [p,3,+,q,4,*,5,q,q,*,6].
Question 1 Ecrire un prdicat darit 2 nb_ouvrantes(L,NbO) o Nb0 est le nombre de parenthses ouvrantes de
l'expression. Ecrire un prdicat quivalent nb_fermantes(L,NbF) pour les parenthses fermantes.
Question 2 En dduire l'criture du prdicat nb_parentheses(Exp) qui russit si et seulement si l'expression Exp
a le mme nombre de parenthses ouvrantes et fermantes.
Question 3 Ecrire le prdicat sous_liste(S,L) vrai si et seulement si la liste F est une sous-liste de la liste L au
sens des sous-expressions de la liste reprsentant lexpression arithmtique complte.
Question 4 Ecrire le prdicat valeur(Expr,N) o N est l'entier qui correspond l'valuation de l'expression
arithmtique que reprsente la liste Expr.
Indication Une mthode possible est de remplacer rcursivement des sous-listes de l'expression par leur valeur.

Exercice 140 Un t de canicule (45 ; objectif 5.2.4.)


Par del la question de la responsabilit du gouvernement dans la gestion de la canicule qua connu la France lors de
lt 2003, un autre dbat anime aussi bien la communaut scientifique que le monde politique : cet pisode de grandes
chaleurs a-t-il pour origine le rchauffement de la plante ? Les climatologues rappellent juste titre que les accidents
mtorologiques exceptionnels ne sont pas ncessairement reprsentatifs du climat. 1921 reste ainsi lanne la plus
sche du XX sicle, de mme que les pics de chaleurs de lt 1947 font toujours rfrence. Il nempche que, depuis
une dizaine dannes, la plupart des indicateurs mtorologiques se mettent au rouge et montrent que nos activits
polluantes ont bien un effet sans prcdent sur le climat plantaire.

Dans cet exercice, nous allons raliser un ensemble de prdicats logiques permettant le calcul de ces indicateurs. A
chaque fois, on effectuera lanalyse du problme tudi avant de donner la traduction en Prolog du prdicat. On suppose

52 J-Y Antoine et J. Villaneau


Logique pour linformatique

que lon dispose des prdicats suivants :


sup(Sup,Inf) est vrai si Sup est un nombre suprieur Inf. Mode dutilisation : (+,+)
plus(A,B,APB) est vrai si APB = A + B. Modes dutilisation : (+,+,+) et (+,+,-)
div(A,B,Q) est vrai si Q, nombre rel, est gal A divis par B. Modes dutilisation : (+,+,+) et (+,+,-)
Reprsentation des connaissances Cet exercice porte sur les relevs de tempratures journalires moyennes
(exprimes en degrs Celsius) de la plante, observes tout au long dune anne. Ces connaissances sont dfinies laide
du prdicat releve/2 :
releve(An,Temp) est vrai si Temp est la liste des tempratures releves chaque jour au cours de lanne An.
Le recours une liste pour Temp est ncessaire du fait du nombre variable de jours dans une anne (annes bissextiles),.
1) Une temprature est qualifie de caniculaire si elle dpasse les 35 C. Certains climatologues prvoient que le
nombre de jours de canicule dans lhexagone sera multipli par 5 dici la fin du XXI sicle du fait de leffet de
serre. On demande de crer un prdicat Nb_canicule(An,Nb_Jours) qui russit si Nb_Jours est le nombre de
jours caniculaires durant lanne An. Ce prdicat devra fonctionner en mode (+,+) et (+,-).
2) Les modifications du climat pourraient avoir dautres effets inattendus. Par exemple, on redoute que la fonte des
calottes polaires ne modifie lquilibre des courants ocaniques. La France ne bnficierait ainsi plus du climat
tempr d au Gulf Stream, mais pourrait connatre au contraire des hivers aussi rigoureux que ceux du Qubec,
qui est situ notre latitude. Pour observer ce phnomne, on aimerait contrler le nombre de jours de gels au
cours dune anne. On demande donc de crer un prdicat Nb_gel(An,Nb_Jours) qui russit si Nb_Jours est le
nombre de jours de lanne An o la temprature a t infrieure 0 C. Ce prdicat devra fonctionner en mode
(+,+) et (+,-).
3) Si 1947 reste en moyenne lanne qui a connu les pics de chaleurs les plus levs, certaines villes ont nanmoins
battu ce record cette anne. On demande donc de crer un prdicat Max(An,TempMax) qui russit si TempMax
correspond au maximum de temprature moyenne observ durant lanne An. Ce prdicat fonctionnera en mode (+,
+) et (+,-).
4) Lindicateur le plus fiable de laugmentation des tempratures reste la temprature moyenne au cours de lanne.
On demande de crer un prdicat Moy(An,Temp) qui russit si TempMax est la temprature moyenne observe
durant toute lanne An. Ce prdicat fonctionnera en mode (+,+) et (+,-).

Exercice 141 Casse-tte : constitution des groupes de TP (objectif 5.2.4.)


Chaque anne, la constitution des groupes dinformatique est un vrai casse-tte l'universit. Le secrtariat de lUFR
Sciences a ainsi tabli plusieurs listes correspondant chacun des groupes constitus, ainsi quune liste regroupant
lensemble des tudiants inscrits. Personne nest cependant sr que ces listes sont compltes et cohrentes entre elles.
Nous allons crire diffrents prdicats afin de rpondre ces questions.
1 Prdicat non_disjoint : efficacit
Dans un premier temps, on dsire savoir si les groupes sont cohrents, cest dire quils ne possdent pas dlves en
commun. On dfinit alors le prdicat non_disjoint(L1,L2) qui russit si au moins un lve a t plac dans les
deux groupes.
Donnez une criture de ce prdicat.
2 Prdicats intersect et reunion : mode dutilisation
On dsire maintenant savoir quelle est la listes des tudiants qui sont effectivement dans plusieurs groupes, et si
lensemble des tudiants de deuxime anne est bien runis dans ces groupes. Pour cela :
a Ecrivez deux prdicats inter(L1,L2,L) et reunion(L1,L2,L) qui russissent si la liste L est respectivement
lintersection et la runion des ensembles dlves correspondants aux listes de groupe L1 et L2.
b Prcisez, en justifiant votre rponse, quels sont les modes dutilisation de ces prdicats.

Exercice 142 Damour belle marquise vos beaux yeux me font mourir... (objectif 5.2.4.)
On dsire raliser un prdicat qui, linstar de Molire, donne toutes les permutations possibles au sein dune liste L de
mots (ou de tout autre chose). Pour cela, nous allons tout dabord crire quelques prdicats intermdiaires.
1 Construire le prdicat inserer(X,L,LX) qui russit si la liste LX correspond la liste L, dans laquelle on a insr

53 J-Y Antoine et J. Villaneau


Logique pour linformatique

llment X un endroit quelconque.


2 Construire le prdicat supprimer(X,LX,L) qui russit si la liste L correspond la liste LX laquelle on aurait
enlev un lment quelconque X.
3 Construire de plusieurs manires diffrentes le prdicat permut(X,Y) qui russit si la liste X correspond une
permutation quelconque de la liste Y. Par exemple :
?- permut([d amour,belle marquise,vos beaux yeux,me font mourir], X).

X =[belle marquise,vos beaux yeux,me font mourir,d amour]).


Yes
4 Votre programme ne boucle-t-il pas dans certains cas ? Construisez larbre de rsolution Prolog de quelques
questions bien choisies pour le vrifier.

Exercice 143 Bienvenue lle des Pairs (Contrle 2002-2003, 20) ; objectif 5.2.4.)
Au cours de nos TD de logique, nous nous sommes souvent aventurs sur les les des Purs et des Pires. Ici, nous nous
trouvons sur le royaume de Dubble-Dubble, le roi siamois de lle des Pairs o tout marche par deux. Ne supportant pas
la vue de nombre impairs, ce terrible despote vous demande de raliser un programme qui ne conserve dans toute liste
de nombres que la liste des nombres pairs la composant. Par exemple [1,5,6,9,4,8] donnera en rponse [6,4,8]. Saurez-
vous relever ce dfi, ou serez-vous condamn subir le supplice du ddoublement de personnalit ?
a Donnez lanalyse de ce problme. On prcisera en particulier le dcoupage prdicatif envisag pour raliser le
programme.
b Donnez le programme Prolog correspondant. On pourra utiliser si ncessaire les prdicats plus/3 et between/3
de SWI-Prolog, en prenant garde leur modes dutilisations.

PROBLEMES

Exercice 144 Mythe ou ralit ? (45 environ ; objectifs 5.2.1, 5.2.2)

Dans les temps reculs o Zeus, assembleur des nues chant par Homre, rgnait sur lOlympe, deux hros
querelleurs, Atlas et Hercule, navaient de cesse de comparer leur force. Afin de les dpartager une fois pour toutes, le
fils de Cronos leur proposa alors un dfi : supporter la plus grande tour dtres humains monts les uns sur les autres.
Grande tait la force de nos deux hros. Si grande que douze aurores nauraient suffit compter le nombre dhommes
supports par chacun. Assise auprs de Zeus, Hra au trne dor lui conseilla alors de raliser un programme Prolog
pour laider dans ce dcompte. Malheureusement, les Dieux de lOlympe ont eux aussi leurs faiblesses, et jamais Zeus
ne fut en mesure de satisfaire Hra. 3000 ans plus tard, saurez-vous surpasser le terrible assembleur des nues et
enfin raliser ce programme ?
Reprsentation des connaissances Les tours humaines seront dcrites homme par homme, laide du prdicat
darit 2 sur(X,Y) qui est vrai si X supporte directement Y sur ses paules. Par ailleurs, on dfinira des prdicat
darit1 base(X) et sommet(X) qui sont vrais si et seulement si X est la base (resp. au sommet) de la tour
humaine. Lhomme la base supportant donc entirement la tour.
On suppose la pyramide dj compltement dcrite, laide dune succession de faits. Par exemple :
base(atlas).
base(hercule).
sur(atlas,menelas).
sur(menelas,achille).
sur(achille,hector).
......
sommet(prias).
sommet(patrocle).
On demande dcrire un prdicat darit 3 gagnant(Heros1,Heros2,Gagnant) qui tant donn deux Hros
supportant une tour humaine, donne le plus fort des deux, au sens de celui qui supporte le plus grand nombre
dhommes. Ce prdicat devra tre utilisable en mode (+,+,-). La mise en oeuvre de ce prdicat peut bien entendu
supposer la dfinition dautres sous-prdicats.
Question 1 : dcoupage prdicatif On demande de donner le dcoupage prdicatif du programme attendu, cest--
dire de donner lensemble des prdicats ncessaires sa ralisation, en prcisant pour chacun :

54 J-Y Antoine et J. Villaneau


Logique pour linformatique

- son rle,
- son arit,
- le rle de ses arguments,
- les modes dutilisation de ce prdicat dans le programme.
Question 2 : programmation Donner maintenant le programme complet correspondant ce dcoupage.
Question 3 : amlioration En ralit, les prdicats base/1 et sommet/1 peuvent tre dfinis partir du
prdicat sur/2 : une personne la base nest en effet sur personne, de mme que celle au fate de la tour ne
supporte personne. Donnez donc une nouvelle criture de ces prdicats, remplaant leur dfinition prcdente sous
forme de listes de faits.
3 Votre prdicat termine-t-il toujours ? Pour rpondre cette question, donnez l'arbre de rsolution correspondant
aux questions ci-dessous. Conclusion : quel est le problme ?
?- allies(france,russie).
?- allies(france,ru).

4 Une solution pour viter les bouclages constats ci-dessus est de mmoriser dans une liste les pays dj considrs
lors de la recherche d'alliance et d'interdire toute reconsidration de ces pays dans la poursuite de la recherche. On
attribue ainsi une arit 3 au prdicat d'alliance : allies(X,Y,L) russit si X et Y sont allis, la liste L correspondant
aux pays considrs pour tablir cette alliance.
a) Comment reformule-t-on les buts de la question 3 ?
b) Recrire le prdicat en tenant compte de cette modification.
Mme si les considrations gopolitiques de l'Autriche Hongrie taient tournes ailleurs, l'origine de la guerre porte sur
son conflit avec la Serbie. Dans le programme, cn dcrit cet tat par le fait :
est_ennemi(autriche_hongrie,serbie).

5 La logique militaire se rsume en un seul axiome : les ennemis de mes amis sont mes ennemis, et rciproquement...
Ecrire un prdicat ennemi qui russit pour tout pays X et Y membres respectivement des 2 alliances opposes. L
encore, il faudra tenir compte des ventuels bouclages intempestifs

55 J-Y Antoine et J. Villaneau

You might also like