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.
->(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
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?