Introduction au λ-calcul (où l'on se familiarise avec la syntaxe et la réduction des λ-expressions)
I Syntaxe
Pour chacune des λ-expressions suivantes :
Déterminer s'il s'agit d'un terme, d'une abstraction ou d'une application,
et faire de même pour toutes les sous-expressions.
Indiquer s'il est possible d'en donner une interprétation simple en terme de fonction.
Si oui, laquelle ?
Oter les parenthèses inutiles, puis parenthèser complètement.
λ x . (x 3)
λ x . (λ y . (+ x 3))
λ x . λ y . λ z . ((* (+ 3 x) y) z) 5 π
λ f . (* (+ 3 2) 5)
λ a . (a λ b . (ba))
λ x . λ y . λ z . ((zx) (zy))
(λ f . λ g . (λ h . (gh) f) λ p . λ q . p)
λ e . λ i . λ o . λ u . (u (o (ie)))
(λ p . (λ q . p λ x . (xp)) λ i . λ j . (ji))
II Réduction
Réduire les λ-expressions suivantes en utilisant la b-conversion généralisée:
λ a . λ b . (+ ab) 5
λ x. (+ xx) (λ y . yz)
λ c . λ v . λ f . ((cv) f) λ x . λ y . x
(λ x . λ y . (yx) λ p . λ q . p) λ i . i
((λ x . λ y . λ z . ((xy) z) λ f . λ a . (fa)) λ i . i) λ j . j
λ h .((λ a . λ f. (fa) h) h) λ g . (gg)
(λ p . λ q . (pq) (λ x . x λ a . λ b . a)) λ k . k
((λ f. λ g .λ x .(f (gx)) λ s . (ss)) λ a . λ b . b) λ x . λ y . x
λ n . λ f . λ x . (f (nfx)) λ f . λ x . (fx)
On donne les noms
ID (identity), AP (apply) et APS (self-apply)
aux λ-expressions, respectivement, λ x . x, λ f . λ a . (fa) et λ s . (ss).
Réduire les λ-expressions suivantes: