Adloun

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

Le cours du chapitre · Tous les exercices du chapitre