Université Paris Diderot – Sémantique computationnelle – 2016/17 TP no1
Interprétation d’une formule dans un modèle
L’objectif de ce TP est de réaliser un programme qui, étant donné un modèle et une
formule de logique des prédicat, détermine avec la méthode des affectations la valeur de
vérité de la formule.
1. Analyse syntaxique de la formule En utilisant ply, et en s’inspirant du modèle
donné en exemple pour la logique des propositions, on fera en sorte d’analyser
syntaxiquement toutes les formules bien formées (complètement parenthésées) de la
logique des prédicats, en prévoyant la notation Pab pour P(a, b).
2. Construction d’une représentation Pour simplifier l’évaluation, on construit au
cours de l’analyse une représentation arborescente de la formule. Par exemple, la
formule x((P x Cjx)→ ∃y(By Ajxy)) pourrait être représentée par l’arbre
suivant :
univ
ximpl
conj
pred
P
var
x
pred
Q
cte
j
var
x
exists
yconj
pred
B
var
y
pred
A
cte
j
var
x
var
y
Ce qui peut donner le tuple python :
(’univ’, ’x’, (’impl’, (’conj’, (’pred’, ’P’, [(’var’, ’x’)], (’pred’, ’C’, ...)))))
3. Evaluation de la formule On suppose qu’on charge en mémoire un dictionnaire
représentant le modèle en faisant appel à la fonction monte_modele(). Il faut définir
une fonction valuation(f) qui prend en entrée une formule, et évalue la valeur de
cette formule par rapport au modèle (traité comme une variable globale).
4. Boucle de test Le canevas est prévu pour comporter une boucle de test qui charge
des formules placées dans un fichier séparé (formules.txt).
1 / 1 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !