117
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών Τμήμα Πληροφορικής και Τμήμα Πληροφορικής και Τηλεπικοινωνιών Τηλεπικοινωνιών 1 Κεφάλαιο 10 Λάμβδα λογισμός Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης

Κεφάλαιο 10 Λάμβδα λογισμός

  • Upload
    azana

  • View
    52

  • Download
    0

Embed Size (px)

DESCRIPTION

Κεφάλαιο 10 Λάμβδα λογισμός . Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης. Ιστορική εξέλιξη λ-λογισμού - 1. Αναπτύχθηκε αρχικά από τον Alonzo Church στις αρχές της δεκαετίας του 1930, πολύ πριν αρχίσουν να χρησιμοποιούνται οι ηλεκτρονικοί υπολογιστές. - PowerPoint PPT Presentation

Citation preview

Page 1: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 11

Κεφάλαιο 10 Λάμβδα λογισμός

Προπτυχιακό μάθημαΑρχές Γλωσσών Προγραμματισμού

Π. Ροντογιάννης

Page 2: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 22

Ιστορική εξέλιξη λ-λογισμού - 1

Αναπτύχθηκε αρχικά από τον Alonzo Church στις αρχές της δεκαετίας του 1930, πολύ πριν αρχίσουν να χρησιμοποιούνται οι ηλεκτρονικοί υπολογιστές.

Ήταν μέρος μιας γενικότερης θεωρίας με στόχο τη θεμελίωση μαθηματικών και λογικής [Chur32, Chur33]

Page 3: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 33

Ιστορική εξέλιξη λ-λογισμού - 2

H γενική θεωρία ήταν ασυνεπής, όπως αποδείχθηκε αργότερα [Klee35]

Το τμήμα της, που ασχολήθηκε με συναρτήσεις είχε σημαντικές εφαρμογές στην πληροφορική, κυρίως μετά το 1960

Το τμήμα αυτό είναι ο λάμβδα λογισμός ή λ-λογισμός

Page 4: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 44

λ-Λογισμός Πλήρες υπολογιστικό μοντέλο Δύο πολύ σημαντικά αποτελέσματα

– Όλες οι αναδρομικές συναρτήσεις παριστάνονται στο λ-λογισμό [Klee35]

– Ως υπολογιστικό μοντέλο, ο λ-λογισμός είναι ισοδύναμος με τη μηχανή Turing [Turi37]. H μηχανή Turing αποτέλεσε τη βάση των

υπολογιστών von Neumann στους οποίους ανήκουν οι σημερινοί υπολογιστές και οδήγησε στη δημιουργία των πρώτων γλωσσών προγραμματισμού

Page 5: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 55

λ-Λογισμός Σχεδιασμός νέων αρχιτεκτονικών υπολογιστών

– Μηχανές αναγωγής (reduction machines) και – Υπολογιστές ροής δεδομένων (data-flow

computers) Όταν πρωτο-δημιουργήθηκαν εκτελούσαν

αποκλειστικά προγράμματα γραμμένα σε κάποια διάλεκτο του λ-λογισμού.

Δημιουργία συναρτησιακού προγραμματισμού– John McCarthy σχεδίασε τη γλώσσα

προγραμματισμού LISP στα τέλη της δεκαετίας του 1950. Αργότερα δημιουργήθηκαν οι Scheme, ML, Miranda, Haskell, κλπ.

Page 6: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 66

λ- Λογισμός Υπολογιστές και συναρτησιακός

προγραμματισμός δεν έτυχαν ευρείας αποδοχής όπως οι υπολογιστές von Neumann και ο προστακτικός προγραμματισμός

Οι επιδόσεις των πρώτων μηχανών αναγωγής και οι υλοποιήσεις των συναρτησιακών γλωσσών ήταν χειρότερες από τα παραδοσιακά συστήματα.

Page 7: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 77

λ-Λογισμός Ιδιαίτερα πρόσφορος ως συμβολισμός

για την περιγραφή σημασιολογικών ιδιοτήτων των γλωσσών προγραμματισμού.

Διευκόλυνε τη μελέτη και απομόνωση προβλημάτων σχεδίασης και υλοποίησης των γλωσσών προγραμματισμού– Μηχανισμό κλήσης υπο-προγραμμάτων

και δομή συστήματος τύπων

Page 8: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 88

λ-Λογισμός Διατύπωση θεωρίας πεδίων Θεμελίωση ερευνητικού πεδίου της

σημασιολογίας γλωσσών προγραμματισμού

Page 9: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 99

Διαισθητική εισαγωγή Ο λ-λογισμός είναι θεωρία συναρτήσεων Δύο κύριες λειτουργίες

– Εφαρμογή συνάρτησης F πάνω σε ένα όρισμα Α, που συμβολίζεται με F A

– Αφαίρεση. Έστω ότι x μεταβλητή και Ε[x] έκφραση, που εξαρτάται από τη x. Η έκφραση λx.E[x] συμβολίζει τη συνάρτηση

x ↦ E[x]

Page 10: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 1010

Διαισθητική εισαγωγή Η συνάρτηση δέχεται ως όρισμα μία

τιμή υ και επιστρέφει ως αποτέλεσμα την τιμή Ε[υ]. Η x δεν εμφανίζεται απαραίτητα στην έκφραση Ε[x]. Αν αυτό δεν συμβαίνει, τότε η λx.E[x] είναι μία σταθερή συνάρτηση.

Page 11: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 1111

Παράδειγμα Η λx. x2 – 3x +2 συμβολίζει μία

συνάρτηση, που σε κάθε τιμή x απεικονίζει την τιμή x2 – 3x +2.

Αν η συνάρτηση εφαρμοσθεί στο όρισμα 8, προκύπτει

(λx. x2 – 3x +2)8 = 82 - 38 +2 =42 Η τιμή του ορίσματος αντικαθιστά

την παράμετρο x

Page 12: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 1212

Ελεύθερη και Δεσμευμένη Μεταβλητή

Η αφαίρεση λx.E[x] δεσμεύει τη μεταβλητή x μέσα στην έκφραση Ε[x].

Μεταβλητή μη δεσμευμένη ονομάζεται ελεύθερη.

Παράδειγμα: λx. x2 – 3y +2 x δεσμευμένη και y ελεύθερη Παράδειγμα: (λx. x2 – 3y +2)(4x + 1) H πρώτη εμφάνιση του x (στο x2) είναι

δεσμευμένη, γιατί είναι στο εσωτερικό της αφαίρεσης, ενώ η δεύτερη (στο 4x + 1) είναι ελεύθερη)

Page 13: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 1313

Παράδειγμα Δέσμευσης sinx +cosy cosx –siny

Η μεταβλητή x στο εσωτερικό του ολοκληρώματος είναι δεσμευμένη και κατά συνέπεια η τιμή του ολοκληρώματος δεν εξαρτάται από την τιμή του x έξω από αυτό. Η μεταβλητή y είναι ελεύθερη και η τιμή του ολοκληρώματος εξαρτάται από την τιμή του y έξω από αυτό.

∫ dx

Page 14: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 1414

Λάμβδα όροι Ο λ-λογισμός είναι μία τυπική

γλώσσα Λ, η σύνταξη της οποίας δίνεται από τον ακόλουθο επαγωγικό ορισμό:

Page 15: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 1515

Ορισμός 10.1

Έστω V ένα αριθμήσιμο σύνολο μεταβλητών. Το σύνολο Λ των όρων του λ-λογισμού είναι το μικρότερο σύνολο, που ικανοποιεί τις παρακάτω ιδιότητες:

xV xΛ Μ,ΝΛ (Μ Ν)Λ

xV , ΜΛ (λx.Μ)Λ

Page 16: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 1616

λ-όροι Τα στοιχεία του συνόλου Λ

ονομάζονται επίσης λ-όροι (λ-terms). Υπάρχουν τριών ειδών: Μεταβλητές (Variables), δηλαδή

στοιχεία του συνόλου V Εφαρμογές (Applications), με μορφή (Μ

Ν), όπου Μ και Ν είναι λ-όροι Αφαιρέσεις (Abstractions), με μορφή

(λx.M), όπου x μεταβλητή και Μ λ-όρος

Page 17: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 1717

λ-όροι Κατά σύμβαση χρησιμοποιούνται

μικρά γράμματα του λατινικού αλφαβήτου (x,y,z κλπ) για συμβολισμό μεταβλητών και κεφαλαία (Μ,Ν,F,G, P κλπ) για λ-όρους.

Page 18: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 1818

λ-όροι Χρησιμοποιώντας αφηρημένη σύνταξη

BNF και θεωρώντας ότι η συντακτική κλάση των μεταβλητών παριστάνεται με το μη-τερματικό σύμβολο (var), η γλώσσα Λ των λ-όρων περιγράφεται ισοδύναμα

term ::= var | (term term) | ( λ varterm )

Page 19: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 1919

Παράδειγμα 10.1Οι παρακάτω είναι λ-όροι:

(x y) (λx.x) (λx.((λy.(x y)))) (((λx.x)y)(λx.z)) ((λx.(λy.z)) (λx.x)) (λx.((λy.y)(λz.x)))

Page 20: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 2020

Συμβάσεις Για απλοποίηση των λ-όρων και αποφυγή

μεγάλου αριθμού παρενθέσεων (με αυστηρή τήρηση ορισμού 10.1) χρησιμοποιούνται οι συμβάσεις– Εξωτερικές παρενθέσεις δεν γράφονται

λx.x συντομογραφία του (λx.x)– Η εφαρμογή είναι αριστερά

προσεταιριστική F M1 M2 … Mn συντομογραφία του (…((F M1)M2)… Mn)

Page 21: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 2121

Συμβάσεις– Η αφαίρεση εκτείνεται όσο

περισσότερο είναι δυνατό, δηλαδή ως το επόμενο κλείσιμο παρένθεσης ή το τέλος του όρου: λx. M1 M2 … Mn συντομογραφία του λx. (M1 M2 … Mn)

Page 22: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 2222

Παράδειγμα 10.2 Ακολουθώντας τις συμβάσεις, οι λ-όροι

του παραδείγματος 10.1 γράφονται x y

λx.x λx.λy.x y ((λx.x)y)(λx.z) (λx.λy.z) (λx.x) λx.(λy.y)(λz.x)

Page 23: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 2323

Ορισμός 10.2 Η σχέση ταυτότητας στο σύνολο των

λ-όρων ορίζεται επαγωγικά ως εξής: x y αν x = y (Μ Ν) (P Q) αν Μ Ρ και Ν Q (λx. M) (λy. N) αν x = y και M N Όπου x = y συμβολίζεται η σχέση

ισότητας στο σύνολο V ( δηλαδή x και y είναι η ίδια μεταβλητή). Αν M N, οι όροι Μ,Ν Λ ονομάζονται ταυτόσημοι (identical)

Page 24: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 2424

Μεταβλητές Η μεταβλητή x στην αφαίρεση λx.Μ

ονομάζεται δεσμεύουσα μεταβλητή (binding variable)

Η εμβέλεια (scope) της αφαίρεσης λx είναι ο λ-όρος Μ, εκτός από τυχόν αφαιρέσεις, που αυτός περιέχει και στις οποίες δεσμεύουσα μεταβλητή είναι πάλι η x.

Page 25: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 2525

Μεταβλητές Εμφανίσεις της μεταβλητής x που

βρίσκονται στην εμβέλεια κάποιου λx ονομάζονται δεσμευμένες (bound).

Εμφανίσεις, που δεν βρίσκονται στην εμβέλεια κανενός λx ονομάζονται ελεύθερες.

Page 26: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 2626

Ορισμός 10.3 Το σύνολο των ελεύθερων

μεταβλητών (free variables) ενός λ-όρου ΜΛ συμβολίζεται με FV(M) και ορίζεται επαγωγικά ως εξής:

FV(x) = {x}FV(M N) = FV(M) FV(N) FV(λx.M) = FV(M) - {x}

Page 27: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 2727

Παράδειγμα 10.3

Έστω ο παρακάτω όρος: Μ (λx. y x) (λy. x y)

Ελεύθερη

Δεσμευμένη Ελεύθερη

Δεσμευμένη

Page 28: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 2828

Παράδειγμα 10.3

Ακολουθώντας τον ορισμό 10.3 FV(M) = FV(λx.y x)(λy.x y) = FV(λx.y x) FV (λy.x y) = (FV(y x) –{x}) (FV(x y) –{y}) = ((FV(y) FV(x)) –{x}) ((FV(x) FV(y))–{y}) = (({y} {x}) – {x}) (({x} {y}) –{y}) = ({x,y}– {x}) ({x,y} –{y}) = {y} {x} = {x,y}

Page 29: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 2929

Ορισμός 10.4 Ένας λ-όρος ΜΛ ονομάζεται

κλειστός λ-όρος (closed λ-term ή combinator)

αν FV(M) = . Το σύνολο των κλειστών λ-όρων συμβολίζεται με Λο .

Page 30: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 3030

Παράδειγμα 10.4 Οι ακόλουθοι λ-όροι είναι κλειστοί

και στη βιβλιογραφία ονομάζονται πρότυποι κλειστοί όροι (standard combinators).

I λx. x K λx. λy. x K* λx. λy. y

S λx. λy. λz. (x z)(y z)

Page 31: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 3131

Αντικατάσταση Βασική πράξη συμβολικής

επεξεργασίας των λ-όρων Επηρεάζει ελεύθερες μεταβλητές Ο συμβολισμός Μ[x := N] παριστάνει

το αποτέλεσμα αντικατάστασης στον όρο Μ όλων των ελεύθερων εμφανίσεων της μεταβλητής x με τον όρο Ν.

Page 32: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 3232

Ορισμός 10.5 Η αντικατάσταση της μεταβλητής xV στον

όρο ΜΛ με τον όρο ΝΛ συμβολίζεται με Μ[x := Ν] και ορίζεται επαγωγικά ως εξής: x[x:=N] N

y[x:=N] y (P Q) [x:=N] P[x:=N] Q[x:=N] (λx.P) [x:=N] λx.P(λy.P) [x:=N] λy.P [x:=N] αν (yFV(N) ή xFV(P))(λy.P) [x:=N] λz.P [y:=z] [x:=N] αν yFV(N) και xFV(P), όπου zFV(P) FV(N)

Page 33: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 3333

Παρατηρήσεις Αντικαθίστανται μόνο οι ελεύθερες

εμφανίσεις μιας μεταβλητής Στο αποτέλεσμα της αντικατάστασης καμία

από τις ελεύθερες μεταβλητές του όρου Ν δεν θα γίνει δεσμευμένη

Η δέσμευση ελεύθερης μεταβλητής του όρου Ν θα μπορούσε να γίνει μόνο μέσω του τελευταίου κανόνα, στην περίπτωση, που yFV(N) και xFV(P). Ο κανόνας μεριμνά για μετονομασία της δεσμεύουσας μεταβλητής, προκειμένου να αποφευχθεί αυτό το ενδεχόμενο.

Page 34: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 3434

Παρατηρήσεις Στον τελευταίο κανόνα η επιλογή της

μεταβλητής zV είναι ελεύθερη υπό την προϋπόθεση ότι zFV(P) FV(N)

Για τον μονοσήμαντο ορισμό του αποτελέσματος της αντικατάστασης Μ[x:=N] πρέπει σε αυτό τον κανόνα να καθορίζεται επακριβώς ο τρόπος επιλογής της μεταβλητής αυτής.

Τα στοιχεία του συνόλου V είναι αριθμημένα και επιλέγεται ως z το πρώτο, που ικανοποιεί την zFV(P) FV(N)

Page 35: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 3535

Μετατροπές Τρία είδη μετατροπής (α,β και η) Κάθε είδος μετατροπής

περιγράφεται από τον κανόνα Μ χ N όπου χ {α,β,η} και Μ,Ν Λ. Ο όρος Μ ονομάζεται χ-redex ή απλά redex και ο Ν όρος contractum.

Page 36: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 3636

Ορισμός 10.6 Μία σχέση πάνω στο Λ ονομάζεται

συμβατή (compatible) αν για κάθε x V και για κάθε Μ,Ν,Ρ Λ ισχύουν οι παρακάτω ιδιότητες:

Μ Ν (Μ Ρ) (Ν Ρ) Μ Ν (Ρ Μ) (Ρ Ν) Μ Ν (λx. M) (λx. Ν) Η σχέση ταυτότητας μεταξύ των λ-

όρων είναι συμβατή.

Page 37: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 3737

Ορισμός 10.7 Μία σχέση αναγωγής (reduction

relation) είναι μία συμβατή, ανακλαστική και μεταβατική σχέση πάνω στο Λ.

Page 38: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 3838

Ορισμός 10.8 Μία σχέση συμφωνίας (congruence

relation) είναι μία συμβατή σχέση ισοδυναμίας πάνω στο Λ.

(Μία σχέση ονομάζεται σχέση ισοδυναμίας (equivalence relation) αν είναι ανακλαστική, μεταβατική και συμμετρική.)

Page 39: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 3939

Ορισμός 10.9 Η σχέση α ορίζεται ως η μικρότερη

συμβατή σχέση πάνω στο Λ για την οποία για κάθε ΜΛ και για κάθε x,yV τέτοια ώστε yFV(M) ισχύει

λx.M α λy.M[x:=y]

Ο περιορισμός yFV(M) εξασφαλίζει ότι η μετονομασία της δεσμεύουσας μεταβλητής δεν προκαλεί δέσμευση των μεταβλητών του όρου Μ, που ήταν αρχικά ελεύθερες.

Page 40: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 4040

Παράδειγμα 10.5 Οι παρακάτω α-μετατροπές είναι σωστές:

λx.x α λy.yλx.z x α λy.z yλx.λy.z x y α λy.λw.z y w

Στην τρίτη μετατροπή, η αντικατάσταση (λy.z x y)[x:=y] προκάλεσε τη μετονομασία της δεσμεύουσας μεταβλητής, προκειμένου να μη δεσμευθεί στο αποτέλεσμα της αντικατάστασης η ελεύθερη εμφάνιση της y.

Page 41: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 4141

Παράδειγμα 10.5Η παρακάτω μετατροπή είναι

λανθασμένη: λx.λz.z x y α λy.λz.z y yγιατί δεν πληρείται ο περιορισμός yFV(λz.z x y)

Page 42: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 4242

Ορισμός 10.10

Η σχέση β ορίζεται ως η μικρότερη συμβατή σχέση πάνω στο Λ για την οποία για κάθε Μ, ΝΛ και για κάθε x,yV ισχύει

(λx.M)Ν β M[x:=Ν]

Page 43: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 4343

Παράδειγμα 10.6Οι παρακάτω β-μετατροπές είναι

σωστές: (λx.z x) w β z w(λx.λy.z x y) w β λy.z w y(λy.z y (λx.x y)) w β z w (λx.x w)

Page 44: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 4444

Παράδειγμα 10.6 Η επόμενη μετατροπή είναι λανθασμένη (λx.λy.z x y) (w y) β λy.z (w y) y γιατί για να γίνει αντικατάσταση (λy.z x y) [x:=w y] πρέπει να μετονομασθεί η δεσμεύουσα

μεταβλητή y, διαφορετικά η εμφάνιση της y στον όρο w y θα δεσμευόταν. Το σωστό αποτέλεσμα της παραπάνω β-μετατροπής είναι:

(λx.λy.z x y) (w y) β λt.z (w y) t όπου t νέα μεταβλητή.

Page 45: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 4545

Ορισμός 10.11 Η σχέση n ορίζεται ως η μικρότερη

συμβατή σχέση πάνω στο Λ για την οποία για κάθε ΜΛ και για κάθε xV τέτοια ώστε xFV(M) ισχύει

λx.M x n M

Page 46: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 4646

Παράδειγμα 10.7

Οι παρακάτω n-μετατροπές είναι σωστές:

λx.z x n zλy.z x y n z x

Όχι όμως η: λx.z x x n z xγιατί δεν πληρείται το xFV(z x)

Page 47: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 4747

Μετατροπή, αναγωγή και ισότητα

Οι τρεις κανόνες μετατροπής (α), (β) και (n) ορίζουν τρεις βασικές σχέσεις μετατροπής α , β , n για το λ-λογισμό.

Η συνολική σχέση μετατροπής MN θα υποδηλώνει ότι ο όρος Μ μετατρέπεται σε ένα βήμα στον όρο Ν με έναν από τους τρεις κανόνες.

Page 48: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 4848

Ορισμός 10.12

Με συμβολίζεται η ένωση των σχέσεων

α , β , n , δηλαδή η σχέση ορίζεται ως η μικρότερη σχέση για την οποία ισχύουν:

Μ α Ν Μ Ν Μ β Ν Μ Ν Μ n Ν Μ Ν

Page 49: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 4949

ΣυμβολισμόςΜ Νο Ν1 Ν2 .... Νn-1 Νn Ν

Ο όρος Μ μετατρέπεται στον όρο Ν με ακολουθία βημάτων, πιθανώς κενή. Η σχέση συμβολίζεται

Μ ↠ Ν Αν n =1 τότε η μετατροπή γίνεται σε ένα βήμα Μ Ν και άρα η σχέση ↠ εμπεριέχει την . Αν n=0, η ακολουθία είναι κενή και δε

συμβαίνει μετατροπή, δηλαδή Μ Ν και άρα η σχέση ↠ εμπεριέχει την .

Page 50: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 5050

Ορισμός 10.13 Με ↠ συμβολίζεται το ανακλαστικό και

μεταβατικό κλείσιμο της σχέσης →. Δηλαδή, η σχέση ↠ ορίζεται ως η μικρότερη σχέση για την οποία ισχύουν:

Μ → Ν Μ ↠ Ν Μ ↠ Μ Μ ↠ Ν, Ν ↠ Ρ Μ ↠ Ρ

Page 51: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 5151

Παρατηρήσεις Η σχέση ↠ είναι σχέση αναγωγής

(ορισμός 10.7). Όταν ισχύει Μ ↠ Ν λέμε ότι ο όρος Μ ανάγεται στον όρο Ν.

Όταν Μ ↠ Ν, όλα τα βήματα στην ακολουθία μετατροπής έχουν την ίδια κατεύθυνση, από αριστερά προς δεξιά.

Page 52: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 5252

Παρατηρήσεις Αν επιτραπεί η ύπαρξη «αντίστροφων

βημάτων, όπωςΜ Νο Ν1 Ν2 Ν3 Ν4 Ν5 Ν6 Ν

Τότε οδηγούμαστε σε μία γενικότερη σχέση, που συμβολίζουμε με =. Η σχέση αυτή, εμπεριέχει τις ↠ , και .

Page 53: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 5353

Ορισμός 10.14 Με = συμβολίζεται η σχέση

ισοδυναμίας, που προκύπτει από την ↠ . Δηλαδή η σχέση = ορίζεται ως η μικρότερη σχέση για την οποία ισχύουν:

Μ ↠ Ν Μ = Ν Μ = Ν Ν = Μ Μ = Ν, Ν = Ρ Μ = Ν

Page 54: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 5454

Σχέσεις “=“, “” Η σχέση = είναι σχέση συμφωνίας

(ορισμός 10.8). Όταν ισχύει Μ=Ν, ο όρος Μ είναι ίσος με τον όρο Ν.

Με τη σχέση ισότητας Μ=Ν δεν εννοείται ότι οι δύο όροι ταυτίζονται, δηλαδή δεν ισχύει Μ Ν (ορισμός 10.2).

Η διάκριση των δύο σχέσεων και η επιλογή του συμβόλου “=“ για τη σχέση συμφωνίας του ορισμού 10.14 ενδέχεται να μπερδέψει τον αναγνώστη.

Page 55: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 5555

Κανονικές μορφές λ-λογισμός θεωρείται ως

υπολογιστικό μοντέλο επεξεργασίας συναρτήσεων

Σχέσεις μετατροπής – παριστάνουν την πραγματοποίηση

βημάτων επεξεργασίας πάνω στους λ-όρους

– Αποσκοπούν στον υπολογισμό κάποιου αποτελέσματος

Page 56: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 5656

β - Μετατροπή Κατ’ εξοχήν υπολογιστική πράξη,

αφού διαισθητικά παριστάνει εφαρμογή μίας συνάρτησης σε κάποιο όρισμα

Page 57: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 5757

α - Μετατροπή Δεν προάγει τη διαδικασία

υπολογισμού. Τα ονόματα των δεσμευμένων

μεταβλητών δεν έχουν ουσιαστική σημασία.

Η μετονομασία των μεταβλητών, που επιτελείται μέσω της α-μετατροπής δεν αποτελεί ουσιαστικό υπολογιστικό βήμα

Page 58: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 5858

η – μετατροπή Δεν συμβάλλει άμεσα στην

υπολογιστική διαδικασία. Υλοποιεί έναν μηχανισμό για την

υλοποίηση λ-όρων, που παριστάνουν συναρτήσεις

Page 59: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 5959

Παρατηρήσεις Η σχέση μετατροπής M N παριστάνει

ένα βήμα στη διαδικασία υπολογισμού Η σχέση Μ↠ Ν παριστάνει (πιθανώς κενή)

ακολουθία από τέτοια βήματα. Όταν Μ↠ Ν μπορεί να θεωρηθεί ότι ο

όρος Ν προέκυψε κατά την αποτίμηση του όρου Μ.– Αποτίμηση ενός όρου είναι η διαδοχική

εφαρμογή κανόνων μετατροπής σε αυτόν.

Page 60: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 6060

Κανονικές μορφές Όταν σε έναν όρο Μ δεν εφαρμόζεται

κανένα αμιγώς υπολογιστικό βήμα, δηλαδή καμία β- ή η-μετατροπή, τότε η αποτίμηση του θεωρείται ολοκληρωμένη και ο όρος είναι τελικό αποτέλεσμα.

Τέτοιοι πλήρως αποτιμημένοι όροι ονομάζονται κανονικές μορφές.

Page 61: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 6161

Ορισμός 10.15

Ένας όρος ΜΛ είναι σε κανονική μορφή (normal form) όταν δεν περιέχει κανένα β-redex ή n-redex.

Page 62: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 6262

Παράδειγμα 10.8

Οι όροι λx.x και λf.f (λx.x f) είναι σε κανονική μορφή. Αντίθετα ο όρος

λz.(λf.λx.f z x) (λy.y) δεν είναι σε κανονική μορφή, γιατί περιέχει το β-redex:

(λf.λx.f z x)(λy.y) β λx. (λy.y) z x

Page 63: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 6363

Παρατήρηση Στις κανονικές μορφές δεν

λαμβάνεται υπόψη η α-μετατροπή. Αυτό είναι σύμφωνο με τη θεώρηση του λ-λογισμού ως υπολογιστικού μοντέλου. Αν δεν συνέβαινε, τότε απλοί όροι όπως ο λx.x δεν θα ήταν σε κανονική μορφή λόγω δυνατής μετονομασίας κάποιας δεσμεύουσας μεταβλητής.

Page 64: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 6464

Παρατήρηση Η σχέση συμφωνίας =α βάσει της

οποίας όλοι οι όροι, που προκύπτουν με α-μετατροπές είναι ισοδύναμοι, αποτελεί θεμελιώδη σχέση ισοδυναμίας μεταξύ κανονικών μορφών. Το γεγονός αυτό αποδίδεται και από την επόμενη πρόταση.

Page 65: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 6565

Πρόταση 10.1

Αν ο όρος ΜΛ είναι σε κανονική μορφή και ισχύει Μ ↠ Ν για κάποιον όρο ΝΛ, τότε Μ =α Ν.

Page 66: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 6666

Πρόταση 10.1 - Σχόλια Υπάρχουν λ-όροι η αποτίμηση των

οποίων οδηγεί, μετά από διαδοχικές μετατροπές σε κάποια κανονική μορφή. Υπάρχουν όροι για τους οποίους αυτό δεν ισχύει και η αποτίμηση τους ενδέχεται να συνεχίζεται επ’ άπειρον χωρίς να καταλήγει σε κανονική μορφή.

Page 67: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 6767

Ορισμός 10.16 Ένας όρος ΜΛ λέμε ότι έχει κανονική

μορφή αν για κάποιον όρο ΝΛ, ισχύει Μ ↠ Ν και ο Ν είναι σε κανονική μορφή. Στην περίπτωση αυτή, ο όρος Μ ονομάζεται κανονικοποιήσιμος (normalizing).

Page 68: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 6868

Παράδειγμα 10.9 Ο όρος λz. (λf.λx.fzx)(λy.y) στο παράδειγμα

10.8 δεν είναι σε κανονική μορφή. Εφαρμόζοντας διαδοχικά βήματα

λz.(λf.λx.fzx)(λy.y) β λz.λx. (λy.y)zx β λz. λx.zx η λz. z και άρα λz. (λf.λx.fzx)(λy.y) ↠λz. z Καθώς λz.z σε κανονική μορφή και ο αρχικός

όρος έχει κανονική μορφή.

Page 69: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 6969

Παράδειγμα 10.10 Έστω ο όρος Ω (λx. x x) (λx. x x) σε μη

κανονική μορφή. Ο όρος περιέχει μόνο ένα β-redex και η μόνη μετατροπή, που μπορεί να εφαρμοσθεί είναι η:

Ω (λx. x x) (λx. x x) β (λx. x x) (λx. x x) Ω Σε ένα βήμα μετατροπής, ο όρος Ω

μετατρέπεται πάλι στον εαυτό του. Η διαδικασία αποτίμησης δεν τερματίζεται και ο όρος Ω δεν έχει κανονική μορφή. Εδώ η διαδικασία αποτίμησης δεν προοδεύει.

Page 70: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 7070

Παράδειγμα 10.11 Έστω ο όρος Μ (λx. x x y)(λx. x x y), με

ένα μόνο β-redex. Η μόνη ακολουθία μετατροπών, που εφαρμόζεται είναι:Μ (λx. x x y)(λx. x x y)

β (λx. x x y)(λx. x x y) y M y β (λx. x x y)(λx. x x y) y y M y y β (λx. x x y)(λx. x x y) y y y M y y y β …. Κάθε αποτέλεσμα δεν είναι σε κανονική μορφή και

έχει μόνο ένα β-redex.

Page 71: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 7171

Παράδειγμα 10.12 Έστω ο όρος Μ = (λx. (λy. x y) z) w με

δύο β-redex για τις δύο αφαιρέσεις με δεσμεύουσες μεταβλητές x και y. Μετατρέποντας πρώτα το πρώτο από αυτά, προκύπτει η αποτίμηση:

Μ β (λy. w y) z β w z Μετατρέποντας τα με την αντίστροφη

σειρά προκύπτει η αποτίμηση:Μ β (λy. x z) w β w z

Page 72: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 7272

Παράδειγμα 10.13 Έστω ο όρος Μ = (λz. y) ((λx. x x)(λx. x x)) που

περιέχει τον όρο Ω του παραδείγματος 10.10. Ο όρος Μ περιέχει δύο β-redex για τις δύο αφαιρέσεις με δεσμεύουσες μεταβλητές z και την πρώτη από τις δύο x.

Μετατρέποντας το πρώτο, οδηγούμαστε σε κανονική μορφή: M β y

Μετατρέποντας το δεύτερο, οδηγούμαστε πάλι στον ίδιο όρο, όπως με τη μετατροπή του Ω:

M β (λz.y) ((λx. x x)(λx. x x)) Μ

Page 73: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 7373

Ορισμός 10.17

Ένας όρος Μ ονομάζεται ισχυρά κανονικοποιήσιμος (strongly normalizing) αν όλες οι ακολουθίες μετατροπής, που ξεκινούν με τον Μ καταλήγουν σε κανονική μορφή.

Page 74: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 7474

Ορισμός 10.18 Η στρατηγική κατά την οποία

επιλέγεται για μετατροπή κάθε φορά το αριστερότερο redex ενός όρου, δηλαδή αυτό του οποίου το σύμβολο λ βρίσκεται όσο το δυνατόν πιο αριστερά, ονομάζεται στρατηγική της αναγωγής κανονικής σειράς (normal order reduction strategy)

Page 75: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 7575

Θεώρημα 10.1 (Church-Rosser)

Έστω όροι Μ, Ν1,Ν2 Λ τέτοιοι ώστε Μ ↠Ν1 και Μ ↠Ν2 .Τότε υπάρχει όρος ΝΛ τέτοιος ώστε Ν1 ↠ Ν και Ν2 ↠ Ν.

Page 76: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 7676

Διάγραμμα Μ

Ν1 Ν2

Ν

Page 77: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 7777

Πρόταση 10.2 Αν Μ1 = Μ2, τότε υπάρχει ένας όρος

Ν τέτοιος ώστε Μ1↠Ν και Μ2 ↠Ν.

Page 78: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 7878

Πρόταση 10.3

Κάθε όρος Μ έχει το πολύ μία κανονική μορφή.

Page 79: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 7979

Απόδειξη της πρότασης 10.3

Έστω ότι όρος Μ έχει δύο κανονικές μορφές Ν1 και Ν2, τότε ισχύει ς ώστε Μ↠Ν1 και Μ↠Ν2 και άρα Ν1 = Ν2. Από την πρόταση 10.2 προκύπτει ότι υπάρχει όρος Ρ τέτοιος ώστε Ν1↠ Ρ και Ν2↠ Ρ . Όμως από την πρόταση 10.1 συνεπάγεται ότι Ν1=α Ρ και Ν2=α Ρ και άρα Ν1=α Ν2.

Page 80: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 8080

Θεώρημα 10.2Κανονικοποίηση – Normalization Αν ο όρος Μ έχει κανονική μορφή,

τότε η στρατηγική της αναγωγής κανονικής σειράς οδηγεί σε αυτήν.

Page 81: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 8181

Θεώρημα 10.3Σταθερό σημείο – Fixed pointi) Για κάθε όρο FΛ υπάρχει όρος ΧΛ

τέτοιος ώστε να ισχύει F X = Xii) Υπάρχει ένας τελεστής σταθερού

σημείου, δηλαδή ένας όρος Υ Λ τέτοιος ώστε για κάθε FΛ να ισχύει F(Υ F)= Υ F.

Page 82: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 8282

Απόδειξη Θεωρήματος 10.3i) Έστω W λx. F(x x) και X W W. Τότε

ισχύει X W W (λx. F(x x)) W β F(W W) F X ii) Έστω ο κλειστός όρος Υ Λ, που ορίζεται ως Υ

λf (λx.f (x x)) (λx.f(x x)) και έστω FΛ. Χρησιμοποιώντας την απόδειξη του i) έχουμε

ΥF (λf (λx.f (x x)) (λx.f(x x))) F β (λx.F (x x)) (λx.F (x x)) X

Καθώς Χ = FX, από τη συμβατότητα της σχέσης = προκύπτει Υ F=F(Υ F)

Page 83: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 8383

Ορισμός 10.19 Πως μπορούμε να αναπαραστήσουμε τις

λογικές τιμές στο λάμβδα-λογισμό;true λx. λy. xfalse λx. λy. y

Page 84: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 8484

Ορισμός 10.20 Πως αναπαριστούμε τους λογικούς

τελεστές;

not λz. z false true

Page 85: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 8585

Θεώρημα 10.4i) not true = falseii) not false = trueΑπόδειξη (μόνο του πρώτου, παρόμοια γίνεται και του

δεύτερου)not true (λz.z false true) true

β true false true (λx. λy. x) false true

↠β false

Page 86: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 8686

Ορισμός 10.21 cond λz. λx. λy. z x y if B then N else M cond B N M

Αποδεικνύεται εύκολα ότι η παραπάνω δομή πληροί τις απαιτούμενες ιδιότητες.

Page 87: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 8787

Θεώρημα 10.5Για κάθε Ν, Μ ισχύουν τα παρακάτωi) if true then N else M = Nii) if false then N else M = MΑπόδειξη (του πρώτου)if true then N else Μ cond true N M (λz. λx. λy. z x y) true N M

↠β true N M (λx. λy. x) N M ↠β N

Page 88: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 8888

Διατεταγμένα ζεύγη

Στον λ-λογισμό κωδικοποιούνται διατεταγμένα ζεύγη όρων (που με τη σειρά τους κωδικοποιούν άλλα μαθηματικά αντικείμενα). Μία τέτοια κωδικοποίηση γίνεται μέσω του pair. Ο συμβολισμός Ν,Μ χρησιμοποιείται για διευκόλυνση στη γραφή όρων, που κωδικοποιούν διατεταγμένα ζεύγη.

Page 89: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 8989

Ορισμοί 10.22 και 10.23 pair λx. λy. λz. z x y Ν, Μ pair N M Οι πράξεις fst και snd, που επιστρέφουν το

πρώτο και το δεύτερο στοιχείο ενός διατεταγμένου ζεύγους κωδικοποιούνται ως:

fst λz. z true snd λz. z false Αποδεικνύεται ότι οι πράξεις πληρούν

απαιτούμενες ιδιότητες και άρα η δομή Ν,Μ χρησιμεύει ως διατεταγμένο ζεύγος.

Page 90: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 9090

Θεώρημα 10.6Για κάθε Ν, Μ Λ ισχύουν τα εξής: i) fst Ν,Μ = Nii) snd Ν,Μ = M

Page 91: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 9191

Θεώρημα 10.6Απόδειξη (μόνο του πρώτου)fst Ν,Μ (λz.z true) Ν,Μ β Ν,Μ true pair N M true (λz. λx. λy. z x y) N M true ↠β true N M

(λx. λy. x) N M ↠β N

Page 92: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 9292

Φυσικοί αριθμοί Έχουν προταθεί πολλές διαφορετικές

κωδικοποιήσεις των φυσικών αριθμών στον λ-λογισμό. Η πρώτη και η πιο γνωστή από αυτές είναι τα αριθμοειδή του Church.

Page 93: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 9393

Ορισμός 10.24Έστω φυσικός αριθμός n N και όροι F, AΛ.

Ο όρος Fn(A) Λ ορίζεται επαγωγικά ως:F0(A) ΑFn+1(A) F (Fn(A))Ο ορισμός του Fn(A) θα μπορούσε ισοδύναμα

να δοθεί με τη μορφή Fn+1(A) Fn(F A). Με επαγωγή αποδεικνύεται ότι Fn(FA) F (Fn(A)) και Fn(Fm(A)) Fn+m(A).

Page 94: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 9494

Ορισμός 10.25

(Αριθμοειδή του Church – Church numerals)

Για κάθε φυσικό αριθμό n N ορίζεται ένας όρος cn Λ ως: cn λf. λx. fn(x)

Page 95: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 9595

Ορισμός 10.25

Το αριθμοειδές, που αντιστοιχεί στον αριθμό 0 είναι το c0 λf. λx. x, στον αριθμό 1 το c1 λf. λx. f x, στον αριθμό 2 το c2 λf. λx. f (f x) κοκ. Όλα τα αριθμοειδή είναι σε β-κανονική μορφή (μάλιστα όλα εκτός του c1 είναι και σε n-κανονική μορφή). Ούτε όλοι οι λ-όροι είναι αριθμοειδή, ούτε όλοι ανάγονται σε αριθμοειδή.

Page 96: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 9696

Ορισμός 10.26 succ λn. λf. λx. n f (f x) A+ λn. λm. λf. λx. n f (m f x) A* λn. λm. λf. n (m f) Aexp λn. λm. m n Το θεώρημα 10.7 αποδεικνύει την

ορθότητα της κωδικοποίησης πράξεων του παραπάνω ορισμού. Για την απόδειξη του είναι χρήσιμο το ακόλουθο λήμμα.

Page 97: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 9797

Λήμμα 10.1Για κάθε n,m N και για κάθε x,y Λ

ισχύουν τα εξής:i) cn f (cm f x ) = cn+m f xii) (cn x)m(y) = xnm(y)iii) Αν m>0, τότε (cn)m(x) = cnm x

Page 98: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 9898

Λήμμα 10.1

Απόδειξηi) cn f (cm f x ) (λf. λx.fn(x)) f ((λf. λx.fm(x))) f

x) ↠β (λf. λx.fn(x)) f (fm(x)) ↠β (fn(fm(x)) fn+m(x) ↞β (λf. λx.fn+m(x)) f x cn+m f x

Page 99: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 9999

Λήμμα 10.1

Απόδειξηii) (cn x)m+1(y) cn x((cn x)m(y)) = cn x(xnm (y)) (επαγωγική υπόθεση)

(λf. λx.fn(x)) x (xnm (y)) ↠β xn(xnm (y)) xn+nm (y) xn(1+m) (y)

Page 100: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 100100

Λήμμα 10.1

Απόδειξηiii) (cn)m+1(x) cn ((cn)m(x)) = cn (cnm x) (επαγωγική υπόθεση)

(λf. λx.fn(x)) (cnm x) ↠β λy. (cnm x)n(y) = λy. xnm n(y) (λήμμα 10.1(ii)) λy. xnm+1(y) ←β (λ f.λx. fnm+1(x))x cn

m+1 x

Page 101: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 101101

Θεώρημα 10.7Για κάθε n,m N ισχύουν τα εξής:i) succ cn = cn+1

ii) A+ cn cm = cn+m

iii) A* cn cm = cnm

iv) Αν m>0 τότε Aexp cn cm = cnm

Page 102: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 102102

Θεώρημα 10.7Απόδειξηi) succ cn (λn. λf. λx. n f (f x)) (λf. λx. fn(x))

β λf. λx. (λf. λx. fn(x)) f (f x) ↠β λf. λx. fn(f x) cn+1

Page 103: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 103103

Θεώρημα 10.7Απόδειξηii) A+ cn cm (λn. λm. λf. λx. n f (m f x)) cn cm

↠β λf. λx. cn f (cm f x) = λf. λx. cn+m f x (λήμμα 10.1 (i))

↠n cn+m

Page 104: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 104104

Θεώρημα 10.7Απόδειξηiii) A* cn cm (λn. λm. λf. λx. n (m f)) cn

cm

↠β λf. cn f (cm f) λf. (λf. λx. fn(x)) (cm f ) β λf. λx. (cm f )n(x)

= λf. λx.fmn (x) (λήμμα 10.1 (ii)) cnm

Page 105: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 105105

Θεώρημα 10.7Απόδειξηiv) Aexp cn cm (λn. λm. m n) cn cm

↠β cm cn (λf. λx.fm(x)) (cn ) β λx.(cn)m(x)

= λx.cnm x (λήμμα 10.1 (iii)) n cnm

Page 106: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 106106

Λάμβδα λογισμός και πέρασμα παραμέτρων

Η σχέση ομοιότητας του λ-λογισμού με τις γλώσσες προγραμματισμού δεν περιορίζεται στην εκφραστική του ικανότητα ως προγραμματιστικού μοντέλου.

Οι στρατηγικές αναγωγής λ-όρων είναι πολύ στενά συνδεδεμένες με μεθόδους περάσματος παραμέτρων των γλωσσών προγραμματισμού.

Page 107: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 107107

Αναλογία λ-λογισμού και γλωσσών προγραμματισμού Οι λ-όροι αντιστοιχούν σε εκφράσεις ή

εντολές Η αφαίρεση και η εφαρμογή

αντιστοιχούν στον ορισμό και την κλήση συναρτήσεων ή διαδικασιών και

Η διαδικασία της αναγωγής αντιστοιχεί στην αποτίμηση εκφράσεων ή την εκτέλεση εντολών.

Page 108: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 108108

Οκνηρή αποτίμηση (lazy evaluation)

Τερματισμός της αποτίμησης μιας έκφρασης πριν προκύψει πλήρως αποτιμημένο αποτέλεσμα.

Υποστήριξη από γλώσσες συναρτησιακού προγραμματισμού– Haskell και Miranda

Page 109: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 109109

Οκνηρή αποτίμηση Τερματισμός όταν το αποτέλεσμα είναι

τιμή (value). Η ακριβής μορφή των τιμών διαφέρει

από γλώσσα σε γλώσσα– Αριθμητικές και λογικές σταθερές,

καθώς και συναρτησιακές αφαιρέσεις είναι τιμές.

Στον λ-λογισμό μόνο οι αφαιρέσεις θεωρούνται τιμές

Page 110: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 110110

Αναγωγή Κανονικής Μορφής

Η στρατηγική της αναγωγής κανονικής σειράς σχετίζεται στενά με την οκνηρή αποτίμηση.

Η μετατροπή κάθε φορά του αριστερότερου β-redex σημαίνει ότι δεν έχει προηγηθεί μετατροπή μέσα στον όρο, πάνω στον οποίο εφαρμόζεται η αφαίρεση, που αντιστοιχεί σε αυτό το β – redex.

Page 111: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 111111

Αναλογία με Οκνηρή Αποτίμηση

Κατ’ αναλογία στην οκνηρή αποτίμηση μία συνάρτηση καλείται χωρίς να προηγηθεί αποτίμηση των παραμέτρων της.

Στην γλώσσα προγραμματισμού Algol 60, η συμπεριφορά αυτή επιτυγχάνεται με τη μέθοδο του περάσματος παραμέτρων κατ’ όνομα (call by name).

Page 112: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 112112

Παράδειγμα Η στρατηγική της αναγωγής

κανονικής σειράς οδηγεί τελικά την αναγωγή του όρου (λx.λy.y)Ω στην τιμή λy.y

Το ίδιο αποτέλεσμα προκύπτει στη γλώσσα Algol 60, αν ορισθούν οι συναρτήσεις και στη συνέχεια αποτιμηθεί η έκφραση f(g) στον επόμενο κώδικα:

Page 113: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 113113

Παράδειγμαinteger procedure f (x);

integer x;begin f :=42end;integer procedure g;begin while true do g := 7end;

Page 114: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 114114

Παράδειγμα Το αποτέλεσμα είναι 42, γιατί κατά

την αποτίμηση δε χρειάζεται να γίνει η κλήση στη συνάρτηση g, που δεν τερματίζεται

Η αποτίμηση όμως της έκφρασης f(g) δεν θα τερματιζόταν σε κάποιες άλλες γλώσσες προγραμματισμού– Pascal, C, κλπ.

Page 115: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 115115

Πρόθυμη Αποτίμηση

Στις γλώσσες αυτές το πέρασμα παραμέτρων γίνεται κατ’ αξία (by value) και η τιμή της παραμέτρου g αποτιμάται πριν κληθεί η συνάρτηση f.

Η κλήση της g οδηγεί σε μη τερματισμό. Πρόθυμη αποτίμηση (eager evaluation)

είναι η αποτίμηση κατά την οποία οι παράμετροι αποτιμώνται πριν γίνει η κλήση στη συνάρτηση.

Page 116: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 116116

Πρόθυμη αποτίμηση στο λ-λογισμό

Στον λ-λογισμό , το ανάλογο της πρόθυμης αποτίμησης και του περάσματος παραμέτρων κατ’ αξία είναι μία στρατηγική αποτίμησης που κατά την αποτίμηση του όρου (λx.λy.y)Ω θα αποτιμούσε πρώτα τον όρο Ω.

Page 117: Κεφάλαιο 10  Λάμβδα λογισμός

Εθνικόν και Καποδιστριακόν Πανεπιστήμιον ΑθηνώνΕθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – – Τμήμα Πληροφορικής και ΤηλεπικοινωνιώνΤμήμα Πληροφορικής και Τηλεπικοινωνιών 117117

Πρόθυμη αποτίμηση στο λ-λογισμό

Τέτοιου είδους στρατηγικές προκύπτουν υποχρεωτικά αν στον κανόνα της β-μετατροπής

(λx.M) N β M[ x:=N ] Προσθέσουμε τον περιορισμό ότι ο

όρος Ν πρέπει να είναι τιμή.