Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 10 Λάμβδα λογισμός Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 2 Ιστορική εξέλιξη λ-λογισμού - 1 Αναπτύχθηκε αρχικά από τον Alonzo Church στις αρχές της δεκαετίας του 1930, πολύ πριν αρχίσουν να χρησιμοποιούνται οι ηλεκτρονικοί υπολογιστές. Ήταν μέρος μιας γενικότερης θεωρίας με στόχο τη θεμελίωση μαθηματικών και λογικής [Chur32, Chur33]
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 3 Ιστορική εξέλιξη λ-λογισμού - 2 H γενική θεωρία ήταν ασυνεπής, όπως αποδείχθηκε αργότερα [Klee35] Το τμήμα της, που ασχολήθηκε με συναρτήσεις είχε σημαντικές εφαρμογές στην πληροφορική, κυρίως μετά το 1960 Το τμήμα αυτό είναι ο λάμβδα λογισμός ή λ-λογισμός
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 4 λ-Λογισμός Πλήρες υπολογιστικό μοντέλο Δύο πολύ σημαντικά αποτελέσματα – Όλες οι αναδρομικές συναρτήσεις παριστάνονται στο λ-λογισμό [Klee35] – Ως υπολογιστικό μοντέλο, ο λ-λογισμός είναι ισοδύναμος με τη μηχανή Turing [Turi37]. H μηχανή Turing αποτέλεσε τη βάση των υπολογιστών von Neumann στους οποίους ανήκουν οι σημερινοί υπολογιστές και οδήγησε στη δημιουργία των πρώτων γλωσσών προγραμματισμού
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 5 λ-Λογισμός Σχεδιασμός νέων αρχιτεκτονικών υπολογιστών – Μηχανές αναγωγής (reduction machines) και – Υπολογιστές ροής δεδομένων (data-flow computers) Όταν πρωτο-δημιουργήθηκαν εκτελούσαν αποκλειστικά προγράμματα γραμμένα σε κάποια διάλεκτο του λ-λογισμού. Δημιουργία συναρτησιακού προγραμματισμού – John McCarthy σχεδίασε τη γλώσσα προγραμματισμού LISP στα τέλη της δεκαετίας του Αργότερα δημιουργήθηκαν οι Scheme, ML, Miranda, Haskell, κλπ.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 6 λ- Λογισμός Υπολογιστές και συναρτησιακός προγραμματισμός δεν έτυχαν ευρείας αποδοχής όπως οι υπολογιστές von Neumann και ο προστακτικός προγραμματισμός Οι επιδόσεις των πρώτων μηχανών αναγωγής και οι υλοποιήσεις των συναρτησιακών γλωσσών ήταν χειρότερες από τα παραδοσιακά συστήματα.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 7 λ-Λογισμός Ιδιαίτερα πρόσφορος ως συμβολισμός για την περιγραφή σημασιολογικών ιδιοτήτων των γλωσσών προγραμματισμού. Διευκόλυνε τη μελέτη και απομόνωση προβλημάτων σχεδίασης και υλοποίησης των γλωσσών προγραμματισμού – Μηχανισμό κλήσης υπο-προγραμμάτων και δομή συστήματος τύπων
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 8 λ-Λογισμός Διατύπωση θεωρίας πεδίων Θεμελίωση ερευνητικού πεδίου της σημασιολογίας γλωσσών προγραμματισμού
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 9 Διαισθητική εισαγωγή Ο λ-λογισμός είναι θεωρία συναρτήσεων Δύο κύριες λειτουργίες – Εφαρμογή συνάρτησης F πάνω σε ένα όρισμα Α, που συμβολίζεται με F A – Αφαίρεση. Έστω ότι x μεταβλητή και Ε[x] έκφραση, που εξαρτάται από τη x. Η έκφραση λx.E[x] συμβολίζει τη συνάρτηση x ↦ E[x]
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 10 Διαισθητική εισαγωγή Η συνάρτηση δέχεται ως όρισμα μία τιμή υ και επιστρέφει ως αποτέλεσμα την τιμή Ε[υ]. Η x δεν εμφανίζεται απαραίτητα στην έκφραση Ε[x]. Αν αυτό δεν συμβαίνει, τότε η λx.E[x] είναι μία σταθερή συνάρτηση.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 11 Παράδειγμα Η λx. x 2 – 3x +2 συμβολίζει μία συνάρτηση, που σε κάθε τιμή x απεικονίζει την τιμή x 2 – 3x +2. Αν η συνάρτηση εφαρμοσθεί στο όρισμα 8, προκύπτει (λx. x 2 – 3x +2)8 = 8 +2 =42 Η τιμή του ορίσματος αντικαθιστά την παράμετρο x
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 12 Ελεύθερη και Δεσμευμένη Μεταβλητή Η αφαίρεση λx.E[x] δεσμεύει τη μεταβλητή x μέσα στην έκφραση Ε[x]. Μεταβλητή μη δεσμευμένη ονομάζεται ελεύθερη. Παράδειγμα: λx. x 2 – 3y +2 x δεσμευμένη και y ελεύθερη Παράδειγμα: (λx. x 2 – 3y +2)(4x + 1) H πρώτη εμφάνιση του x (στο x 2 ) είναι δεσμευμένη, γιατί είναι στο εσωτερικό της αφαίρεσης, ενώ η δεύτερη (στο 4x + 1) είναι ελεύθερη)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 13 Παράδειγμα Δέσμευσης sinx +cosy cosx –siny Η μεταβλητή x στο εσωτερικό του ολοκληρώματος είναι δεσμευμένη και κατά συνέπεια η τιμή του ολοκληρώματος δεν εξαρτάται από την τιμή του x έξω από αυτό. Η μεταβλητή y είναι ελεύθερη και η τιμή του ολοκληρώματος εξαρτάται από την τιμή του y έξω από αυτό. ∫ dx
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 14 Λάμβδα όροι Ο λ-λογισμός είναι μία τυπική γλώσσα Λ, η σύνταξη της οποίας δίνεται από τον ακόλουθο επαγωγικό ορισμό:
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 15 Ορισμός 10.1 Έστω V ένα αριθμήσιμο σύνολο μεταβλητών. Το σύνολο Λ των όρων του λ- λογισμού είναι το μικρότερο σύνολο, που ικανοποιεί τις παρακάτω ιδιότητες: x V x Λ Μ,Ν Λ (Μ Ν) Λ x V, Μ Λ (λx.Μ) Λ
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 16 λ-όροι Τα στοιχεία του συνόλου Λ ονομάζονται επίσης λ-όροι (λ-terms). Υπάρχουν τριών ειδών: Μεταβλητές (Variables), δηλαδή στοιχεία του συνόλου V Εφαρμογές (Applications), με μορφή (Μ Ν), όπου Μ και Ν είναι λ-όροι Αφαιρέσεις (Abstractions), με μορφή (λx.M), όπου x μεταβλητή και Μ λ-όρος
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 17 λ-όροι Κατά σύμβαση χρησιμοποιούνται μικρά γράμματα του λατινικού αλφαβήτου (x,y,z κλπ) για συμβολισμό μεταβλητών και κεφαλαία (Μ,Ν,F,G, P κλπ) για λ-όρους.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 18 λ-όροι Χρησιμοποιώντας αφηρημένη σύνταξη BNF και θεωρώντας ότι η συντακτική κλάση των μεταβλητών παριστάνεται με το μη- τερματικό σύμβολο (var), η γλώσσα Λ των λ-όρων περιγράφεται ισοδύναμα term ::= var | ( term term ) | ( λ var term )
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 19 Παράδειγμα 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)))
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 20 Συμβάσεις Για απλοποίηση των λ-όρων και αποφυγή μεγάλου αριθμού παρενθέσεων (με αυστηρή τήρηση ορισμού 10.1) χρησιμοποιούνται οι συμβάσεις – Εξωτερικές παρενθέσεις δεν γράφονται λx.x συντομογραφία του (λx.x) – Η εφαρμογή είναι αριστερά προσεταιριστική F M 1 M 2 … M n συντομογραφία του (…((F M 1 )M 2 )… M n )
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 21 Συμβάσεις – Η αφαίρεση εκτείνεται όσο περισσότερο είναι δυνατό, δηλαδή ως το επόμενο κλείσιμο παρένθεσης ή το τέλος του όρου: λx. M 1 M 2 … M n συντομογραφία του λx. (M 1 M 2 … M n )
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 22 Παράδειγμα 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)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 23 Ορισμός 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)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 24 Μεταβλητές Η μεταβλητή x στην αφαίρεση λx.Μ ονομάζεται δεσμεύουσα μεταβλητή (binding variable) Η εμβέλεια (scope) της αφαίρεσης λx είναι ο λ-όρος Μ, εκτός από τυχόν αφαιρέσεις, που αυτός περιέχει και στις οποίες δεσμεύουσα μεταβλητή είναι πάλι η x.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 25 Μεταβλητές Εμφανίσεις της μεταβλητής x που βρίσκονται στην εμβέλεια κάποιου λx ονομάζονται δεσμευμένες (bound). Εμφανίσεις, που δεν βρίσκονται στην εμβέλεια κανενός λx ονομάζονται ελεύθερες.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 26 Ορισμός 10.3 Το σύνολο των ελεύθερων μεταβλητών (free variables) ενός λ-όρου Μ Λ συμβολίζεται με FV(M) και ορίζεται επαγωγικά ως εξής: FV(x) = {x} FV(M N) = FV(M) FV(N) FV(λx.M) = FV(M) - {x}
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 27 Παράδειγμα 10.3 Έστω ο παρακάτω όρος: Μ (λx. y x) (λy. x y) Ελεύθερη Δεσμευμένη Ελεύθερη Δεσμευμένη
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 28 Παράδειγμα 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}
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 29 Ορισμός 10.4 Ένας λ-όρος Μ Λ ονομάζεται κλειστός λ-όρος (closed λ-term ή combinator) αν FV(M) = . Το σύνολο των κλειστών λ- όρων συμβολίζεται με Λ ο.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 30 Παράδειγμα 10.4 Οι ακόλουθοι λ-όροι είναι κλειστοί και στη βιβλιογραφία ονομάζονται πρότυποι κλειστοί όροι (standard combinators). I λx. x K λx. λy. x K * λx. λy. y S λx. λy. λz. (x z)(y z)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 31 Αντικατάσταση Βασική πράξη συμβολικής επεξεργασίας των λ-όρων Επηρεάζει ελεύθερες μεταβλητές Ο συμβολισμός Μ[x := N] παριστάνει το αποτέλεσμα αντικατάστασης στον όρο Μ όλων των ελεύθερων εμφανίσεων της μεταβλητής x με τον όρο Ν.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 32 Ορισμός 10.5 Η αντικατάσταση της μεταβλητής x V στον όρο Μ Λ με τον όρο Ν Λ συμβολίζεται με Μ[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] αν (y FV(N) ή x FV(P)) (λy.P) [x:=N] λz.P [y:=z] [x:=N] αν y FV(N) και x FV(P), όπου z FV(P) FV(N)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 33 Παρατηρήσεις Αντικαθίστανται μόνο οι ελεύθερες εμφανίσεις μιας μεταβλητής Στο αποτέλεσμα της αντικατάστασης καμία από τις ελεύθερες μεταβλητές του όρου Ν δεν θα γίνει δεσμευμένη Η δέσμευση ελεύθερης μεταβλητής του όρου Ν θα μπορούσε να γίνει μόνο μέσω του τελευταίου κανόνα, στην περίπτωση, που y FV(N) και x FV(P). Ο κανόνας μεριμνά για μετονομασία της δεσμεύουσας μεταβλητής, προκειμένου να αποφευχθεί αυτό το ενδεχόμενο.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 34 Παρατηρήσεις Στον τελευταίο κανόνα η επιλογή της μεταβλητής z V είναι ελεύθερη υπό την προϋπόθεση ότι z FV(P) FV(N) Για τον μονοσήμαντο ορισμό του αποτελέσματος της αντικατάστασης Μ[x:=N] πρέπει σε αυτό τον κανόνα να καθορίζεται επακριβώς ο τρόπος επιλογής της μεταβλητής αυτής. Τα στοιχεία του συνόλου V είναι αριθμημένα και επιλέγεται ως z το πρώτο, που ικανοποιεί την z FV(P) FV(N)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 35 Μετατροπές Τρία είδη μετατροπής (α,β και η) Κάθε είδος μετατροπής περιγράφεται από τον κανόνα Μ χ N όπου χ {α,β,η} και Μ,Ν Λ. Ο όρος Μ ονομάζεται χ-redex ή απλά redex και ο Ν όρος contractum.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 36 Ορισμός 10.6 Μία σχέση πάνω στο Λ ονομάζεται συμβατή (compatible) αν για κάθε x V και για κάθε Μ,Ν,Ρ Λ ισχύουν οι παρακάτω ιδιότητες: Μ Ν (Μ Ρ) (Ν Ρ) Μ Ν (Ρ Μ) (Ρ Ν) Μ Ν (λx. M) (λx. Ν) Η σχέση ταυτότητας μεταξύ των λ-όρων είναι συμβατή.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 37 Ορισμός 10.7 Μία σχέση αναγωγής (reduction relation) είναι μία συμβατή, ανακλαστική και μεταβατική σχέση πάνω στο Λ.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 38 Ορισμός 10.8 Μία σχέση συμφωνίας (congruence relation) είναι μία συμβατή σχέση ισοδυναμίας πάνω στο Λ. ( Μία σχέση ονομάζεται σχέση ισοδυναμίας (equivalence relation) αν είναι ανακλαστική, μεταβατική και συμμετρική. )
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 39 Ορισμός 10.9 Η σχέση α ορίζεται ως η μικρότερη συμβατή σχέση πάνω στο Λ για την οποία για κάθε Μ Λ και για κάθε x,y V τέτοια ώστε y FV(M) ισχύει λx.M α λy.M[x:=y] Ο περιορισμός y FV(M) εξασφαλίζει ότι η μετονομασία της δεσμεύουσας μεταβλητής δεν προκαλεί δέσμευση των μεταβλητών του όρου Μ, που ήταν αρχικά ελεύθερες.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 40 Παράδειγμα 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.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 41 Παράδειγμα 10.5 Η παρακάτω μετατροπή είναι λανθασμένη: λx.λz.z x y α λy.λz.z y y γιατί δεν πληρείται ο περιορισμός y FV(λz.z x y)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 42 Ορισμός Η σχέση β ορίζεται ως η μικρότερη συμβατή σχέση πάνω στο Λ για την οποία για κάθε Μ, Ν Λ και για κάθε x,y V ισχύει (λx.M)Ν β M[x:=Ν]
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 43 Παράδειγμα 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)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 44 Παράδειγμα 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 νέα μεταβλητή.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 45 Ορισμός Η σχέση n ορίζεται ως η μικρότερη συμβατή σχέση πάνω στο Λ για την οποία για κάθε Μ Λ και για κάθε x V τέτοια ώστε x FV(M) ισχύει λx.M x n M
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 46 Παράδειγμα 10.7 Οι παρακάτω n-μετατροπές είναι σωστές: λx.z x n z λy.z x y n z x Όχι όμως η: λx.z x x n z x γιατί δεν πληρείται το x FV(z x)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 47 Μετατροπή, αναγωγή και ισότητα Οι τρεις κανόνες μετατροπής (α), (β) και (n) ορίζουν τρεις βασικές σχέσεις μετατροπής α, β, n για το λ-λογισμό. Η συνολική σχέση μετατροπής M N θα υποδηλώνει ότι ο όρος Μ μετατρέπεται σε ένα βήμα στον όρο Ν με έναν από τους τρεις κανόνες.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 48 Ορισμός Με συμβολίζεται η ένωση των σχέσεων α, β, n, δηλαδή η σχέση ορίζεται ως η μικρότερη σχέση για την οποία ισχύουν: Μ α Ν Μ Ν Μ β Ν Μ Ν Μ n Ν Μ Ν
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 49 Συμβολισμός Μ Ν ο Ν 1 Ν 2 .... Ν n-1 Ν n Ν Ο όρος Μ μετατρέπεται στον όρο Ν με ακολουθία βημάτων, πιθανώς κενή. Η σχέση συμβολίζεται Μ ↠ Ν Αν n =1 τότε η μετατροπή γίνεται σε ένα βήμα Μ Ν και άρα η σχέση ↠ εμπεριέχει την . Αν n=0, η ακολουθία είναι κενή και δε συμβαίνει μετατροπή, δηλαδή Μ Ν και άρα η σχέση ↠ εμπεριέχει την .
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 50 Ορισμός Με ↠ συμβολίζεται το ανακλαστικό και μεταβατικό κλείσιμο της σχέσης →. Δηλαδή, η σχέση ↠ ορίζεται ως η μικρότερη σχέση για την οποία ισχύουν: Μ → Ν Μ ↠ Ν Μ ↠ Μ Μ ↠ Ν, Ν ↠ Ρ Μ ↠ Ρ
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 51 Παρατηρήσεις Η σχέση ↠ είναι σχέση αναγωγής (ορισμός 10.7). Όταν ισχύει Μ ↠ Ν λέμε ότι ο όρος Μ ανάγεται στον όρο Ν. Όταν Μ ↠ Ν, όλα τα βήματα στην ακολουθία μετατροπής έχουν την ίδια κατεύθυνση, από αριστερά προς δεξιά.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 52 Παρατηρήσεις Αν επιτραπεί η ύπαρξη «αντίστροφων βημάτων, όπως Μ Ν ο Ν 1 Ν 2 Ν 3 Ν 4 Ν 5 Ν 6 Ν Τότε οδηγούμαστε σε μία γενικότερη σχέση, που συμβολίζουμε με =. Η σχέση αυτή, εμπεριέχει τις ↠, και .
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 53 Ορισμός Με = συμβολίζεται η σχέση ισοδυναμίας, που προκύπτει από την ↠. Δηλαδή η σχέση = ορίζεται ως η μικρότερη σχέση για την οποία ισχύουν: Μ ↠ Ν Μ = Ν Μ = Ν Ν = Μ Μ = Ν, Ν = Ρ Μ = Ν
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 54 Σχέσεις “=“, “ ” Η σχέση = είναι σχέση συμφωνίας (ορισμός 10.8). Όταν ισχύει Μ=Ν, ο όρος Μ είναι ίσος με τον όρο Ν. Με τη σχέση ισότητας Μ=Ν δεν εννοείται ότι οι δύο όροι ταυτίζονται, δηλαδή δεν ισχύει Μ Ν (ορισμός 10.2). Η διάκριση των δύο σχέσεων και η επιλογή του συμβόλου “=“ για τη σχέση συμφωνίας του ορισμού ενδέχεται να μπερδέψει τον αναγνώστη.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 55 Κανονικές μορφές λ-λογισμός θεωρείται ως υπολογιστικό μοντέλο επεξεργασίας συναρτήσεων Σχέσεις μετατροπής – παριστάνουν την πραγματοποίηση βημάτων επεξεργασίας πάνω στους λ- όρους – Αποσκοπούν στον υπολογισμό κάποιου αποτελέσματος
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 56 β - Μετατροπή Κατ’ εξοχήν υπολογιστική πράξη, αφού διαισθητικά παριστάνει εφαρμογή μίας συνάρτησης σε κάποιο όρισμα
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 57 α - Μετατροπή Δεν προάγει τη διαδικασία υπολογισμού. Τα ονόματα των δεσμευμένων μεταβλητών δεν έχουν ουσιαστική σημασία. Η μετονομασία των μεταβλητών, που επιτελείται μέσω της α-μετατροπής δεν αποτελεί ουσιαστικό υπολογιστικό βήμα
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 58 η – μετατροπή Δεν συμβάλλει άμεσα στην υπολογιστική διαδικασία. Υλοποιεί έναν μηχανισμό για την υλοποίηση λ-όρων, που παριστάνουν συναρτήσεις
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 59 Παρατηρήσεις Η σχέση μετατροπής M N παριστάνει ένα βήμα στη διαδικασία υπολογισμού Η σχέση Μ ↠ Ν παριστάνει (πιθανώς κενή) ακολουθία από τέτοια βήματα. Όταν Μ ↠ Ν μπορεί να θεωρηθεί ότι ο όρος Ν προέκυψε κατά την αποτίμηση του όρου Μ. – Αποτίμηση ενός όρου είναι η διαδοχική εφαρμογή κανόνων μετατροπής σε αυτόν.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 60 Κανονικές μορφές Όταν σε έναν όρο Μ δεν εφαρμόζεται κανένα αμιγώς υπολογιστικό βήμα, δηλαδή καμία β- ή η-μετατροπή, τότε η αποτίμηση του θεωρείται ολοκληρωμένη και ο όρος είναι τελικό αποτέλεσμα. Τέτοιοι πλήρως αποτιμημένοι όροι ονομάζονται κανονικές μορφές.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 61 Ορισμός Ένας όρος Μ Λ είναι σε κανονική μορφή (normal form) όταν δεν περιέχει κανένα β- redex ή n-redex.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 62 Παράδειγμα 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
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 63 Παρατήρηση Στις κανονικές μορφές δεν λαμβάνεται υπόψη η α-μετατροπή. Αυτό είναι σύμφωνο με τη θεώρηση του λ-λογισμού ως υπολογιστικού μοντέλου. Αν δεν συνέβαινε, τότε απλοί όροι όπως ο λx.x δεν θα ήταν σε κανονική μορφή λόγω δυνατής μετονομασίας κάποιας δεσμεύουσας μεταβλητής.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 64 Παρατήρηση Η σχέση συμφωνίας = α βάσει της οποίας όλοι οι όροι, που προκύπτουν με α- μετατροπές είναι ισοδύναμοι, αποτελεί θεμελιώδη σχέση ισοδυναμίας μεταξύ κανονικών μορφών. Το γεγονός αυτό αποδίδεται και από την επόμενη πρόταση.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 65 Πρόταση 10.1 Αν ο όρος Μ Λ είναι σε κανονική μορφή και ισχύει Μ ↠ Ν για κάποιον όρο Ν Λ, τότε Μ = α Ν.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 66 Πρόταση Σχόλια Υπάρχουν λ-όροι η αποτίμηση των οποίων οδηγεί, μετά από διαδοχικές μετατροπές σε κάποια κανονική μορφή. Υπάρχουν όροι για τους οποίους αυτό δεν ισχύει και η αποτίμηση τους ενδέχεται να συνεχίζεται επ’ άπειρον χωρίς να καταλήγει σε κανονική μορφή.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 67 Ορισμός Ένας όρος Μ Λ λέμε ότι έχει κανονική μορφή αν για κάποιον όρο Ν Λ, ισχύει Μ ↠ Ν και ο Ν είναι σε κανονική μορφή. Στην περίπτωση αυτή, ο όρος Μ ονομάζεται κανονικοποιήσιμος (normalizing).
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 68 Παράδειγμα 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 σε κανονική μορφή και ο αρχικός όρος έχει κανονική μορφή.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 69 Παράδειγμα Έστω ο όρος Ω (λx. x x) (λx. x x) σε μη κανονική μορφή. Ο όρος περιέχει μόνο ένα β-redex και η μόνη μετατροπή, που μπορεί να εφαρμοσθεί είναι η: Ω (λx. x x) (λx. x x) β (λx. x x) (λx. x x) Ω Σε ένα βήμα μετατροπής, ο όρος Ω μετατρέπεται πάλι στον εαυτό του. Η διαδικασία αποτίμησης δεν τερματίζεται και ο όρος Ω δεν έχει κανονική μορφή. Εδώ η διαδικασία αποτίμησης δεν προοδεύει.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 70 Παράδειγμα Έστω ο όρος Μ (λ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.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 71 Παράδειγμα Έστω ο όρος Μ = (λx. (λy. x y) z) w με δύο β-redex για τις δύο αφαιρέσεις με δεσμεύουσες μεταβλητές x και y. Μετατρέποντας πρώτα το πρώτο από αυτά, προκύπτει η αποτίμηση: Μ β (λy. w y) z β w z Μετατρέποντας τα με την αντίστροφη σειρά προκύπτει η αποτίμηση: Μ β (λy. x z) w β w z
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 72 Παράδειγμα Έστω ο όρος Μ = (λz. y) ((λx. x x)(λx. x x)) που περιέχει τον όρο Ω του παραδείγματος Ο όρος Μ περιέχει δύο β-redex για τις δύο αφαιρέσεις με δεσμεύουσες μεταβλητές z και την πρώτη από τις δύο x. Μετατρέποντας το πρώτο, οδηγούμαστε σε κανονική μορφή: M β y Μετατρέποντας το δεύτερο, οδηγούμαστε πάλι στον ίδιο όρο, όπως με τη μετατροπή του Ω: M β (λz.y) ((λx. x x)(λx. x x)) Μ
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 73 Ορισμός Ένας όρος Μ ονομάζεται ισχυρά κανονικοποιήσιμος (strongly normalizing) αν όλες οι ακολουθίες μετατροπής, που ξεκινούν με τον Μ καταλήγουν σε κανονική μορφή.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 74 Ορισμός Η στρατηγική κατά την οποία επιλέγεται για μετατροπή κάθε φορά το αριστερότερο redex ενός όρου, δηλαδή αυτό του οποίου το σύμβολο λ βρίσκεται όσο το δυνατόν πιο αριστερά, ονομάζεται στρατηγική της αναγωγής κανονικής σειράς (normal order reduction strategy)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 75 Θεώρημα 10.1 (Church-Rosser) Έστω όροι Μ, Ν 1,Ν 2 Λ τέτοιοι ώστε Μ ↠ Ν 1 και Μ ↠ Ν 2.Τότε υπάρχει όρος Ν Λ τέτοιος ώστε Ν 1 ↠ Ν και Ν 2 ↠ Ν.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 76 Διάγραμμα Μ Ν 1 Ν 2 Ν
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 77 Πρόταση 10.2 Αν Μ 1 = Μ 2, τότε υπάρχει ένας όρος Ν τέτοιος ώστε Μ 1 ↠ Ν και Μ 2 ↠ Ν.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 78 Πρόταση 10.3 Κάθε όρος Μ έχει το πολύ μία κανονική μορφή.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 79 Απόδειξη της πρότασης 10.3 Έστω ότι όρος Μ έχει δύο κανονικές μορφές Ν 1 και Ν 2, τότε ισχύει ς ώστε Μ ↠ Ν 1 και Μ ↠ Ν 2 και άρα Ν 1 = Ν 2. Από την πρόταση 10.2 προκύπτει ότι υπάρχει όρος Ρ τέτοιος ώστε Ν 1 ↠ Ρ και Ν 2 ↠ Ρ. Όμως από την πρόταση 10.1 συνεπάγεται ότι Ν 1 = α Ρ και Ν 2 = α Ρ και άρα Ν 1 = α Ν 2.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 80 Θεώρημα 10.2 Κανονικοποίηση – Normalization Αν ο όρος Μ έχει κανονική μορφή, τότε η στρατηγική της αναγωγής κανονικής σειράς οδηγεί σε αυτήν.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 81 Θεώρημα 10.3 Σταθερό σημείο – Fixed point i) Για κάθε όρο F Λ υπάρχει όρος Χ Λ τέτοιος ώστε να ισχύει F X = X ii) Υπάρχει ένας τελεστής σταθερού σημείου, δηλαδή ένας όρος Υ Λ τέτοιος ώστε για κάθε F Λ να ισχύει F(Υ F)= Υ F.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 82 Απόδειξη Θεωρήματος 10.3 i) Έστω 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)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 83 Ορισμός Πως μπορούμε να αναπαραστήσουμε τις λογικές τιμές στο λάμβδα-λογισμό; true λx. λy. x false λx. λy. y
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 84 Ορισμός Πως αναπαριστούμε τους λογικούς τελεστές; not λz. z false true
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 85 Θεώρημα 10.4 i) not true = false ii) not false = true Απόδειξη ( μόνο του πρώτου, παρόμοια γίνεται και του δεύτερου ) not true (λz.z false true) true β true false true (λx. λy. x) false true ↠ β false
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 86 Ορισμός cond λz. λx. λy. z x y if B then N else M cond B N M Αποδεικνύεται εύκολα ότι η παραπάνω δομή πληροί τις απαιτούμενες ιδιότητες.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 87 Θεώρημα 10.5 Για κάθε Ν, Μ ισχύουν τα παρακάτω i) if true then N else M = N ii) 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
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 88 Διατεταγμένα ζεύγη Στον λ-λογισμό κωδικοποιούνται διατεταγμένα ζεύγη όρων (που με τη σειρά τους κωδικοποιούν άλλα μαθηματικά αντικείμενα). Μία τέτοια κωδικοποίηση γίνεται μέσω του pair. Ο συμβολισμός Ν,Μ χρησιμοποιείται για διευκόλυνση στη γραφή όρων, που κωδικοποιούν διατεταγμένα ζεύγη.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 89 Ορισμοί και pair λx. λy. λz. z x y Ν, Μ pair N M Οι πράξεις fst και snd, που επιστρέφουν το πρώτο και το δεύτερο στοιχείο ενός διατεταγμένου ζεύγους κωδικοποιούνται ως: fst λz. z true snd λz. z false Αποδεικνύεται ότι οι πράξεις πληρούν απαιτούμενες ιδιότητες και άρα η δομή Ν,Μ χρησιμεύει ως διατεταγμένο ζεύγος.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 90 Θεώρημα 10.6 Για κάθε Ν, Μ Λ ισχύουν τα εξής: i) fst Ν,Μ = N ii) snd Ν,Μ = M
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 91 Θεώρημα 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
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 92 Φυσικοί αριθμοί Έχουν προταθεί πολλές διαφορετικές κωδικοποιήσεις των φυσικών αριθμών στον λ-λογισμό. Η πρώτη και η πιο γνωστή από αυτές είναι τα αριθμοειδή του Church.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 93 Ορισμός Έστω φυσικός αριθμός n N και όροι F, A Λ. Ο όρος F n (A) Λ ορίζεται επαγωγικά ως: F 0 (A) Α F n+1 (A) F (F n (A)) Ο ορισμός του F n (A) θα μπορούσε ισοδύναμα να δοθεί με τη μορφή F n+1 (A) F n (F A). Με επαγωγή αποδεικνύεται ότι F n (FA) F (F n (A)) και F n (F m (A)) F n+m (A).
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 94 Ορισμός (Αριθμοειδή του Church – Church numerals) Για κάθε φυσικό αριθμό n N ορίζεται ένας όρος c n Λ ως: c n λf. λx. f n (x)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 95 Ορισμός Το αριθμοειδές, που αντιστοιχεί στον αριθμό 0 είναι το c 0 λf. λx. x, στον αριθμό 1 το c 1 λf. λx. f x, στον αριθμό 2 το c 2 λf. λx. f (f x) κοκ. Όλα τα αριθμοειδή είναι σε β-κανονική μορφή (μάλιστα όλα εκτός του c 1 είναι και σε n-κανονική μορφή). Ούτε όλοι οι λ-όροι είναι αριθμοειδή, ούτε όλοι ανάγονται σε αριθμοειδή.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 96 Ορισμός 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) A exp λn. λm. m n Το θεώρημα 10.7 αποδεικνύει την ορθότητα της κωδικοποίησης πράξεων του παραπάνω ορισμού. Για την απόδειξη του είναι χρήσιμο το ακόλουθο λήμμα.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 97 Λήμμα 10.1 Για κάθε n,m N και για κάθε x,y Λ ισχύουν τα εξής: i) c n f (c m f x ) = c n+m f x ii) (c n x) m (y) = x nm (y) iii) Αν m>0, τότε (c n ) m (x) = c n m x
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 98 Λήμμα 10.1 Απόδειξη i) c n f (c m f x ) (λf. λx.f n (x)) f ((λf. λx.f m (x))) f x) ↠ β (λf. λx.f n (x)) f (f m (x)) ↠ β (f n (f m (x)) f n+m (x) ↞ β (λf. λx.f n+m (x)) f x c n+m f x
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 99 Λήμμα 10.1 Απόδειξη ii) (c n x) m+1 (y) c n x((c n x) m (y)) = c n x(x nm (y)) (επαγωγική υπόθεση) (λf. λx.f n (x)) x (x nm (y)) ↠ β x n (x nm (y)) x n+nm (y) x n(1+m) (y)
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 100 Λήμμα 10.1 Απόδειξη iii) (c n ) m+1 (x) c n ((c n ) m (x)) = c n (c n m x) (επαγωγική υπόθεση) (λf. λx.f n (x)) ( c n m x) ↠ β λy. ( c n m x) n (y) = λy. x n m n (y) (λήμμα 10.1(ii)) λy. x n m+1 (y) ← β (λ f.λx. f n m+1 (x))x c n m+1 x
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 101 Θεώρημα 10.7 Για κάθε n,m N ισχύουν τα εξής: i) succ c n = c n+1 ii) A + c n c m = c n+m iii) A * c n c m = c nm iv) Αν m>0 τότε A exp c n c m = c n m
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 102 Θεώρημα 10.7 Απόδειξη i) succ c n (λn. λf. λx. n f (f x)) (λf. λx. f n (x)) β λf. λx. (λf. λx. f n (x)) f (f x) ↠ β λf. λx. f n (f x) c n+1
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 103 Θεώρημα 10.7 Απόδειξη ii) A + c n c m (λn. λm. λf. λx. n f (m f x)) c n c m ↠ β λf. λx. c n f (c m f x) = λf. λx. c n+m f x (λήμμα 10.1 (i)) ↠ n c n+m
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 104 Θεώρημα 10.7 Απόδειξη iii) A * c n c m (λn. λm. λf. λx. n (m f)) c n c m ↠ β λf. c n f (c m f) λf. (λf. λx. f n (x)) (c m f ) β λf. λx. (c m f ) n (x) = λf. λx.f mn (x) (λήμμα 10.1 (ii)) c nm
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 105 Θεώρημα 10.7 Απόδειξη iv) A exp c n c m (λn. λm. m n) c n c m ↠ β c m c n (λf. λx.f m (x)) (c n ) β λx.(c n ) m (x) = λx.c n m x (λήμμα 10.1 (iii)) n c n m
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 106 Λάμβδα λογισμός και πέρασμα παραμέτρων Η σχέση ομοιότητας του λ-λογισμού με τις γλώσσες προγραμματισμού δεν περιορίζεται στην εκφραστική του ικανότητα ως προγραμματιστικού μοντέλου. Οι στρατηγικές αναγωγής λ-όρων είναι πολύ στενά συνδεδεμένες με μεθόδους περάσματος παραμέτρων των γλωσσών προγραμματισμού.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 107 Αναλογία λ-λογισμού και γλωσσών προγραμματισμού Οι λ-όροι αντιστοιχούν σε εκφράσεις ή εντολές Η αφαίρεση και η εφαρμογή αντιστοιχούν στον ορισμό και την κλήση συναρτήσεων ή διαδικασιών και Η διαδικασία της αναγωγής αντιστοιχεί στην αποτίμηση εκφράσεων ή την εκτέλεση εντολών.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 108 Οκνηρή αποτίμηση (lazy evaluation) Τερματισμός της αποτίμησης μιας έκφρασης πριν προκύψει πλήρως αποτιμημένο αποτέλεσμα. Υποστήριξη από γλώσσες συναρτησιακού προγραμματισμού – Haskell και Miranda
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 109 Οκνηρή αποτίμηση Τερματισμός όταν το αποτέλεσμα είναι τιμή (value). Η ακριβής μορφή των τιμών διαφέρει από γλώσσα σε γλώσσα – Αριθμητικές και λογικές σταθερές, καθώς και συναρτησιακές αφαιρέσεις είναι τιμές. Στον λ-λογισμό μόνο οι αφαιρέσεις θεωρούνται τιμές
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 110 Αναγωγή Κανονικής Μορφής Η στρατηγική της αναγωγής κανονικής σειράς σχετίζεται στενά με την οκνηρή αποτίμηση. Η μετατροπή κάθε φορά του αριστερότερου β-redex σημαίνει ότι δεν έχει προηγηθεί μετατροπή μέσα στον όρο, πάνω στον οποίο εφαρμόζεται η αφαίρεση, που αντιστοιχεί σε αυτό το β – redex.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 111 Αναλογία με Οκνηρή Αποτίμηση Κατ’ αναλογία στην οκνηρή αποτίμηση μία συνάρτηση καλείται χωρίς να προηγηθεί αποτίμηση των παραμέτρων της. Στην γλώσσα προγραμματισμού Algol 60, η συμπεριφορά αυτή επιτυγχάνεται με τη μέθοδο του περάσματος παραμέτρων κατ’ όνομα (call by name).
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 112 Παράδειγμα Η στρατηγική της αναγωγής κανονικής σειράς οδηγεί τελικά την αναγωγή του όρου (λx.λy.y)Ω στην τιμή λy.y Το ίδιο αποτέλεσμα προκύπτει στη γλώσσα Algol 60, αν ορισθούν οι συναρτήσεις και στη συνέχεια αποτιμηθεί η έκφραση f(g) στον επόμενο κώδικα:
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 113 Παράδειγμα integer procedure f (x); integer x; begin f :=42 end; integer procedure g; begin while true do g := 7 end;
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 114 Παράδειγμα Το αποτέλεσμα είναι 42, γιατί κατά την αποτίμηση δε χρειάζεται να γίνει η κλήση στη συνάρτηση g, που δεν τερματίζεται Η αποτίμηση όμως της έκφρασης f(g) δεν θα τερματιζόταν σε κάποιες άλλες γλώσσες προγραμματισμού – Pascal, C, κλπ.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 115 Πρόθυμη Αποτίμηση Στις γλώσσες αυτές το πέρασμα παραμέτρων γίνεται κατ’ αξία (by value) και η τιμή της παραμέτρου g αποτιμάται πριν κληθεί η συνάρτηση f. Η κλήση της g οδηγεί σε μη τερματισμό. Πρόθυμη αποτίμηση (eager evaluation) είναι η αποτίμηση κατά την οποία οι παράμετροι αποτιμώνται πριν γίνει η κλήση στη συνάρτηση.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 116 Πρόθυμη αποτίμηση στο λ-λογισμό Στον λ-λογισμό, το ανάλογο της πρόθυμης αποτίμησης και του περάσματος παραμέτρων κατ’ αξία είναι μία στρατηγική αποτίμησης που κατά την αποτίμηση του όρου (λx.λy.y)Ω θα αποτιμούσε πρώτα τον όρο Ω.
Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 117 Πρόθυμη αποτίμηση στο λ-λογισμό Τέτοιου είδους στρατηγικές προκύπτουν υποχρεωτικά αν στον κανόνα της β- μετατροπής (λx.M) N β M[ x:=N ] Προσθέσουμε τον περιορισμό ότι ο όρος Ν πρέπει να είναι τιμή.