2017-01-26 4 views
2

J'ai suivi le calcul lambda et je veux savoir à la réduction bêta de celui-ci.Beta réduction de certains lambda

Le lambda est:

λxy.xy 

Je suppose, qu'il ne peut pas faire bêta réduire parce qu'il n'y a pas de substitution et le x est lié au corps.

Mon hypothèse est-elle exacte?

+2

Oui. Vous pouvez seulement eta réduire ici. – Alec

+0

Qu'est-ce que ETA réduire? –

+1

On dirait qu'il est plus communément connu sous le nom de [eta _conversion_] (https://en.wikipedia.org/wiki/Lambda_calculus#.CE.B7-conversion) – Alec

Répondre

4

Vous ne pouvez pas appliquer la réduction bêta (ce qui est probablement ce que vous cherchez). La bêta-réduction ne peut être appliquée qu'aux applications de fonction (et même pas dans tous les cas).

Vous pouvez appliquer une conversion eta, qui transforme & lxfx à f lorsque x n'apparaît pas librement dans f. Ensuite, vous pouvez convertir votre expression:

& lambda; xy.xy = & lambda; x & lambda; y.xy → η & lambda; x.x (= I)..

+0

désolé je ne peux pas vous suivre. Que signifie la conversion d'eta? Pouvez-vous s'il vous plaît me montrer un exemple très simple? Que signifie (= I)? –

+2

@zero_coding La conversion d'Eta signifie simplement que si une abstraction applique seulement une expression constante f à son argument x (c'est-à-dire '\ x.fx', si f ne contient pas x) alors cette abstraction est équivalente à f elle-même. L'abstraction ne contient que des boîtes f/vers l'avant x, donc elle peut être supprimée. – Keelan

+0

Merci beaucoup bro. –