Lambda-arvutus. λ-termide süntaks. Näiteid λ-termidest. Sulgudest hoidumine. E ::= V muutuja (E 1 E 2 ) aplikatsioon (λv.

Σχετικά έγγραφα
x E[x] x xµº λx. E[x] λx. x 2 3x +2

MATEMAATIKA TÄIENDUSÕPE MÕISTED, VALEMID, NÄITED LEA PALLAS XII OSA

T~oestatavalt korrektne transleerimine

ITI 0041 Loogika arvutiteaduses Sügis 2005 / Tarmo Uustalu Loeng 4 PREDIKAATLOOGIKA

Funktsiooni diferentsiaal

Kirjeldab kuidas toimub programmide täitmine Tähendus spetsifitseeritakse olekuteisendussüsteemi abil Loomulik semantika

HULGATEOORIA ELEMENTE

Kompleksarvu algebraline kuju

Kontekstivabad keeled

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

Lokaalsed ekstreemumid

The λ-calculus. Lecturer: John Wickerson. Phil Wadler

Geomeetrilised vektorid

KOMBINATSIOONID, PERMUTATSIOOND JA BINOOMKORDAJAD

{1 x2 }, 1 + x + + xn +

Punktide jaotus: kodutööd 15, nädalatestid 5, kontrolltööd 20+20, eksam 40, lisapunktid Kontrolltööd sisaldavad ka testile vastamist

HAPE-ALUS TASAKAAL. Teema nr 2

Suhteline salajasus. Peeter Laud. Tartu Ülikool. peeter TTÜ, p.1/27

MATEMAATIKA TÄIENDUSÕPE MÕISTED, VALEMID, NÄITED, ÜLESANDED LEA PALLAS VII OSA

Mudeliteooria. Kursust luges: Kalle Kaarli september a. 1 Käesoleva konspekti on L A TEX-kujule viinud Indrek Zolk.

About these lecture notes. Simply Typed λ-calculus. Types

Formaalsete keelte teooria. Mati Pentus

Foundations of Computer Science ENGR 3520 Fall 2013 Thursday, Nov 21, 2013

Arvuteooria. Diskreetse matemaatika elemendid. Sügis 2008

ΓΗ ΚΑΙ ΣΥΜΠΑΝ. Εικόνα 1. Φωτογραφία του γαλαξία μας (από αρχείο της NASA)

Diskreetne matemaatika 2016/2017. õ. a. Professor Peeter Puusemp

Kontekstivabad keeled

ΠΕΤΡΟΣ ΣΤΕΦΑΝΕΑΣ ΓΙΩΡΓΟΣ ΚΟΛΕΤΣΟΣ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΛΟΓΙΚΗΣ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ


Graafiteooria üldmõisteid. Graaf G ( X, A ) Tippude hulk: X={ x 1, x 2,.., x n } Servade (kaarte) hulk: A={ a 1, a 2,.., a m } Orienteeritud graafid

2.2.1 Geomeetriline interpretatsioon

Estimation of grain boundary segregation enthalpy and its role in stable nanocrystalline alloy design

T λx. (λy. x) F λx. (λy. y) if λpca. pca

Algebraliste võrrandite lahenduvus radikaalides. Raido Paas Juhendaja: Mart Abel

Semantiline analüüs. Süntaksipuu dekoreeritakse tüübi- ja muu kontekstist sõltuva

Matemaatiline analüüs I iseseisvad ülesanded

MÉTHODES ET EXERCICES

1.1. NATURAAL-, TÄIS- JA RATSIONAALARVUD

ALGEBRA I. Kevad Lektor: Valdis Laan

Κεφάλαιο 1 Πραγματικοί Αριθμοί 1.1 Σύνολα

KATEGOORIATEOORIA. Kevad 2016

Νόµοςπεριοδικότητας του Moseley:Η χηµική συµπεριφορά (οι ιδιότητες) των στοιχείων είναι περιοδική συνάρτηση του ατοµικού τους αριθµού.


2. HULGATEOORIA ELEMENTE

KATEGOORIATEOORIA. Kevad 2010

Introduction to Type Theory February 2008 Alpha Lernet Summer School Piriapolis, Uruguay. Herman Geuvers Nijmegen & Eindhoven, NL

C.S. 430 Assignment 6, Sample Solutions

ΝΟΜΟΣ ΤΗΣ ΠΕΡΙΟ ΙΚΟΤΗΤΑΣ : Οι ιδιότητες των χηµικών στοιχείων είναι περιοδική συνάρτηση του ατοµικού τους αριθµού.

Planeedi Maa kaardistamine G O R. Planeedi Maa kõige lihtsamaks mudeliks on kera. Joon 1

FUNKTSIONAALNE PROGRAMMEERIMINE. Skeemid. Eesmärk: esitada riistvara skeeme ja teisi andmevoodiagrammidel baseeruvaid kirjeldusi Haskellis

Λύσεις στην Συναρτησιακή Ανάλυση Κανονική εξεταστική 2009 (μπορεί να περιέχουν λάθη)

Vektorid II. Analüütiline geomeetria 3D Modelleerimise ja visualiseerimise erialale

Eesti koolinoorte XLVIII täppisteaduste olümpiaadi

Keerukusteooria elemente

2. FÜÜSIKALISE SUURUSE MÕISTE

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Avaliku võtmega krüptograafia

9. AM ja FM detektorid

1 Funktsioon, piirväärtus, pidevus

Ehitusmehaanika harjutus

SUPPLEMENTAL INFORMATION. Fully Automated Total Metals and Chromium Speciation Single Platform Introduction System for ICP-MS

Το άτομο του Υδρογόνου

Αλληλεπίδραση ακτίνων-χ με την ύλη

Matemaatiline analüüs I iseseisvad ülesanded

Krüptoloogia II: Sissejuhatus teoreetilisse krüptograafiasse. Ahto Buldas

YMM3740 Matemaatilne analüüs II

Koduseid ülesandeid IMO 2017 Eesti võistkonna kandidaatidele vol 4 lahendused

ECE570 Lecture 6: Rewrite Systems

1 Reaalarvud ja kompleksarvud Reaalarvud Kompleksarvud Kompleksarvu algebraline kuju... 5

4 8 c +t +t - (t +t ) - <t +t < - < t t < + +c ( ) +t + ( ) +t + [ - (t +t )] (t + t ) + t + t t 0 + +c c x i R + (i ΔABC ABC ) x i x i c ABC 0 ABC AC

1 Γραμμικές συναρτήσεις

λρ-calculus 1. each λ-variable is a λρ-term, called an atom or atomic term; 2. if M and N are λρ-term then (MN) is a λρ-term called an application;

From the finite to the transfinite: Λµ-terms and streams

!"! # $ %"" & ' ( ! " # '' # $ # # " %( *++*

4.1 Funktsiooni lähendamine. Taylori polünoom.

ΠΕΡΙΟΔΙΚΟ ΣΥΣΤΗΜΑ ΤΩΝ ΣΤΟΙΧΕΙΩΝ (1) Ηλία Σκαλτσά ΠΕ ο Γυμνάσιο Αγ. Παρασκευής

28. Sirgvoolu, solenoidi ja toroidi magnetinduktsiooni arvutamine koguvooluseaduse abil.

τροχιακά Η στιβάδα καθορίζεται από τον κύριο κβαντικό αριθµό (n) Η υποστιβάδα καθορίζεται από τους δύο πρώτους κβαντικούς αριθµούς (n, l)


Ι ΙΟΤΗΤΕΣ ΤΩΝ ΑΤΟΜΩΝ. Παππάς Χρήστος Επίκουρος Καθηγητής

Type Theory and Coq. Herman Geuvers. Principal Types and Type Checking

Ruumilise jõusüsteemi taandamine lihtsaimale kujule

ΠΕΡΙΟΔΙΚΟΣ ΠΙΝΑΚΑΣ ΣΤΟΙΧΕΙΩΝ

3. LOENDAMISE JA KOMBINATOORIKA ELEMENTE

Εφαρμογές της Λογικής στην Πληροφορική

A Lambda Model Characterizing Computational Behaviours of Terms

Q π (/) ^ ^ ^ Η φ. <f) c>o. ^ ο. ö ê ω Q. Ο. o 'c. _o _) o U 03. ,,, ω ^ ^ -g'^ ο 0) f ο. Ε. ιη ο Φ. ο 0) κ. ο 03.,Ο. g 2< οο"" ο φ.

Matemaatiline analüüs IV praktikumiülesannete kogu a. kevadsemester

Introduction to Type Theory February 2008 Alpha Lernet Summer School Piriapolis, Uruguay. Herman Geuvers Nijmegen & Eindhoven, NL

Κεφάλαιο 1 Πραγματικοί Αριθμοί 1.1 Σύνολα

6.642, Continuum Electromechanics, Fall 2004 Prof. Markus Zahn Lecture 8: Electrohydrodynamic and Ferrohydrodynamic Instabilities

Formalni računi sa kontrolom resursa

= λ. u t = u xx UT = U T T T = U U. Οσον αφορά τη χρονική εξίσωση έχουμε. T + λt =0 T (t) =e λt. ενώ για τη χωρική

Types and Logics. Programming Languages CS442. David Toman. School of Computer Science University of Waterloo

1 Entroopia ja informatsioon

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΔΙΕΠΙΣΤΗΜΟΝΙΚΟ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (Δ.Π.Μ.Σ.) «ΠΕΡΙΒΑΛΛΟΝ ΚΑΙ ΑΝΑΠΤΥΞΗ»

ΥΠΟΔΕΙΞΕΙΣ - ΑΠΑΝΤΗΣΕΙΣ

Appendix B Table of Radionuclides Γ Container 1 Posting Level cm per (mci) mci

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ - Τμήμα Επιστήμης Υπολογιστών

ΓΕΝΙΚΗ ΦΥΣΙΚΗ IV: ΚΥΜΑΤΙΚΗ - ΟΠΤΙΚΗ

Transcript:

Lambda-arvutus

λ-termide süntaks Näiteid λ-termidest Sulgudest hoidumine Lambda-arvutus E ::= V muutuja (E 1 E 2 ) aplikatsioon (λv. E) abstraktsioon (λx. x) (((λx. (λf. (f x))) y)(λz. z)) (λx. y) (λx. ((add x) 1)) E 1 E 2... E n ((...(E 1 E 2 )...)E n ) λv. E 1 E 2... E n (λv. (E 1 E 2... E n )) λv 1 V 2... V n. E (λv 1. (λv 2. (...(λv n. E)...))

Vabad ja seotud muutujad Lambda-arvutus Muutuja x on vaba λ-termis E (so. x FV(E)), kui ta ei asu sümboli λx mõjupiirkonnas. Vastasel korral on x seotud. FV(x) = {x} FV(E 1 E 2 ) = FV(E 1 ) FV(E 2 ) FV(λx. E) = FV(E) {x} λ-termi E nimetatakse kinniseks kui FV(E) = Näide (λx. y x) (λy. x y)

Vabad ja seotud muutujad Lambda-arvutus Muutuja x on vaba λ-termis E (so. x FV(E)), kui ta ei asu sümboli λx mõjupiirkonnas. Vastasel korral on x seotud. FV(x) = {x} FV(E 1 E 2 ) = FV(E 1 ) FV(E 2 ) FV(λx. E) = FV(E) {x} λ-termi E nimetatakse kinniseks kui FV(E) = Näide (λx. y x) (λy. x y) vaba seotud vaba seotud

Teooria λ Aksioomid M = M (λx. M) N = M[N/x] (β) Tuletusreeglid M = N N = M M = N N = L M = L M = N MZ = NZ M = N ZM = ZN M = N λx. M = λx. N (ξ) NB! Relatsiooni = nimetatakse konversiooniks.

β - konversioon Teooria λ Vastab funktsiooni väljakutse väärtustamisele! Näited (λx. f x) E = f E (λx y. add x y) 3 = λy. add 3 y (λy. add 3 y) 4 = add 3 4 (λx y. add x y)(square y) λy. add (square y) y

Teooria λ Püsipunktiteoreem F Λ, X Λ. FX = X Tõestus Olgu W λx. F(xx) ja X WW. Siis X WW (λx. F(xx))W = F(WW ) FX Näited term λxy. xy λx. x tema püsipunkt (λxy. (xx)y)(λxy. (xx)y) (λx. xx)(λx. xx)

α-kongruents Teooria λ Term M on α-kongruentne termiga N (tähistame M α N), kui M ja N on identsed muutujate ümbernimetamise täpsuseni. Näited λx. x α λy. y λx. f x α λz. f z λx. (λy. y) x α λy. (λy. y) y λx y. add x y α λy y. add y y Konventsioon Kõik seotud muutujad on vabadest muutujatest erinevad.

Substitutsioon Teooria λ Muutuja x substitutsiooniks termiga E nimetatakse muutuja x kõigi vabade esinemiste asendamist termiga E selliselt, et kõik termi E vabad muutujad on ka pärast asendamist vabad. Substitutsiooni definitsioon E E[E /x] x E y E 1 E 2 λy. E 1 y E 1 [E /x] E 2 [E /x] λy. E 1 [E /x]

Substitutsioon Substitutsiooni definitsioon a la Church E E[E /x] x E y E 1 E 2 y E 1 [E /x] E 2 [E /x] λx. E 1 λx. E 1 λy. E 1 (y FV(E )) λy. E 1 [E /x] λy. E 1 (y FV(E )) λz. E 1 [z/y][e /x] z on uus muutuja

Substitutsioon Substitutsiooni lemma Kui x ja y on erinevad muutujad ning x FV(L), siis M[N/x][L/y] M[L/y][N[L/y]/x] Substitutsiooni omadusi M = M M[N/x] = M [N/x] N = N M[N/x] = M[N /x] Ilmutatud viidatavus (Leibniz) Olgu C[ ] mingi kontekst, siis M = N C[M] = C[N]

Teooria λ + ext Teooria λ + η M x = N x M = N Ekstensionaalsus x FV(MN) (ext) λx. M x = M x FV(M) (η) Näited λx. (λy. y) x = λy. y λx. add x = add λx. add x x add x Lemma Teooriad λ + ext ja λ + η on ekvivalentsed.

Mõisted Näide Reduktsioon Reduktsioon on ainult vasakult paremale rakendatav konversioon; paremalt vasakule ekspansioon. Alamtermi, millele saab rakendada reduktsioonireeglit nim. reedeksiks. Ilma ühtegi reedeksita term on normaalkujul. η-reedeks {}}{ (λx. (λx. x) (λx. x) x) z }{{} β-reedeks β-reedeks

Reduktsioon

Mõisted Reduktsioon Relatsioon R Λ 2 on kooskõlaline kui iga termi M,N Λ ja üheaugulise konteksti C[ ] korral: (M,N) R = (C[M],C[N]) R Relatsiooni R Λ 2 nimatatakse võrduseks (kongruentsiks) kui ta on kooskõlaline ekvivalentsusrelatsioon. Relatsiooni R Λ 2 nimetatakse reduktsiooniks kui ta on kooskõlaline, refleksiivne ja transitiivne.

Reduktsioon Ühesammuline R-reduktsioon (M,N) R M R N M R N λx. M R λx. N M R N MZ R NZ M R N ZM R ZN R-reduktsioon M R N M = R N M = R M M = R N N = R L M = R L R-konversioon M = R N M = R N N = R M M = R N M = R N N = R L M = R L

Reduktsioon Väide Relatsioonid R, = R ja = R on kooskõlalised. Lemma N = R N = M[N/x] = R M[N /x] NB! Ei kehti R korral! Näiteks kui M xx, N (λy.y)z ja N z, siis N β N, aga (λy.y)z((λy.y)z) β zz

Mõisted Reduktsioon Termi M nimetatakse R-reedeksisks kui N.(M,N) R. Termi N nimetatakse termi M R-kontraktumiks. Term M on R-normaalkujul kui ta sisalda ühtegi R-reedeksit. Termi N nimetatakse termi M R-normaalkujuks kui N on R-normaalkujul ja M = R N.

Väide Reduktsioon M R N M C[P],N C[Q] ja (P,Q) R. Järeldus Olgu M R-normaalkujul, siis M = R N = M N. NB! Sellest et N[M = R N = M N] ei järeldu, et term M oleks R-normaalkujul.

Church-Rosseri teoreem Mõisted Binaarne relatsioon on rombi omadusega ( = ) kui M,M 1,M 2 [M M 1 M M 2 = M 3 [M 1 M 3 M 2 M 3 ]] Relatsioon R on Church-Rosser (CR) kui = R = Church-Rosseri teoreem CR(R) M = R N = Z[M = R Z N = R Z] Järeldused Kui N on termi M R-normaalkuju, siis M = R N. Igal termil saab olla ülimalt üks normaalkuju.

Church-Rosseri teoreem Lemma = = =, kus on transitiivne sulund Hiidreduktsioon (grand reduction) M = 1 M N = 1 N M = 1 M MN = 1 M N M = 1 N λx. M = 1 λx. N M = 1 M N = 1 N (λx.m)n = 1 M [N /x]

Lemma Church-Rosseri teoreem M = 1 M,N = 1 N = M[N/x] = 1 M [N /x]; λx.m = 1 N = N λx.m, kus M = 1 M ; MN = 1 L järeldub: kas L M N, kus M = 1 M ja N = 1 N ; või M λx.p, L P [N /x], kus P = 1 P ja N = 1 N. Lemma = 1 = Teoreem = β on = 1 transitiivne sulund

Church-Rosseri teoreem Mõisted Binaarne relatsioon on nõrgalt rombi omadusega kui iga M, M 1 ja M 2 korral M M 1 M M 2 = M 3 [M 1 = M 3 M 2 = M 3] kus = on relatsiooni refleksiivne ja transitiivne sulund. Relatsioon R on nõrgalt Church-Rosser (WCR) kui R on nõrgalt rombi omadusega. Relatsioon R on tugevalt normaliseeruv (SN) kui ühegi termi M korral ei leidu lõpmatut reduktsioonijada. Newmanni lemma SN WCR CR

Reduktsioonistrateegiad

Reduktsioonijärjekorrad Reduktsioonistrateegiad Normaalkuju saavutamine sõltub reduktsiooni järjekorrast! Normaaljärjekord alati redutseeritakse kõige välimine vasakpoolne reedeks (λx.y)((λx.(xx))(λx.(xx))) β y Aplikatiivne järjekord alati redutseeritakse kõige sisemine vasakpoolne reedeks β... (λx.y)((λx.(xx))(λx.(xx))) (λx.y)((λx.(xx))(λx.(xx)))

Märgendatud λ-termid Näide Standardiseerimisteoreem Λ A on märgendatud λ-termide hulk: x a Λ A, kus a A ja x on muutuja; (λx.m) a Λ A, kus a A ja M Λ A ; (MN) a Λ A, kus a A ja M,N Λ A. Märgenduseks nimetatakse funktsiooni mis (märgendamata) termi iga alamtermiga seob märgendi. Märgendust nimetatakse algmärgenduseks kui erinevad alamtermid seotakse erinevate märgenditega. ((λx.(x 1 x 2 ) 3 ) 4 (y 5 z 6 ) 7 ) 8

Märgendatud β-reegel Standardiseerimisteoreem ((λx.m) a N) b = M[N/x] Märgendatud substitutsioon x a [N/x] N y a [N/x] y a (M 1 M 2 ) a [N/x] (M 1 [N/x]M 2 [N/x]) a (λy.m) a [N/x] (λy.m[n/x]) a Näide ((λx.(x 1 x 2 ) 3 ) 4 (y 5 z 6 ) 7 ) 8 β ((y 5 z 6 ) 7 (y 5 z 6 ) 7 ) 3

Reedeksi jäägid Näide Standardiseerimisteoreem Olgu M N, I termi M märgendus, J termi N märgendus ning redutseeritava reedeksi märgend (M N): alamtermi T Sub(N) nimetatakse alamtermi S Sub(M) järglaseks kui I(S) = J(T); reedeksi järglast nimetatakse selle reedeksi jäägiks; redutseeritud reedeksil ei ole ühtegi jääki. (λxy.(λzw.xz)y)mn β (λy.(λzw.mz)y)n β (λzw.mz)n β λw.mn

Peanormaalkujud Standardiseerimisteoreem Term M Λ on peanormaalkujul (HNF) kui M λx 1...x n.xm 1...M m n,m 0 Kui M λx 1...x n.(λx.m 0 )M 1...M m, kus n 0 ja m 1, siis alamtermi (λx.m 0 )M 1 nimetatakse peareedeksiks Term M Λ on nõrgal peanormaalkujul (WHNF) kui M { xm1...m n n 0 λx.m

Standardreduktsioon Standardiseerimisteoreem Standardreduktsiooniks nimatatakse reduktsioonijada M 0 0 M 1 1 M 2 2... kus iga kahe reedeksi i ja j (i > j) korral i ei ole reedeksist j vasakul asuvate reedeksite jäägiks. NB! Normaaljärjekorras reduktsioon on standardreduktsioon!

Standardiseerimisteoreem Lemma M = N Z[M = h Z = i N] Standardiseerimisteoreem M = N M = s N

Variatsioonid

Konstantidega lambda-arvutus Konstantidega λ-arvutus E ::= V muutuja C konstant (E 1 E 2 ) aplikatsioon (λv. E) abstraktsioon Iga konstandiga seotakse mingi arv δ-reduktsiooni reegleid. Näide Naturaalarvud (0, 1, 2,...) ja liitmine (+) + 0 0 δ 0 + 1 0 δ 1 + 0 1 δ 1 + 1 1 δ 2...... NB! δ-reeglite lisamine võib kokkuvoolavuse ära rikkuda!

De Bruijn i λ-termid De Bruijn i λ-arvutus Muutujad on asendatud siduva λ kaugusega E ::= N muutuja (E 1 E 2 ) aplikatsioon (λ E) abstraktsioon Näited λx. x λ1 λx y. x y λλ21 λx y. x y (λy. x y y) λλ21(λ311) λx. x (λy. x y y) λ1(λ211)

De Bruijn i λ-arvutus β-konversioon (λm)n = M[N/1] Substitutsiooni definitsioon m[n/n] = m if m < n m 1 if m > n shift n,1 (N) if m = n (M 1 M 2 )[N/n] = (M 1 [N/n]) (M 2 [N/n]) (λm)[n/n] = λ(m[n/n + 1]) shift n,i (j) = j if j < i j + n 1 if j i shift n,i (N 1 N 2 ) = shift n,i (N 1 ) shift n,i (N 2 ) shift n,i (λn) = λ shift n,i+1 (N)

Kombinaatorloogika

Väide Kombinaatorloogika Olgu M( x) mingi λ-term mis sisaldab vabu muutujaid x. Siis leidub term F selline, et F x = M( x). Kombinaatortermide süntaks E ::= I K S (E 1 E 2 ) Reduktsioonireeglid I x x K x y x S f g x f x (g x) NB! Identsuskombinaator on teistest defineeritav: SKK = I

Kombinaatorloogika Teooria CL Aksioomid Tuletusreeglid P = P K P Q = P S P Q R = P R (Q R) P = Q Q = P P = Q Q = R P = R P = Q PR = QR P = Q RP = RQ

Kombinaatorloogika ja λ-arvutus CL Λ Abstraktsioon I λx. x K λx y. x S λf g x. f x (g x) [x] x I [x] y K y [x] c K c [x] (E 1 E 2 ) S ([x] E 1 ) ([x] E 2 )

Kombinaatorloogika ja λ-arvutus Λ CL Näide C [[x]] = x C [[c]] = c C [[(E 1 E 2 )]] = (C [[E 1 ]]) (C [[E 2 ]]) C [[(λx. E)]] = [x] (C [[E]]) C [[(λx y. y x)]] = [x] ([y] (y x)) = [x] (S ([y] y) ([y] x)) = [x] (S I (K x)) = S ([x] S I) ([x] K x) = S (S ([x] S) ([x] I)) (S ([x] K) ([x] x)) = S (S (K S) (K I)) (S (K K) I)

Kombinaatorloogika ja λ-arvutus Lemma CL P = Q = λ P λ = Q λ NB! Vastupidine ei kehti!! (Näiteks: SK KI) Curry aksioomid K = S(S(KS)(S(KK)K))(K(SKK)) S = S(S(KS)(S(K(S(KS)))(S(K(S(KK)))S)))(K(K(SKK))) S(S(KS)(S(KK)(S(KS)K)))(KK) = S(KK) S(KS)(S(KK)) = S(KK)(S(S(KS)(S(KK)(SKK)))(K(SKK))) S(K(S(KS)))(S(KS)(S(KS))) = S(S(KS)(S(KK)(S(KS)(S(K(S(KS)))S))))(KS)

NB! Optimiseerimised Kombinaatortermi suurus on eksponentsiaalne esialgse termi argumentide arvust! Kombinaatorid B ja C B S(KS)K C S(BS(BKS))(KK) Reduktsioonireeglid B f g x f (g x) C f g x f x g

Optimiseerimisreeglid Optimiseerimised S (K p) (K q) = K (p q) S (K p) I = p S (K p) q = B p q S p (K q) = C p q Näide C [[(λx y. y x)]] = [x] (S I (K x)) = [x] (C I x) = S ([x](c I) ([x]x)) = S (S (K C) (K I)) I = S (K (C I)) I = C I

NB! Optimiseerimised Optimiseeritud kombinaatortermi suurus on esialgse termi ruut! C [[λx 1.p q]] = S p 1 q 1 C [[λx 2 x 1.p q]] = S (B S p 2 ) q 2 C [[λx 3 x 2 x 1.p q]] = S (B S (B (B S) p 3 )) q 3 C [[λx 4 x 3 x 2 x 1.p q]] = S (B S (B (B S) (B (B (B S)) p 4 ))) q 4

Turneri kombinaatorid Optimiseerimisreeglid Optimiseerimised S c f g x c (f x) (g x) B c f g x c f (g x) C c f g x c (f x) g B c f g x c (f (g x)) S (K p) (K q) = K (p q) S (K p) I = p S (K p) (B q r) = B p q r S (K p) q = B p q S (B p q) (K r) = C p q r S p (K q) = C p q S (B p q) r = S p q r

Arvutatavus ja Church i tees

Andmete esitamine λ-arvutuses Baaskombinaatorid I λx. x K λx y. x S λf g x. f x (g x) Astendamine E 0 E E E n E E(E(...(E E }{{} )...)) n tükki NB! E n (E E ) E n+1 E E (E n E )

Tõeväärtused Spetsifikatsioon not true = false not false = true Definitsioon Näide true λxy. x ( K) false λxy. y not λt. t false true not true (λt. t false true) true true false true (λx. λy. x) false true (λy. false) true false

Tingimuslause Spetsifikatsioon cond true E 1 E 2 = E 1 cond false E 1 E 2 = E 2 Definitsioon cond λt x y. t x y Näide cond false E 1 E 2 (λt x y. t x y) false E 1 E 2 = false E 1 E 2 (λx y. y) E 1 E 2 = E 2

Paarid ja ennikud Paarid Ennikud fst λp. p true snd λp. p false (E 1,E 2 ) λf. f E 1 E 2 (E 1,...,E n ) (E 1,(...(E n 1,E n )...)) E n 1 fst E E n 2 fst (snd E)... E n i fst (snd i 1 E)... E n n snd n 1 E

Standardnumbrid Liitmine (?!) Naturaalarvud 0 λx. x ( I) n+1 (false, n ) succ λn. (false,n) pred λn. n false ( snd) iszero λn. n true ( fst) add = λx y. cond(iszero x) y (add(pred x)(succ y))

Church i numbrid Naturaalarvud n λf x. f n x succ λn. λf x. n f (f x) iszero λn. n (λx. false) true add λm n. λf x. m f (n f x) Näide add 2 1 (λm n. λf x. m f (n f x)) 2 1 = λf x. 2 f (1 f x) = λf x. f (f (1 f x)) = λf x. f (f (f x))) 3 Korrutamine ja astendamine mul λm n. λf x. m (n f ) x exp λm n. λf x. n m f x

Naturaalarvud Ühe lahutamine abifunktsiooni spetsifikatsioon prefn f (true, x) = (false, x) prefn f (false, x) = (false, f x) (prefn f ) n (false,x) = (false,f n x) (prefn f ) n (true,x) = (false,f n 1 x) Ühe lahutamine definitsioon prefn λf p.(false,(cond(fstp)(sndp)(f (sndp)))) pred λn. λf x. snd(n(prefnf )(true, x)) Näide pred n f x = snd (n (prefn f ) (true,x)) = snd ((prefn f ) n (true,x)) = snd (false,f n 1 x) = f n 1 x

Listid Definitsioon Näide nil λz. z ( I) cons λx y. (false,(x,y)) null λz. z true ( fst) hd λz. fst (snd z)) tl λz. snd (snd z)) null nil fst (λz. z) (λp. p true) (λz. z) = true

Püsipunktid Püsipunktiteoreem F. X. X = F X Mõisted Termi M nimetatakse püsipunkti kombinaatoriks kui F. M F = F (M F) Curry paradoksaalne kombinaator Y λf.(λx.f (xx))(λx.f (xx)) Tugev püsipunkti kombinaator Θ (λxy. y(xxy))(λxy. y(xxy))

Püsipunktid Lemma Olgu G λyf.f (yf ) ( SI) M on püsipunkti kombinaator M = GM Tõestus ( ) Kui M = GM, siis: F. M F = G M F (λyf.f (yf ))M F = F(M F) ( ) Kui M on püsipunkti kombinaator, siis: G M = λf.f (Mf ) = λf.mf = M

Lemma Püsipunktid Kõik alljärgneva jada elemendid on püsipunkti kombinaatorid Y 0 Y Y n+1 Y n G Tõestus Y n+1 Y n G = G (Y n G) G Y n+1 NB! Y 1 = Θ

Lemma Olgu C C(f, x), siis Tõestus F. N. F N = C(F, N) F. N. F N = C(F, N) Võtame F Θ(λf x.c(f, x)) Standardnumbrite liitmine Rekursioon add = λx y. cond(iszero x) y (add(pred x)(succ y)) add Y(λf x y. cond(iszero x) y (f (pred x)(succ y)))

Mitmekohalised funktsioonid Currymine curry n λf x 1... x n. f (x 1,...,x n ) uncurry n λf p. f (p n 1)... (p n n) NB! curry n (uncurry n N) = N uncurry n (curry n M) = M Üldistatud λ-abstraktsioon λ(v 1,...,V n ). E uncurry n (λv 1... V n. E) Üldistatud β-konversioon (λ(v 1,...,V n ). E)(E 1,...,E n ) β E[E 1...E n /V 1...V n ]

Vastastikune rekursioon Rekursioon f 1 = F 1 f 1...f n f 2 = F 2 f 1...f n... f n = F n f 1...f n Definitsioon f Y(λ(f 1,...,f n ). (F 1 f 1...f n,..., F n f 1...f n )) f 1 f n 1 f 2 f n 2... f n f n n

Arvutatavus Church i tees Kõik arvutatavad funktsioonid on esitatavad λ-arvutuses! Lihtrekursiivsed funktsioonid (i) 0 (ii) S(x) = x + 1 (iii) Un i (x 1,x 2,...,x n ) = x i (iv) f (x 1,...,x n ) = g(h 1 (x 1,...,x n ),...,h r (x 1,...,x n )) (v) f (0,x 2,...,x n ) = g(x 2,...,x n ) f (S(x 1 ),x 2,...,x n ) = h(f (x 1,x 2,...,x n ),x 2,...,x n ) Osaliselt rekursiivsed funktsioonid (vi) f (x 1,...,x n ) = min { y g(y,x 2,...,x n ) = x 1 }

Minimiseerimine Definitsioon Arvutatavus minxf (x 1,...,x n ) = cond(eq(f (x,x 2,...,x n )x 1 ) x (min(succx)f (x 1,...,x n ))) min Y (λmxf (x 1,...,x n ). cond (eq (f (x,x 2,...,x n )) x 1 ) x (m(succ x) f (x 1,...,x n )))