Elementy rachunku lambda. dr hab. inż. Joanna Józefowska, prof. PP 1



Podobne dokumenty
Struktury formalne, czyli elementy Teorii Modeli

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość

-termami -wyrażeń pre-termami abstrakcją aplikacją zmiennych wolnych zmienną związaną domknięte

Matematyka II - Organizacja zajęć. Egzamin w sesji letniej

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.

1. Definicja granicy właściwej i niewłaściwej funkcji.

Programowanie funkcyjne. Wykªad 13

Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń

Matematyczne Podstawy Informatyki

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Programowanie funkcyjne Wykład 13. Siła wyrazu rachunku lambda

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

ROZDZIAŁ 1. Rachunek funkcyjny

Teoretyczne Podstawy Języków Programowania Wykład 4. Siła wyrazu rachunku λ

Wykład 6. Reguły inferencyjne systemu aksjomatycznego Klasycznego Rachunku Zdań

Wprowadzenie do logiki Zdania, cz. III Język Klasycznego Rachunku Predykatów

Zasady krytycznego myślenia (1)

Rachunek logiczny. 1. Język rachunku logicznego.

Interpretacja Niech U będzie zbiorem formuł takim, że zbiór {p 1,..., p k } jest zbiorem wszystkich symboli predykatywnych, {f 1,..., f l } jest zbior

LOGIKA ALGORYTMICZNA

Logika Matematyczna (1)

Przykłady zdań w matematyce. Jeśli a 2 + b 2 = c 2, to trójkąt o bokach długości a, b, c jest prostokątny (a, b, c oznaczają dane liczby dodatnie),

Gramatyki atrybutywne

Np. Olsztyn leży nad Łyną - zdanie prawdziwe, wartość logiczna 1 4 jest większe od 5 - zdanie fałszywe, wartość logiczna 0

Rachunek różniczkowy i całkowy w przestrzeniach R n

Semantyka rachunku predykatów

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura

PRZEWODNIK PO PRZEDMIOCIE

Maszyny Turinga. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

Podstawowe Pojęcia. Semantyczne KRZ

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.

Elementy logiki matematycznej

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykłady 12 i 13. Dowód i dowodzenie w KRP. Tezy KRP

Programowanie funkcyjne Wykład 14. Rachunek λ z typami prostymi

Klasyczny rachunek predykatów

7 Twierdzenie Fubiniego

W2 Podstawy rachunku prawdopodobieństwa (przypomnienie)

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ

Wykład 11b. System aksjomatyczny Klasycznego Rachunku Predykatów. Aksjomaty i reguły inferencyjne

KONKURS MATEMATYCZNY KOMA 2018

LOGIKA Klasyczny Rachunek Zdań

Logika Matematyczna (1)

Programowanie deklaratywne

0.1. Logika podstawowe pojęcia: zdania i funktory, reguły wnioskowania, zmienne zdaniowe, rachunek zdań.

LOGIKA I TEORIA ZBIORÓW

Metalogika (1) Jerzy Pogonowski. Uniwersytet Opolski. Zakład Logiki Stosowanej UAM

Zadania do Rozdziału X

Adam Meissner.

Instrukcje dla zawodników

PRZEWODNIK PO PRZEDMIOCIE

CZY INFORMATYKOM MUSI WYSTARCZYĆ NIESKOŃCZONOŚĆ POTENCJALNA?

vf(c) =, vf(ft 1... t n )=vf(t 1 )... vf(t n ).

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Symbol, alfabet, łańcuch

Spis treści. Rozdział I. Wstęp do matematyki Rozdział II. Ciągi i szeregi... 44

iks plus trzy dzielone na dwa iks razy iks plus pięć

Rachunek prawdopodobieństwa i statystyka

Rachunek zdań. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Matematyka ETId Elementy logiki

Andrzej Wiśniewski Logika II. Wykład 6. Wprowadzenie do semantyki teoriomodelowej cz.6. Modele i pełność

Prawdopodobieństwo i statystyka

Uzgadnianie formuł rachunku predykatów

Zmienne losowe ciągłe i ich rozkłady

Rachunki relacji. Rachunki relacji. RRK Relacyjny Rachunek Krotek

Pochodne cząstkowe i ich zastosowanie. Ekstrema lokalne funkcji

Zależności funkcyjne

Z Wikipedii, wolnej encyklopedii.

Rachunek predykatów. Formuły rachunku predykatów. Plan wykładu. Relacje i predykaty - przykłady. Relacje i predykaty

Pochodna funkcji odwrotnej

Kultura logicznego myślenia

Algebra i jej zastosowania konspekt wyk ladu, czȩść druga

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

1 Logika Zbiory Pewnik wyboru Funkcje Moce zbiorów Relacje... 14

Dystrybucje, wiadomości wstępne (I)

Zmienne losowe ciągłe i ich rozkłady

Składnia rachunku predykatów pierwszego rzędu

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

III rok kognitywistyki UAM,

II Matematyka 2 stopnia( 3W). Logika i podstawy matematyki. Janusz Czelakowski. Wykład 8. Arytmetyka

Algebra Boole a i jej zastosowania

Ćwiczenia z wyliczania wartości funkcji

Kryptografia - zastosowanie krzywych eliptycznych

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

1. Wstęp do logiki. Matematyka jest nauką dedukcyjną. Nowe pojęcia definiujemy za pomocą pojęć pierwotnych lub pojęć uprzednio wprowadzonych.

Paradygmaty programowania

Algebrę L = (L, Neg, Alt, Kon, Imp) nazywamy algebrą języka logiki zdań. Jest to algebra o typie

Efektywna analiza składniowa GBK

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Teoretyczne podstawy informatyki

Problem. Uzgadnianie wyrażeń rachunku predykatów. Instancja wyrażenia. Podstawienie termu za zmienną. Joanna Józefowska

System BCD z κ. Adam Slaski na podstawie wykładów, notatek i uwag Pawła Urzyczyna. Semestr letni 2009/10

Jeśli wszystkie wartości, jakie może przyjmować zmienna można wypisać w postaci ciągu {x 1, x 2,...}, to mówimy, że jest to zmienna dyskretna.

Rezolucja w rachunku predykatów. Przedrostkowa koniunkcyjna postać normalna. Formu ly ustalone. Joanna Józefowska. Poznań, rok akademicki 2009/2010

Rachunek prawdopodobieństwa Rozdział 2. Aksjomatyczne ujęcie prawdopodobieństwa

Technika cyfrowa Synteza układów kombinacyjnych (I)

Andrzej Wiśniewski Logika II. Wykłady 9 i 10a. Wybrane modalne rachunki zdań. Ujęcie aksjomatyczne

IMIĘ NAZWISKO... grupa C... sala Egzamin ELiTM I

Transkrypt:

Elementy rachunku lambda λ 1

Notacja λ x 3x + 7 3x + 7 jest różniczkowalna 3x + 7 jest mniejsze od 2 (2,3) 5 f(2, 3) = 2 + 3 g(2) = 2 + 3 λx(3x + 7) 3x + 7 λx λy(x + y) = λxy(x + y) λx(x + 3) 2

Rachunek lambda (λ) Rachunek λ jest nie tylko formą notacji (Wykład 1). Został on zaprezentowany przez Churcha jako jeden z pierwszych systemów formalnych proponujących dokładną definicję obliczalności. Można podać formalną syntaktykę rachunku λ oraz model przyporządkowujący każdej konstrukcji syntaktycznej rachunku λ wartości z odpowiedniej dziedziny. 3

Pojęcia pomocnicze Operatorem nazywamy symbol (funkcyjny), który w połączeniu z pewnym wyrażeniem(napisem) zawierającym zmienną (wyróżnioną jako związaną tym operatorem) nabiera konkretnego sensu. Np.: kwantyfikatory, całki, nieskończone sumy i produkty itp. n x= 1 F ( x,y) = F( 1,y) + F( 2,y) +... + F( n,y) 4

Pojęcia pomocnicze Operatorem abstrakcji (znakiem abstrakcji) nazywa się symbol operacji, która przekształca funkcję zdaniową w nazwę zbioru przedmiotów spełniających tę funkcję. {x I x jest logikiem} stanowi nazwę zbioru logików zmienna x jest funkcja zdaniowa zmienną związaną operatorem abstrakcji 5

Pojęcia pomocnicze Operator lambda (λ-operator) stanowi uogólnienie operatora abstrakcji, gdyż stosuje się go nie tylko do funkcji zdaniowych lecz również do wyrażeń zbudowanych z symboli funkcyjnych (termów). 6

Język rachunku lambda Alfabet A rachunku A = zmienne stałe {λ, (, )} zmienne = {u, v, x, y, z} stałe = {a, b, c, d} Wyrażenia rachunku lambda (formuły) F zbudowane nad alfabetem A: F = F A F Z F A wyrażenia atomowe, F A = zmienne stale F Z wyrazenia zlozone 7

Wyrażenia złożone Jeśli L i M należą do F, to wyrażenie LM (operator aplikacji) lub postaci (LM) jest wyrażeniem rachunku lambda, przy czym L jest częścią operatorową, zaś M częścią argumentową. Jeśli L należy do F, to wyrażenie postaci λxl lub postaci (λxl) jest wyrażeniem rachunku lambda, λx jest częścią zmiennej związanej, zaś L jest ciałem. Przykłady: xy, x(yz), xyy, abcd (xy) (x(yz)) ((xy)y) (((ab)c)d) 8

Podwyrażenie wyrażenia G (1) G jest podwyrażeniem G (2) jeśli G LM, to każde podwyrażenie wyrażeń L i M jest także podwyrażeniem G, (3) jeśli G λxl, to każde podwyrażenie L jest także podwyrażeniem G. Przykłady: λyx i x są podwyrażeniami λyx λz(xyz), xy i y są podwyrażeniami λyλz(xyz) 9

Zmienne wolne w wyrażeniach (1) x jest jedyną zmienną wolną występującą w wyrażeniu x (2) jeśli P i S są zbiorami zmiennych wolnych występujących odpowiednio w wyrażeniach P i S, to zbiór zmiennych wolnych występujących w aplikacji PS jest równy P S, (3) jeśli P jest zbiorem zmiennych wolnych występujących w wyrażeniu P, to P -{x} jest zbiorem zmiennych wolnych występujących w wyrażeniu λxp. Przykłady: x jest zmienną wolną w wyrażeniach λyx, λyλz(xyz), abλz(zb)λux; y jest zmienną związaną w: λyx, λyλz(xyz), lecz wolną w podwyrażeniu dr hab. inż. Joanna λz(xyz) Józefowska, prof. PP 10

Wyrażenie wolne ze względu na podstawienie niech M i ε[x] będą λ-wyrażeniami; ε[x] oznacza, że zmienna x jest zmienną wolną w ε[x] lub że nie występuje w ε[x]; zapis ε[m/x] oznacza rezultat zastąpienia wszystkich wolnych wystąpień zmiennej x przez wyrażenie M; wyrażenie M jest wolne po zastąpieniu nim zmiennej x, jeśli podczas zastępowania nie nastąpią przypadkowe związania zmiennych wolnych występujących w M. 11

Wyrażenie wolne ze względu na podstawienie Przykłady wyrażenie M λxλy(xy) jest wolne po zastąpieniu zmiennej u w wyrażeniu ε[u] = λvu; wyrażenie M xz nie jest wolne po zastąpieniu zmiennej u w wyrażeniu ε[u] = λxu (zmienna wolna x z wyrażenia M zostaje związana) 12

Reguły redukcji wyrażeń niech L i M będą wyrażeniami, wtedy przez L M oznaczymy elementarną redukcję L do M; wyrażenie jest redukowalne do M, co zapisujemy L M, jeśli istnieje ciąg L = L 0, L 1,..., L n-1, L n = M taki, że (0 i n-1) L i L i+1 ; 13

Elementarne reguły redukcji Reguła przemianowywania zmiennych Niech A λx F[x] oraz niech y będzie nową zmienną, która nie występuje w F[x] jako zmienna wolna i pozostaje zmienna wolna po zastapieniu nia zmiennej x w F[x], wtedy: λx F[x] λy F[y] α Na przykład: λxλz(xz) α λyλz(yz) F[x] 14

Elementarne reguły redukcji Podstawowa reguła redukcji Niech A (λx ε[x])m i wyrażenie M jest wolne ze względu na zastąpienie nim zmiennej x w wyrażeniu ε[x], wtedy: (λxε[x])m ε[m/x] Na przykład: λx(xz)a (az) ε[x] M 15

Elementarne reguły redukcji Reguła pomocnicza Niech A λx(fx) gdzie F jest wyrażeniem, w którym zmienna x nie występuje jako zmienna wolna, wtedy: λx(fx) η F Na przykład: λx(λyyx) λxx F η λx(λyyx) η λyy α λyy F 16

Przykłady function f(x: integer): integer; begin f := x end; P 11 (x) = x; definicja funkcji f w rachunku lambda: λxx; przykładowe obliczenia dla wywołania:... y:=f(5);... M (λ x x 5) 5 ε[x] 17

Przykłady function f 1 (x: integer): integer; begin f 1 := x + 1 end; f 1 S 1 ; (funkcja następnika) definicja funkcji f 1 w rachunku lambda: λx((+1)x); przykładowe obliczenia dla wywołania:... y:=f 1 (5);... M (λ x((+1) x) 5) ((+1)5) 6 ε[x] 18

Technika Curry ego - currying (Schönfinkel) f n : A 1 x A 2 x... x A n B f n (a 1, a 2,..., a n ), a i A i f c,n : A 1 (A 2... (A n B)...) f c,n (a 1 ) f c,n (a 1 )(a 2 ) f c,n (a 1 )(a 2 )...(a n ) f c,2 : A (B C) lambda nazwa: λaλb treść funkcja może być zarówno daną, jak i funkcją 19

Przykłady function f 2 (x, y: integer): integer; begin f 2 := y end; f 2 P 12 ; (projekcja) definicja funkcji f 2 w rachunku lambda: λx 1 λx 2 x 1 ; przykładowe obliczenia dla wywołania: y:=f 3 (3,4);... M M (λ x 1 (λ x 2 x 1 4) 3) λ x 2 3 4 3 ε[x] ε[x] 20

Przykłady function f 3 (function f; x: integer): integer; begin f 3 := f(x) end; definicja funkcji f 3 w rachunku lambda: λfλx(fx); przykładowe obliczenia dla wywołania: y:=f 3 (f 1,5);... f λf(λx(fx)5)λx((+1)x) α M λf(λx(fx)5)λy((+1)y) λx(λy((+1)y)x)5 λy((+1)y)5 ((+1)5) ε[x] β 21

Przykłady λf(λx((+fx))1)5)λa((*x)a) f α λf(λx((+(fx))1)5)λa((*y)a) λx((+(λa((*y)a)x)1)5) β β ε[x] M λx((+(λa((*y)a)x)1)5) ((+(λa((*y)a)5)1)) ((+(((*y)5))1)) ε[x] M 22

Wyrażenie G, w którym nie można zastosować redukcji typu β lub η jest wyrażeniem zredukowanym (lub wyrażeniem w postaci normalnej); Przykład wyrażenia nieredukowalnego λx(xx)λx(xx) λx(xx)λx(xx)... 23

Przykład wyrażenia, dla którego istnieją dwa ciągi redukcji: skończony i nieskończony λxλyy(λx(xx)λx(xx)) λyy ε[x] M λxλyy(λx(xx)λx(xx)) λxλyy(λx(xx)λx(xx)) ε[x] M β 24

Twierdzenie Jeśli dla danego wyrażenia istnieją dwa ciągi redukcji, z których jeden jest nieskończony, drugi zaś daje określoną wartość, to wyrażenie to zawiera podwyrażenie redukowalne do postaci LM, przy czym M jest nieredukowalne, L ma postać λxp, gdzie P ma postać zredukowana i nie zawiera x. 25

Twierdzenie Jeśli wyrażenie oblicza się w drodze kolejnych skrajnie lewostronnych redukcji operatorargument, to uzyskany ciąg redukcji kończy się, jeśli wyrażenie jest redukowalne. 26

Twierdzenie (Churcha-Rossera o zbieżności) Jeśli dane wyrażenie ma dwa ciągi redukcji prowadzące do postaci zredukowanych, to postaci te są sobie równe z dokładnością do przemianowania zmiennych (znajdują się w tej samej klasie wartości). 27

Model rachunku lambda λu u(u) val[λu u(u)] = selfapplic Czy to jest funkcja? 28

Dana Scott (1970) - model rachunku λ D (D D) gdzie (D D) jest przestrzenią funkcji obliczalnych z D w D. Izomorfizm z D w (D D) oznacza, że D jest takim zbiorem wartości, który jest potrzebny do modelu rachunku λ. D jest kratą zupełną, a funkcje obliczalne są definiowane jako funkcje ciągłe w rozumieniu teorii krat. Każda funkcja ciągła z D w D ma punkt stały (Tarski, Knaster). 29

Dana Scott (1970) - model rachunku λ Twierdzenie o punkcie stałym Scott i Strachey wykorzystali do zapewnienia istnienia rozwiązań rekurencyjnych oraz do nadania znaczenia takim konstrukcjom, jak instrukcja while. Sposób konstrukcji modelu rachunku λ może być stosowany do wyznaczania dziedzin refleksywnych interesujących z punktu widzenia informatyki. 30

Zadanie domowe Zredukować wyrażenie postaci: λf f(y) (λy f(y)) Na powyższym przykładzie przeprowadzić analizę pojęcia zmiennej wolnej i związanej w λ-wyrażeniach. 31