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

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

Matematyczne Podstawy Informatyki

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

1 Działania na zbiorach

JAO - Wprowadzenie do Gramatyk bezkontekstowych

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

Teoretyczne podstawy informatyki

Wyrażenia regularne.

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

Składnia rachunku predykatów pierwszego rzędu

Metoda Tablic Semantycznych

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

GRAMATYKI BEZKONTEKSTOWE

Zbiory, relacje i funkcje

Poprawność semantyczna

Paradygmaty dowodzenia

Logika i teoria mnogości Wykład 14

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

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

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

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Początki informatyki teoretycznej. Paweł Cieśla

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

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

I. Podstawowe pojęcia i oznaczenia logiczne i mnogościowe. Elementy teorii liczb rzeczywistych.

Matematyka dyskretna - 7.Drzewa

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

Struktury formalne, czyli elementy Teorii Modeli

Modelowanie motywów łańcuchami Markowa wyższego rzędu

Funkcje dwóch zmiennych, pochodne cząstkowe

3 Abstrakcyjne kompleksy symplicjalne.

(4) x (y z) = (x y) (x z), x (y z) = (x y) (x z), (3) x (x y) = x, x (x y) = x, (2) x 0 = x, x 1 = x

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Technologie i systemy oparte na logice rozmytej

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

Schemat rekursji. 1 Schemat rekursji dla funkcji jednej zmiennej

Rozdział 1. Wektory losowe. 1.1 Wektor losowy i jego rozkład

Rekurencyjna przeliczalność

Logika Matematyczna (1)

FUNKCJE. (odwzorowania) Funkcje 1

Pochodną funkcji w punkcie (ozn. ) nazywamy granicę ilorazu różnicowego:

Indukowane Reguły Decyzyjne I. Wykład 3

1 Automaty niedeterministyczne

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Metody Kompilacji Wykład 3

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

Programowanie deklaratywne

5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH

Wstęp do Programowania potok funkcyjny

ZALICZENIE WYKŁADU: 30.I.2019

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

Twierdzenia Gödla dowody. Czy arytmetyka jest w stanie dowieść własną niesprzeczność?

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Elementy logiki matematycznej

Zasada indukcji matematycznej

Andrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki

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

Paradygmaty programowania

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

Logika Matematyczna 16 17

TEORETYCZNE PODSTAWY INFORMATYKI

LOGIKA I TEORIA ZBIORÓW

Języki formalne i automaty Ćwiczenia 1

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

Logika Stosowana. Wykład 2 - Logika modalna Część 2. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Algebra Boole a i jej zastosowania

Predykat. Matematyka Dyskretna, Podstawy Logiki i Teorii Mnogości Barbara Głut

Definicja: alfabetem. słowem długością słowa

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

Uzgadnianie formuł rachunku predykatów

Wstęp do Matematyki (4)

domykanie relacji, relacja równoważności, rozkłady zbiorów

Logika Matematyczna (1)

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

UNIWERSYTET GDAŃSKI MATERIAŁY DYDAKTYCZNE DO PRZEDMIOTU MATEMATYKA DYSKRETNA. pod redakcją: Hanna Furmańczyk Karol Horodecki Paweł Żyliński

KONKURS MATEMATYCZNY KOMA 2018

Definicja: zmiennych zdaniowych spójnikach zdaniowych:

Elementy logiki i teorii mnogości

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik

n=0 (n + r)a n x n+r 1 (n + r)(n + r 1)a n x n+r 2. Wykorzystując te obliczenia otrzymujemy, że lewa strona równania (1) jest równa

Semantyka rachunku predykatów

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

Logika binarna. Prawo łączności mówimy, że operator binarny * na zbiorze S jest łączny gdy (x * y) * z = x * (y * z) dla każdego x, y, z S.

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

Robert Kowalczyk. Zbiór zadań z teorii miary i całki

Funkcje rekurencyjne

A i A j lub A j A i. Operator γ : 2 X 2 X jest ciągły gdy

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

III. Funkcje rzeczywiste

Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne

Lista liniowa dwukierunkowa

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Logika Matematyczna (10)

Lista zadań - Relacje

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Matematyka z el. statystyki, # 4 /Geodezja i kartografia I/

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

Adam Meissner.

F t+ := s>t. F s = F t.

Transkrypt:

8. Wykład 8: Rachunek λ. Wprowadzenie. Rachunek lambda i logika kombinatoryczna powstały w latach trzydziestych dwudziestego wieku. Początkowo miały stanowić alternatywne wobec teorii mnogości podejście do podstaw matematyki, w którym funkcja(rozumiana intuicyjnie jako definicja) była pojęciem pierwotnym. Ten zamiar się nie powiódł, ale szybko okazało się, że rachunek lambda jest niezwykle użytecznym aparatem w teorii obliczeń. Definicję funkcji obliczalnej sformułowano wcześniej za pomocą rachunku lambda, niż w języku maszyn Turinga. Później, w związku z rozwojem informatyki, język rachunku lambda okazał się niezastąpionym narzędziem w teorii jezyków programowania. A wreszcie i w praktyce, gdy pojawiły sie języki programowania funkcyjnego. Dzisiaj znajomość podstaw rachunku lambda jest niezbędnym elementem wykształcenia nowoczesnego informatyka. W rachunku λ rozważamy obiekty zwane λ-termami. Tradycyjnie λ-termy definiowane są jako formalne wyrażenia pewnego języka, podobnie jak zwykłe termy w logice pierwszego rzędu. Istotna różnica polega na tym, ze lambda-termy pozostające w pewnej relacji równoważności(α-konwersji) są ze sobą utożsamiane(uważane za identyczne). A więc λ-termy to w istocie nie wyrażenia, ale klasy abstrakcji λ-wyrażeń(nazywanych też pre-termami), które teraz zdefiniujemy. Zbiór λ-wyrażeń rachunku λ konstruuje się indukcyjnie jako zbiór słów nad alfabetem V {(, ), λ}, gdzie V jest przeliczalnym zbiorem zmiennych. Do zbioru Λ należą tylko λ-wyrażenia skonstruowane w poniższy sposób: Dowolnazmiennazezbioru Vjest λ-wyrażeniemrachunku λ,czylijeżeli x V,to x Λ. Jeżeliweźmiemydowolne λ-wyrażenie Mzezbioru Λ,orazdowolnązmienną xzezbioru V,to słowopostaci (λx.m)jest λ-wyrażeniemrachunku λ,czylijeżeli M Λix V,to (λx.m) Λ. Powyższy sposób tworzenia λ-wyrażenia nazywamy abstrakcją. Jeżeliweźmiemydowolne λ-wyrażenia M i N zezbioru Λ,tosłowopostaci (MN)jest λ- wyrażeniem rachunku λ. Powyższy sposób tworzenia λ-wyrażenia nazywamy aplikacją. Intuicyjny sens aplikacji (MN) to zastosowanie operacji M do argumentu N. Abstrakcję (λxm) interpretujemy natomiast jako definicję operacji(funkcji), która argumentowi x przypisuje M. Oczywiście xmożewystępowaćwm,tj. Mzależyod x. Nawiasy są często pomijane według zasady łączności lewostronnej: na przykład MNP Q (((MN)P)Q). Wieloargumentowe funkcje są reprezentowane przez funkcje jednoargumentowe, których argumentamisąfunkcje.zatemto,cozwyklejestzapisywanewpostaci F(N, M),wrachunku λzapisujesię ((F N)M) F NM. Powtórzenia symbolu λ pomijane są według zasady łączności prawostronnej, tzn. λxyz.m (λx.(λy.(λz.m))). Zbiórzmiennychwolnych λ-wyrażenia M,oznaczanyprzez F V (M),zdefiniowanyjest,wzależności od budowy termu M, w następujący sposób: Jeżeli Mjestpojedynczązmienną,tzn. M x,tozmiennatajestwolna,azatem F V (M) = {x}. Jeżeli Mjestpostaci λx.m,to λxwiążewszystkiewolnewystąpieniazmiennej xwλ-wyrażeniu M,azatem F V (M) = F V (M ) {x}. Jeżeli Mjestpostaci PQ,tozmiennymiwolnymi λ-wyrażenia Msąwszystkiezmiennewolne występującewλ-wyrażeniach Pi Q,czyli F V (M) = F V (P) F V (Q). Zmiennajestzmiennąwolną λ-wyrażenia M,jeżelinależydozbioru F V (M),azmiennązwiązanąw przeciwnymwypadku. λ-wyrażenie Mjestdomkniętewtedyitylkowtedy,gdy F V (M) =. Przykłady: (1)Wλ-wyrażeniu M = y(λx.x)zmienna yjestzmiennąwolną,axzmiennązwiązaną.wtermie λy.m nie ma zmiennych wolnych, jest to więc λ-wyrażenie domknięte. 1

2 (2)W λ-wyrażeniu M = x(λx.x)tylkopierwszewystąpieniezmiennej xjestwolne,chociaż F V (M) = {x}. Oczywiście term M nie jest λ-wyrażeniem domkniętym. Wybór zmiennych używanych w wyrażeniu jako związane jest sprawą drugorzędną. Takie wyrażenia, jak na przykład λx.xy i λz.zy, intuicyjnie definiują tę samą operację( zaaplikuj dany argument do y ) więc z naszego punktu widzenia powinny być uważane za takie same. Dlatego λ-wyrażenia różniące się tylko zmiennymi związanymi chcemy ze sobą utożsamiać. Utożsamienie to nazywa się α-konwersją. Pojęcie α-konwersji można ściśle zdefiniować na wiele sposobów, my wybierzemy interpretację grafową. Przez drzewo de Bruijna rozumiemy skończone drzewo etykietowane, w którym występować mogą następujące rodzaje wierzchołków: wierzchołki o etykiecie @, które mają zawsze dwa następniki: lewy i prawy; wierzchołki o etykiecie λ, które mają zawsze jeden następnik; liście etykietowane zmiennymi; liście bez etykiet. Przytymżądamy,abykażdyliśćbezetykietymiałchoćjednegoprzodkazetykietą λ.jeślizkażdego wierzchołka bez etykiety poprowadzimy nową krawędź do któregoś z poprzedników tego wierzchołka o etykiecie λ, to otrzymany graf skierowany nazwiemy drzewem de Bruijna. Liśćmi drzewa de Bruijna nazywamy jego wierzchołki końcowe(ich etykietami są zmienne). Dowolnemu λ-wyrażeniu M przypiszemy drzewo de Bruijna G(M): Jeśli x jest zmienną to G(x) składa się tylko z jednego wierzchołka o etykiecie x. Drzewo G(PQ)makorzeńoetykiecie @.Jegolewymnastępnikiemjestkorzeńdrzewa G(P)a prawym korzeń drzewa G(Q). Drzewo G(λxP) jest otrzymane z G(P) poprzez Dodanie nowego korzenia o etykiecie λ. Połączenie go krawędzią z korzeniem drzewa G(P). Dodanie krawędzi od wszystkich wierzchołków z etykietą x do nowego korzenia. Usunięcie etykiet x.

3 jest drzewem λ-wyrażenia λz.(λu.zu)((λu.uy)z). Łatwo zauważyć, że etykiety liści w G(M) to dokładnie zmienne wolne M. Stwierdzenie1.Jeśli TjestdrzewemdeBruijna,to T = G(M)dlapewnego λ-wyrażenia M. Dowód. Indukcja ze względu na liczbę wierzchołków drzewa T. Jeśli jest tylko jeden wierzchołek, to jegoetykietąjestpewnazmienna ximamy T = G(x).Jeślietykietąkorzeniajest @,to Tskładasięz korzeniaidwóchrozłącznychpodgrafów T 1 i T 2,doktórychstosujemyzałożenieindukcyjne.Mamywięc T 1 = G(M 1 )oraz T 2 = G(M 2 ).Oczywiściewtedy T = G(M 1 M 2 ).Pozostajeprzypadekgdyetykietą korzeniajest λ.wtedy Tskładasięzkorzenia,podgrafu T 1 zaczepionegownastępnikukorzeniaipewnej liczby krawędzi prowadzących do korzenia z wierzchołków bez etykiet. Przypisując tym wierzchołkom etykietę z,któraniewystępujewgrafie T 1,otrzymujemyzT 1 drzewo T 1.Zzałożeniaindukcyjnego T 1 = G(M 1)dlapewnego λ-wyrażenia M 1 imożemynapisać T = G(λz.M 1 ). Relację α-konwersji(oznaczanąprzez = α )definiujemytak: M = α Nwtedyitylkowtedy,gdy G(M) = G(N). Od tej pory przez λ-termy albo po prostu termy rozumiemy lambda-wyrażenia z dokładnością do α- konwersji,czyliwistocieklasyabstrakcjirelacji = α.każdatakaklasajestwyznaczonaprzezpewne drzewo de Bruijna, możemy więc uważać, że λ-termy to tak naprawdę drzewa de Bruijna. λ-wyrażenia są tylko ich syntaktyczną reprezentacją, przy czym dowolne dwie α-równoważne reprezentacje tego samego termu(drzewa de Bruijna) są tak samo dobre. (λx.x(λx.xy))(λy.yx) totosamoco (λu.u(λx.xy))(λv.vx), alenietosamoco (λy.y(λy.yx))(λx.xy). Od tej pory znak równości oznacza równość λ-termów(a nie ich reprezentacji), napiszemy więc np. λxx = λyy.

4 DladanychdrzewdeBruijna GiTprzezpodstawienie G[x := T]rozumiemygrafotrzymanyzG przez zamianę każdego liścia z etykietą x na korzeń odrębnej kopii grafu T. Ilustracja jest chyba prostsza i bardziej zrozumiała niż jakakolwiek formalna definicja. Dla grafów: graf G[x := T]wyglądatak: Jeśli Mi Nsą λ-wyrażeniamitonotacja M[x := N]oznacza λ-termodrzewie G(M)[x := G(N)]. Zwykle mówimy, że M[x := N] to wynik podstawienia wyrażenia N na miejsce wszystkich wolnych wystąpień zmiennej x w M. Ale ta interpretacja nie zawsze jest poprawna. Problem powsta je wtedy, gdy jakaś zmienna z wolna w N przy naiwnym tekstowym podstawieniu znalazłaby się w zasięgu wiązania λz. Wynikiem podstawienia z na x w termie λz.x(xz) nie powinno być λz.z(zz). Podstawiamy z na miejsce x nie w napisie λz.x(xz) ale w drzewie wktórymwogóleniemażadnego z.awięczgodniezdefinicją: (λz.x(xz))[x := z] = λy.z(zy), przy czym wybór związanej zmiennej y jest nieistotny. Następujące stwierdzenie stanowi syntaktyczną definicję podstawienia. Stwierdzenie2.Równość M[x := N] = Rmamiejscewtedyitylkowtedy,gdyzachodzijedenz następujących przypadków: M = x,oraz R = N; Mjestzmiennąróżnąod x,oraz R = M; M = PQ,oraz R = P[x := N]Q[x := N];

M = λyp,gdzie y / {x} F V (N),oraz R = λy.p[x := N]. Dowód. Każdy term M jest albo zmienną, albo aplikacją, albo abstrakcją. Ta ostatnia możliwość to jedyny nieoczywisty przypadek, niech więc M będzie abstrakcją. Jeśli z drzewa de Bruijna termu M odrzucimykorzeńwrazzprowadzącymidoniegokrawędziami,tootrzymamydrzewo M,wktórym niektóre wierzchołki końcowe nie mają etykiet. Nadając tym wierzchołkom nową etykietę y otrzymamy takiterm P,że M = λyp.ponieważ yniewystępujejakoetykietawdrzewie N,więcniemaznaczenia czynajpierwwtermie Pzamienimy xna N,apotemdodamy λwiążącą y,czypostąpimywodwrotnej kolejności. Treść stwierdzenia możemy prościej zapisać jako: x[x := N] = N; y[x := N] = y,gdy yjestzmiennąróżnąod x; (PQ)[x := N] = P[x := N]Q[x := N]; (λyp)[x := N] = λy.p[x := N],gdy y xoraz y / F V (N). Stwierdzenie 3. Zachodzą następujące własności podstawiania: { (F V (M) \ {x}) F V (N), jeśli x F V (M); (1) F V (M[x := N]) = F V (M), wprzeciwnymprzypadku. (2)Jeśli x / F V (M)to M[x := N] = M. (3) M[x := x] = M. (4)Jeśli λx.p = λy.qto P[x := y] = QiQ[y := x] = P. Dowód jest oczywisty i go pomijamy. Stwierdzenie4(lematopodstawianiu).Jeśli x yorazalbo x / F V (R)albo y / F V (M),to M[x := N][y := R] = M[y := R][x := N[y := R]]. Dowód. Dowód prowadzimy przez indukcję względem budowy M. Udowodnimy dla przykładu przypadek,gdy M = x.wówczas M[x := N][y := R] = x[x := N][y := R] = N[y := R] = x[x := N[y := R]] = x[y := R][x := N[y := R]]. Wniosek1.Jeśli y / F V (M)to M[x := y][y := R] = M[x := R]. 5