lambda kalkül

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

lambda kalkül
Hi
wie kann ich das Loesen
Aufgabe 6 b 29. Juli 2008 Klausur
( X Y . ( Z X . X Z Y )( Z . X Z)( Y X . Y Z))

Danke


->(Alpha-Konversion) ( \ x y . ( \ z x' . x' z y)( \ z . x z)(\ y x .y z))
-> (Beta-Konversion) ( \ x y . ( \ x' . x' (\z . x z) y )(\ y x . y z))
-> (Beta-Konversion) ( \ x y . ( \ y x . y z) (\ z . x z) y ))
->(Alpha-Konversion) ( \ x y . ( \ y x'' . y z ) (\ z . x z ) y ))
-> (Beta-Konversion) ( \ x y . ( \ x'' . (\ z . x z) z ) y )
-> (Beta-Konversion) ( \ x y . ( \z . x z ) z )
-> (Beta-Konversion) ( \ x y . x z )

Hoffe ich hab mich nicht vertan… wie das Lambda-Kalkül an sich funktioniert, hast du verstanden?


Ist der zweite Schritt richtig? Weil davor ist das x in (\z . x z) an das vorderste x gebunden, danach aber an das zweite x. Ich denke da brauchst du noch eine Alpha-Konversion. Ich versteh auch nicht wie du danach weitermachst, muesste das y nicht an Stelle des x eingesetzt werden?

Ich hab das so:

→α (λ x y . (λ z a . a z y) (λ z . x z) (λ y x . y z))
→β (λ x y . (λ a . a (λ z . x z) y) (λ y x . y z))
→β (λ x y . (λ y x . y z) (λ z . x z) y)
→α (λ x y . (λ y a . y z) (λ z . x z) y)
→β (λ x y . (λ a . (λ z . x z) z) y)
→β (λ x y . (λ z . x z) z)
→β (λ x y . x z)

Schau dir die Vorlesungsfolien nochmal genau an. Lambda-Kalkuel ist eigentlich ueberhaupt nicht schwer, einfach nur einsetzen und vorher schauen, dass du keine Parameter bindest, die vorher frei sind (notfalls eine Alpha-Konversion zu viel machen).


Stimmt, du hast Recht, das habe ich übersehen, dass man das noch umbenennen sollte.
Und ja, danach wird das y für das x’’ eingesetzt… ich hab’s richtig gedacht, aber falsch abgeschrieben :wink:


keine Sorge ich habe es schon gemacht , ich wollte wissen ob meine Loesung richtig war :slight_smile:

lambda kalkül ist nicht einfach zumindest fuer mich :stuck_out_tongue:


Müsste man hier nicht entweder erst ((λ z . x z) y) auflösen oder, wenn man so einsetzt wie du, ((λ z . x z) y) zumindest als einen einzigen Parameter betrachten?


Nein. “(λ a . a (λ z . x z) y)” ist die Funktion, “(λ y x . y z)” ist der Parameter und wird im naechsten Schritt fuer a eingesetzt.

“((λ z . x z) y)” darfst du nicht aufloesen, da die aeusseren Klammern da gar nicht da sind! Da steht nur “a (λ z . x z) y”.


alles übungssache, wenn du mal 3-4 selbstständig gelöst hast solltest du das ganze eigentlich im schlaf können


wenn man sich mit den klammern nicht vertut xD


Alles klar, vielen Dank.


Danieru du hast recht :wink: