Exercices série 6, corrigé
Lambda-calcul, fondations
- Lorsque cela est possible, appliquez la règle de lambda-conversion aux expressions suivantes:
Rappel:
- $x, y$ sont des variables d’individus
- $a, b$ sont des constantes d’individus
- $P, Q, X$ sont des variables de prédicats unaires (ne prenant qu’un argument)
- $R$ est une variable de prédicat binaire (prenant deux arguments)
- $femme$ et $mortelle$ sont des constantes de prédicats unaires.
- $[\lambda x. x](a) \equiv a$
- $[\lambda P. P](femme) \equiv femme$
- $[\lambda x. P(x)](a) \equiv P(a)$
- $[\lambda x. P(x)]$
- $[\lambda y. \lambda x. R(y,x)](a) \equiv \lambda x. R(a,x)$
- $[\lambda x. R(y,a)](b) \equiv R(b,a)$
- $[\lambda P. \exists x. P(x)](femme) \equiv \exists x. femme(x)$
- $[\lambda P. \forall x. P(x)](mortelle) \equiv \forall x. mortelle(x)$
- $\lambda x. \neg mortelle(x)$
- $[\lambda P. \lambda x. \neg P(x)](mortelle) \equiv \lambda x. \neg mortelle(x)$
- $[\lambda x. \neg mortelle(x)](a) \equiv \neg mortelle(a)$
- $[\lambda Q. \forall x. [femme(x) \rightarrow Q(x)]](mortelle) \equiv \forall x. [femme(x) \rightarrow mortelle(x)]$
- $[\lambda P. \lambda Q. \forall x. [P(x) \rightarrow Q(x)]](femme) \equiv \lambda Q. \forall x. [femme(x) \rightarrow Q(x)]$
- $[\lambda P. \lambda Q. \forall x. [P(x) \rightarrow Q(x)]](femme)(mortelle) \equiv \forall x. [femme(x) \rightarrow mortelle(x)]$
- $[\lambda x. P(x) \land Q(x)](a) \equiv P(a) \land Q(a)$
- $[\lambda x. \lambda y. [R(y,a) \land Q(x)]](a)(b) \equiv R(b,a) \land Q(a)$
- $[\lambda x. a] (b)$
- $[\lambda x. [P(x) \rightarrow \exists x. R(b,x)]](a) \equiv P(a) \rightarrow \exists x.R(b,x)$
- $[\lambda Q. \forall x. [mortelle(x) \rightarrow Q(x)]](\lambda x. [mortelle(x)]) \equiv \forall x. [mortelle(x) \rightarrow mortelle(x)]$
- $[\lambda Q. \exists P. \forall x. [P(x) \rightarrow Q(x)]](mortelle) \equiv \exists P. \forall x. [P(x) \rightarrow mortelle(x)]$
- $[\lambda P. \lambda x. \neg P(x)](\lambda x.mortelle(x)) \equiv \lambda x. \neg mortelle(x)$
- $[\lambda P. \lambda x. P(x)](\lambda x.[\neg mortelle(x)]) \equiv \lambda x. \neg mortelle(x)$