Rachunek lambda CBN i CBV

Podobne dokumenty
P. Urzyczyn: Materia ly do wyk ladu z semantyki. Uproszczony 1 j. ezyk PCF

Wyk lad 12. (ii) najstarszy wspó lczynnik wielomianu f jest elementem odwracalnym w P. Dowód. Niech st(f) = n i niech a bedzie

Grzegorz Mazur. Zak lad Metod Obliczeniowych Chemii UJ. 14 marca 2007

25 lutego 2013, godzina 23: 57 strona 1. P. Urzyczyn: Materia ly do wyk ladu z semantyki. Logika Hoare a

Rachunek zdań - semantyka. Wartościowanie. ezyków formalnych. Semantyka j. Logika obliczeniowa. Joanna Józefowska. Poznań, rok akademicki 2009/2010

PODSTAWOWE W LASNOŚCI W ZBIORZE LICZB RZECZYWISTYCH

Uzgadnianie wyrażeń rachunku predykatów. Adam i orzeszki. Joanna Józefowska. Poznań, rok akademicki 2009/2010

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

Wykład 2: Rachunek lambda

Wyk lad 8 macierzy i twierdzenie Kroneckera-Capellego

Ekonomia matematyczna i dynamiczna optymalizacja

LOGIKA ALGORYTMICZNA

Niech X bȩdzie dowolnym zbiorem. Dobry porz adek to relacja P X X (bȩdziemy pisać x y zamiast x, y P ) o w lasnościach:

Statystyka w analizie i planowaniu eksperymentu

Statystyka w analizie i planowaniu eksperymentu

Elementy logiki i teorii mnogości Wyk lad 1: Rachunek zdań

WYK LAD 2: PODSTAWOWE STRUKTURY ALGEBRAICZNE, PIERWIASTKI WIELOMIANÓW, ROZK LAD FUNKCJI WYMIERNEJ NA U LAMKI PROSTE

Wyk lad 2 Podgrupa grupy

WNIOSKOWANIE W MODELU REGRESJI LINIOWEJ

Wyk lad 4 Warstwy, dzielniki normalne

Wyk lad 3 Wielomiany i u lamki proste

Grupy i cia la, liczby zespolone

Wyk lad 7 Metoda eliminacji Gaussa. Wzory Cramera

Drzewa podstawowe poj

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

Wyk lad 14 Formy kwadratowe I

Statystyka w analizie i planowaniu eksperymentu

Wyk lad 7 Baza i wymiar przestrzeni liniowej

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera

Wyk lad 4 Dzia lania na macierzach. Określenie wyznacznika

Uproszczony dowod twierdzenia Fredricksona-Maiorany

Wyk lad 9 Baza i wymiar przestrzeni liniowej

ep do matematyki aktuarialnej Micha l Jasiczak Wyk lad 2 Tablice trwania życia

Wyk lad 1 Podstawowe struktury algebraiczne

Procesy Stochastyczne - Zestaw 1

Wyk lad 14 Cia la i ich w lasności

Paradygmaty programowania

Statystyka w analizie i planowaniu eksperymentu

STATYSTYKA MATEMATYCZNA dla ZPM I dr inż Krzysztof Bryś wyk lad 1,2 KLASYCZNY RACHUNEK PRAWDOPODOBIEŃSTWA

STYSTYSTYKA dla ZOM II dr inż Krzysztof Bryś Wykad 1

Logika matematyczna i teoria mnogości (I) J. de Lucas

ep do matematyki aktuarialnej Micha l Jasiczak Wyk lad 3 Tablice trwania życia 2

Teoria miary WPPT IIr. semestr zimowy 2009 Wyk lady 6 i 7. Mierzalność w sensie Carathéodory ego Miara Lebesgue a na prostej

Metoda Simplex bez użycia tabel simplex 29 kwietnia 2010

Programowanie funkcyjne. Wykªad 13

Wyk lad 4 Macierz odwrotna i twierdzenie Cramera

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

Wyk lad 5 Grupa ilorazowa, iloczyn prosty, homomorfizm

Zagadnienie Dualne Zadania Programowania Liniowego. Seminarium Szkoleniowe Edyta Mrówka

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

Statystyka w analizie i planowaniu eksperymentu

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Wyk lad 5 W lasności wyznaczników. Macierz odwrotna

Przestrzenie wektorowe, liniowa niezależność Javier de Lucas

Sterowalność liniowych uk ladów sterowania

Wyk lad 11 1 Wektory i wartości w lasne

Wyk lad 6 Podprzestrzenie przestrzeni liniowych

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Indeks odwzorowania zmiennej zespolonej wzgl. krzywej zamknietej

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

w teorii funkcji. Dwa s lynne problemy. Micha l Jasiczak

Rozdzia l 11. Przestrzenie Euklidesowe Definicja, iloczyn skalarny i norma. iloczynem skalarnym.

Rozdzia l 10. Najważniejsze normalne logiki modalne

Architektura systemów komputerowych

Logika dla socjologów Część 3: Elementy teorii zbiorów i relacji

Paradygmaty programowania. Paradygmaty programowania

Normy wektorów i macierzy

Wyk lad 3 Wyznaczniki

ep do matematyki aktuarialnej Micha l Jasiczak Wyk lad 5 Kalkulacja sk ladki netto I

Testowanie hipotez statystycznych

OSOBNO ANALITYCZNYCH

Statystyka w analizie i planowaniu eksperymentu

Algebra i jej zastosowania ćwiczenia

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

WYK LAD 5: GEOMETRIA ANALITYCZNA W R 3, PROSTA I P LASZCZYZNA W PRZESTRZENI R 3

FUNKCJE LICZBOWE. x 1

Testowanie hipotez statystycznych

SYSTEM DIAGNOSTYCZNY OPARTY NA LOGICE DOMNIEMAŃ. Ewa Madalińska. na podstawie prac:

Wyk lad 9 Przekszta lcenia liniowe i ich zastosowania

Liczby zespolone, liniowa zależność i bazy Javier de Lucas. a d b c. ad bc

Dziedziny Euklidesowe

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

Statystyka w analizie i planowaniu eksperymentu

Zastosowanie Robotów. Ćwiczenie 6. Mariusz Janusz-Bielecki. laboratorium

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}

LOGIKA I TEORIA ZBIORÓW

Struktury formalne, czyli elementy Teorii Modeli

Poprawność semantyczna

Stany atomu wieloelektronowego o określonej energii. być przypisywane elektrony w tym stanie atomu.

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

Działanie grupy na zbiorze

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

celu przyjmijmy: min x 0 = n t Zadanie transportowe nazywamy zbilansowanym gdy podaż = popyt, czyli n

Mnożniki funkcyjne Lagrange a i funkcje kary w sterowaniu optymalnym

Uzgadnianie formuł rachunku predykatów

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Sterowanie optymalne dla uk ladów nieliniowych. Zasada maksimum Pontriagina.

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Równania różniczkowe liniowe II rzędu

Transkrypt:

P. Urzyczyn: Materia ly do wyk ladu z semantyki 1 Rachunek lambda CBN i CBV Rachunek lambda czesto uważamy za abstrakcyjny jezyk programowania funkcyjnego. Jednak ewaluacja wyrażenia w rzeczywistych jezykach funkcyjnych różni sie istotnie od beta-redukcji. Po pierwsze, mamy wtedy określona deterministyczna strategie redukcji. Po drugie, zwykle nie dokonuje sie ewaluacji pod lambda: wyrażenie zdolne do pobrania argumentu (zg laszajace prompt) jest uważane za gotowa funkcje i nie podlega ewaluacji aż do chwili dostarczenia parametru aktualnego. Dlatego lepszymi modelami jezyków funkcyjnych sa takie wersje rachunku lambda, w których każda abstrakcje uważamy za wartość. Jeden z takich modeli to leniwy rachunek lambda, nazywany też rachunkiem CBN. Opiszemy trzy rodzaje semantyki operacyjnej dla termów zamknietych tego jezyka. Bed a to: Semantyka tranzycyjna, określona za pomoca maszyny abstrakcyjnej. proces obliczenia przez opisanie zmian stanu maszyny. Semantyka strukturalna (SOS 2 ), w dwóch smakach: Modeluje ona Semantyka ma lych kroków, która definiuje pojedynczy krok ewaluacji pośrednio, przez indukcje ze wzgledu na strukture ewaluowanego wyrażenia; Semantyka dużych kroków, która definiuje od razu relacje M V pomiedzy wyrażeniem M i jego wartościa V. Ma le kroki dla CBN Relacja w zbiorze termów to najmniejsza taka relacja, że (λxa)b A[B/x], oraz jeśli A B to także AC BC. Zapisujemy to w skrócie w postaci takich regu l: Duże kroki dla CBN (λxa)b A[B/x] A B AC BC Relacja M V, gdzie M jest dowolnym termem zamknietym, a V jest wartościa, czyli abstrakcja, jest określona regu lami: M λxa A[N/x] V V V MN V Udowodnimy, że te dwie definicje sa równoważne. Poniżej mowa o termach zamknietych. Lemat 0.1 Jeśli M V, to M V. Indukcja ze wzgledu na definicje M V. W kroku indukcyjnym zak ladamy, że MN V, bo M λxa oraz A[N/x] V. Te dwie asercje maja krótsze wyprowadzenia, wiec z za lożenia indukcyjnego wnioskujemy, że M λxa oraz A[N/x] V. Ostatecznie otrzymujemy redukcje MN (λxa)n A[N/x] V. 1 Pierwotna wersja tego materia lu powsta la we wspó lpracy z M. Zielenkiewiczem. 2 Structural Operational Semantics 1

Lemat 0.2 Jeżeli M M V, to M V. Dowód jest przez indukcje ze wzgledu na d lugość ciagu redukcji M M. Oczywiście najważniejszy jest przypadek jednego kroku. Niech wiec M M. Użyjemy indukcji ze wzgledu na definicje relacji. Przypadek 1: M = (λx A)B A[B/x] = M V. Mamy wtedy takie wyprowadzenie: λx A λx A A[B/x] V M V Przypadek 2: M = AC BC V, bo A B. Chcemy pokazać AC V. Skoro BC V, to B λx D oraz D[C/x] V. Z wewn etrznego za lożenia indukcyjnego dla A B, wnioskujemy, że A λx D, a ponieważ D[C/x] V, wi ec AC V. Wniosek 0.3 Dla dowolnych M i V, warunki M V i M V sa równoważne. Uproszczona maszyna Krivine a Maszyna abstrakcyjna opisana poniżej różni sie troche od oryginalnej maszyny J.-L. Krivine a. G lównie dlatego, że pomijamy tu ca lkowicie sprawe reprezentacji termów i otoczeń. Tymczasem prawdziwa maszyna Krivine a pos luguje sie termami w notacji De Bruijna (indeksy zamiast zmiennych), obejmuje konkretna implementacje otoczeń i algorytmy ich obs lugi. W definicji maszyny wystepuj a dwa pojecia zdefiniowane przez wzajemna rekursje: Otoczenie, to funkcja cz eściowa, która zmiennym przypisuje domkni ecia. Domkniecie, zwane też klozura (ang. closure), to para M, E, gdzie x jest zmienna, oraz E jest takim otoczeniem, że FV(M) Dom(E). Ta definicja jest poprawna (dobrze ufundowana), bo otoczenie może być puste. Konfiguracja maszyny Krivine a to niepusta lista domknieć, która może być widziana jako trójka postaci M, E :: S. Mamy tu term M do ewaluacji w otoczeniu E, i stos S. Konfiguracja poczatkowa ma postać M, :: nil, gdzie M jest termem zamknietym, a konfiguracja końcowa powinna być postaci V, E :: nil. Ewaluacja aplikacji odbywa sie metoda push-enter, tj. polega na od lożeniu argumentu na stos (push) i wejściu w ewaluacje operatora (enter). Maszyna ma takie instrukcje: x, E :: S E(x) :: S; MN, E :: S M, E :: N, E :: S; λx M, E :: :: S M, E[x ] :: S. Zdefiniujemy teraz znaczenie domkni ecia (M, E), czyli znaczenie termu M w otoczeniu E. Real(M, E) = M[Real(E(y))/y] y Dom(E) Powyżej chodzi oczywiście o jednoczesne podstawienie na wszystkie zmienne y Dom(E). Definicja M E ma sens także wtedy, gdy (M, E) nie jest domknieciem, tj. E(y) nie jest określone dla jakiegoś y FV(M). Taka zmienna y pozostaje wtedy wolna w M E. 2

Lemat 0.4 (Poprawność maszyny) Jeśli M E V, to M, E :: S W, F :: S, gdzie W jest wartościa i W F = M E. Indukcja ze wzgl edu na definicj e relacji. Szczegó ly pomijamy. W dowodzie nast epnego lematu użyjemy pomocniczej relacji k, która jest zdefiniowana tak: V 0 V M k λx A A[N/x] l V MN k+l V Jeśli M i V dla pewnego i k, to napiszemy M k. W przeciwnym razie M k. Lemat 0.5 Jeśli M E k, to maszyna uruchomiona w stanie M, E :: nil wykonuje wi ecej niż k kroków. Indukcja ze wzgl edu na k. Szczegó ly pomijamy. Wniosek 0.6 Jeśli M jest termem zamkni etym, to M V wtedy i tylko wtedy, gdy maszyna Krivine a ma obliczenie M, W, E, gdzie W E = V. Rachunek lambda w wersji CBV W rachunku leniwym przekazywanie parametrów odbywa sie przez nazwe, tj. parametr aktualny jest przekazywany do procedury bez ewaluacji. W rzeczywistych jezykach czesto mamy do czynienia z przekazywaniem parametrów przez wartość. Wtedy parametr aktualny musi sam być wartościa. Taka strategie ewaluacji modeluje rachunek lambda w wersji CBV. Oto regu ly semantyki dużych kroków dla takiego rachunku: V V M λx A N W A[W/x] V MN V Symbole V i W oznaczaja tu wartości, czyli abstrakcje. Definicja semantyki ma lych kroków dla CBV wymaga pojecia kontekstu ewaluacyjnego. Kontekst ewaluacyjny E[ ], z jedna dziura oznaczana przez [ ], może być postaci: [ ] V E[ ] E[ ]M, Fakt 0.7 Każdy term zamkniety M, który nie jest wartościa, można w dok ladnie jeden sposób przedstawić w postaci M = E[R], gdzie E jest kontekstem ewaluacyjnym, a R jest beta-redeksem. Ćwiczenie. Dzieki jednoznaczności rozk ladu, poniższe regu ly ewaluacji przez wartość określaja deterministyczna strategie redukcji: A B (λx A)V A[V/x] E[A] E[B] 3

Fakt 0.8 Warunki M V i M V sa równoważne. Podobny do dowodu Wniosku 0.3. Maszyna SECD Maszyna SECD zosta la opisana przez P.J. Landina w roku 1965 i jest jedna z najstarszych maszyn abstrakcyjnych. Stan maszyny opisywany jest przez czwórke S, E, C, D, a nazwy sk ladowych Stack, Environment, Code i Dump, t lumacza jednocześnie znaczenie skrótu. Mamy wiec: Stack czyli list e domkni eć postaci V, E ; Environment czyli otoczenie; Code czyli liste operatorów (operatorami sa termy i symbol @); Dump czyli liste trójek postaci S, E, C. Idea jest taka: Wyrażenie przeznaczone do ewaluacji w otoczeniu E, umieszczone poczatkowo w C, jest rozk ladane na cześci (od prawej). Każda cześć w postaci domkniecia jest umieszczana na stosie. Kiedy na poczatku listy C pojawi sie symbol @, maszyna ewaluuje operator z poczatku stosu, używajac nastepnego domkniecia ze stosu jako argumentu. Odbywa sie to przez rekurencyjne wywo lanie ca lego procesu (po to jest sk ladowa D). Ta metoda ewaluacji nazywana jest eval-apply. Instrukcje maszyny sa takie: S, E, x :: C, D E(x) :: S, E, C, D S, E, λxm :: C, D λxm, E :: S, E, C, D S, E, MN :: C, D S, E, N :: M :: @ :: C, D λxm, E :: :: S, E, @ :: C, D nil, E[x ], M :: nil, S, E, C :: D :: S, E, nil, S, E, C :: D :: S, E, C, D Konfiguracja poczatkowa ma postać nil,, M :: nil, nil, a końcowa :: nil,, nil, nil. Mamy teraz dwa lematy podobne do lematów 0.4 i 0.5. Lemat 0.9 Jeśli M E V, to S, E, M :: C, D W, F :: S, E, C, D, gdzie W F = V. Lemat 0.10 Jeśli M k to maszyna SECD, uruchomiona w konfiguracji S, E, M :: C, D, wykonuje co najmniej k kroków. Wniosek 0.11 Jeśli M jest termem zamkni etym, to M V wtedy i tylko wtedy, gdy maszyna SECD ma obliczenie nil,, M :: nil, nil W, F,, nil, nil. Semantyka denotacyjna dla CBN i CBV Modelami standardowej teorii rachunku lambda sa zupe lne porzadki cześciowe spe lniaj ace równanie postaci D = [D D]. W przypadku rachunku CBN jest troche inaczej, bo 4

nie każdy element dziedziny powinien być interpretowany jako funkcja. Na przyk lad trzeba rozróżniać termy Ω i λx Ω. Pierwszy chcemy interpretować jako element najmniejszy, a drugi jako funkcje sta l a λd.. Interesuje wiec nas rozwiazanie innego równania, a mianowicie D = [D D], gdzie A oznacza zbiór A z dodatkowym elementem najmniejszym. (Dotychczasowy element najmniejszy w A przestaje pe lnić te funkcje.) Rozwiazanie takiego równania można uzyskać powtarzajac konstrukcje modelu D z odpowiednimi modyfikacjami (zaczynamy od jednoelementowego zbioru D 0 i definiujemy D n+1 jako [D n D n ] ). Tak otrzymany model nie jest jednak w pe lni abstrakcyjny ze wzgledu na obserwacyjna równoważność odpowiednia dla CBV (taka gdzie zamiast o istnienie czo lowej postaci normalnej pytamy o redukcje do wartości.) Modele w pe lni abstrakcyjne można uzyskać w grach. W przypadku rachunku CBV, oprócz rozróżnienia Ω i λx Ω trzeba jeszcze uwzglednić konieczność ewaluacji argumentu. Nie interesuja nas wiec dowolne funkcje ciag le, ale tylko rzetelne, tj. funkcje o w lasności f( ) =. Jeśli [D D] oznacza przestrzeń funkcji rzetelnych, to równanie dziedzinowe przyjmuje postać D = [D D]. Metoda Scotta otrzymamy dobry model, który znowu nie bedzie w pe lni abstrakcyjny. Ćwiczenia: 1. Zdefiniować maszyn e SECD w wersji CBV. 2. Czy wnioski 0.6 i 0.11 można wzmocnić żadaj ac aby W = V i F =? 3. Zdefiniować projekcj e z [D D] na D oraz metod e podnoszenia projekcji (i, j) z D na D do projekcji z [D D ] na [D D]. 5