OCaml (option informatique) · Chapitre 17 · Exercice de TD
Substitution
Logique propositionnelle · niveau 3 (difficile)
Énoncé
Écrire substitue f x g : la formule obtenue en remplaçant chaque occurrence de Var x par la formule g dans f.
Corrigé
let rec substitue f x g =
match f with
| Var i -> if i = x then g else Var i
| Non h -> Non (substitue h x g)
| Et (a, b) -> Et (substitue a x g, substitue b x g)
| Ou (a, b) -> Ou (substitue a x g, substitue b x g)
Récursion sur la structure : on descend dans la formule et l'on remplace les feuilles Var x par g, en reconstruisant un nouvel arbre (les formules sont immuables). La substitution est l'opération de base de la réécriture de formules.
Exercices semblables
- Tautologie corrigé
- Nombre de modèles corrigé
- Équivalence corrigé
- Implication et contraposée corrigé
- Trouver un modèle corrigé