O czym będzie ten wykład: Logika i teoria typów. Zbiory i funkcje. Powtórzenie z rachunku lambda. Ekstensjonalność (?) Beztypowy rachunek lambda

Podobne dokumenty
Logika i teoria typów

Rachunek lambda, zima

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

rachunku kombinatorów logiką kom- binatoryczną Zmienne przedmiotowe Podstawienie słabej redukcji kombinatorami

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

Logiczne podstawy informatyki 1. Wojciech Buszkowski. Zakład Teorii Obliczeń Wydział Matematyki i Informatyki UAM

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

Logika i teoria typów

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

y = The Chain Rule Show all work. No calculator unless otherwise stated. If asked to Explain your answer, write in complete sentences.

Helena Boguta, klasa 8W, rok szkolny 2018/2019

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

Materia ly do wyk ladu. Rachunek lambda. Pawe l Urzyczyn 25 września 2015

R. D. Tennent, The Denotational Semantics of Programming Languages [1976]

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

Programowanie funkcyjne. Wykªad 13

RACHUNEK LAMBDA DLA POCZĄTKUJĄCYCH

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

Convolution semigroups with linear Jacobi parameters

Programowanie funkcyjne Wykład 12. Funkcje rekurencyjne i rachunek lambda

Logika i teoria typów Ko-rekursja i ko-indukcja

KONKURS MATEMATYCZNY KOMA 2018

Aerodynamics I Compressible flow past an airfoil

Weronika Mysliwiec, klasa 8W, rok szkolny 2018/2019

Logika i teoria typów. Typy rekurencyjne (i indukcyjne) Recursive types (Curry style) Positive and Negative. Positive recursive types.

TTIC 31210: Advanced Natural Language Processing. Kevin Gimpel Spring Lecture 8: Structured PredicCon 2

Logika rozmyta typu 2

Wykład 2: Rachunek lambda

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

TTIC 31210: Advanced Natural Language Processing. Kevin Gimpel Spring Lecture 9: Inference in Structured Prediction

A sufficient condition of regularity for axially symmetric solutions to the Navier-Stokes equations

VI. Równania różniczkowe liniowe wyższych rzędów

Roland HINNION. Introduction

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

First-order logic. Usage. Tautologies, using rst-order logic, relations to natural language

Steeple #3: Gödel s Silver Blaze Theorem. Selmer Bringsjord Are Humans Rational? Dec RPI Troy NY USA

Stability of Tikhonov Regularization Class 07, March 2003 Alex Rakhlin

Zarządzanie sieciami telekomunikacyjnymi

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

Metody Rozmyte i Algorytmy Ewolucyjne

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Domy inaczej pomyślane A different type of housing CEZARY SANKOWSKI

OpenPoland.net API Documentation

Machine Learning for Data Science (CS4786) Lecture 24. Differential Privacy and Re-useable Holdout

Inverse problems - Introduction - Probabilistic approach

Linear Classification and Logistic Regression. Pascal Fua IC-CVLab

Struktury formalne, czyli elementy Teorii Modeli

Hard-Margin Support Vector Machines

Elementy języka Scheme

Modelowanie zależności. Matematyczne podstawy teorii ryzyka i ich zastosowanie R. Łochowski

Revenue Maximization. Sept. 25, 2018

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

Obliczenia i wnioskowanie w systemie Coq

Twierdzenie Hilberta o nieujemnie określonych formach ternarnych stopnia 4

Realizacja systemów wbudowanych (embeded systems) w strukturach PSoC (Programmable System on Chip)

Programowanie funkcjonalne. Wykªad 12

DUAL SIMILARITY OF VOLTAGE TO CURRENT AND CURRENT TO VOLTAGE TRANSFER FUNCTION OF HYBRID ACTIVE TWO- PORTS WITH CONVERSION

Machine Learning for Data Science (CS4786) Lecture11. Random Projections & Canonical Correlation Analysis

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Previously on CSCI 4622

Wstęp do programowania

17-18 września 2016 Spółka Limited w UK. Jako Wehikuł Inwestycyjny. Marek Niedźwiedź. InvestCamp 2016 PL

EGZAMIN MATURALNY Z JĘZYKA ANGIELSKIEGO

MaPlan Sp. z O.O. Click here if your download doesn"t start automatically

EGZAMIN MATURALNY Z JĘZYKA ANGIELSKIEGO POZIOM ROZSZERZONY MAJ 2010 CZĘŚĆ I. Czas pracy: 120 minut. Liczba punktów do uzyskania: 23 WPISUJE ZDAJĄCY

Programowanie 2009 Programming 2009

EXAMPLES OF CABRI GEOMETRE II APPLICATION IN GEOMETRIC SCIENTIFIC RESEARCH

Counting quadrant walks via Tutte s invariant method

ZASTOSOWANIE SPLOTU FUNKCJI DO OPISU WŁASNOŚCI NIEZAWODNOŚCIOWYCH UKŁADÓW Z REZERWOWANIEM

Title: On the curl of singular completely continous vector fields in Banach spaces

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Wyk lad 8: Leniwe metody klasyfikacji

Marzec: food, advertising, shopping and services, verb patterns, adjectives and prepositions, complaints - writing

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition)

Ćwiczenia z wyliczania wartości funkcji

ARNOLD. EDUKACJA KULTURYSTY (POLSKA WERSJA JEZYKOWA) BY DOUGLAS KENT HALL

Elementy języka Scheme

Podstawowe własności grafów. Wykład 3. Własności grafów

Rozpoznawanie twarzy metodą PCA Michał Bereta 1. Testowanie statystycznej istotności różnic między jakością klasyfikatorów

Interwałowe zbiory rozmyte

1 Warunkowe wartości oczekiwane

Tychy, plan miasta: Skala 1: (Polish Edition)

Zagadnienie odwrotne w pracach zespołu AGH. Prof. Tadeusz Uhl Katedra Robotyki i Mechatroniki Wydział InŜynierii Mechanicznej i Robotyki

Teorioinformacyjne twierdzenie Gödla,

PARADYGMATY I JĘZYKI PROGRAMOWANIA. Programowanie funkcyjne (w- 9)

Rekurencyjna przeliczalność

Równania różniczkowe liniowe wyższych rzędów o stałych współcz

Katowice, plan miasta: Skala 1: = City map = Stadtplan (Polish Edition)

Problem sprawdzania typu dla logiki pierwszego rzędu

General Certificate of Education Ordinary Level ADDITIONAL MATHEMATICS 4037/12

n [2, 11] 1.5 ( G. Pick 1899).

Machine Learning for Data Science (CS4786) Lecture 11. Spectral Embedding + Clustering

Inteligencja obliczeniowa

Stargard Szczecinski i okolice (Polish Edition)

Wstęp do programowania. Różne różności

KORELACJA 1. Wykres rozrzutu ocena związku między zmiennymi X i Y. 2. Współczynnik korelacji Pearsona

Proposal of thesis topic for mgr in. (MSE) programme in Telecommunications and Computer Science

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Transkrypt:

O czym będzie ten wykład: Logika i teoria typów Wykład 1 2 marca 2016 Powtórzenie z rachunku lambda. Logika intuicjonistyczna. Logika jako gra dialogowa. Podstawy logiki liniowej. Logika klasyczna, kontynuacje i wyjątki. Polimorfizm. Typy zależne. Rachunek konstrukcji i jego uogólnienia. Co to jest Coq? Typy indukcyjne i rekurencyjne. Homotopijna teoria typów. Zbiory i funkcje Powtórzenie z rachunku lambda Sposób użycia: a A (należenie) F (a) (aplikacja) Tworzenie: {x W (x)} (wycinanie) λx W (x) (abstrakcja) Ewaluacja: a {x W (x)} W (a) (λx W (x))(a) = W (a) Ekstensjonalność (?) Beztypowy rachunek lambda Dla zbiorów (niewątpliwa): A = B wtedy i tylko wtedy, gdy x (x A x B) A = {x x A} Dla funkcji (wątpliwa): F = G wtedy i tylko wtedy, gdy x (F (x) = G(x)) F = λx Fx ( 1 ) Lambda-wyrażenia: Zmienne x, y, z,... Aplikacje (MN); Abstrakcje (λx M). Konwencje: Opuszczamy zewnętrzne nawiasy; Aplikacja wiąże w lewo: MNP oznacza (MN)P Skrót z kropką: λx 1... x n.m oznacza λx 1 (... (λx n M) ). 1 Gdy F nie zawiera x. Przykłady Zmienne wolne (globalne) I = λx.x K = λxy.x S = λxyz.xz(yz) 2 = λfx. f (fx) ω = λx.xx Ω = ωω Y = λf ((λx.f (xx))(λx.f (xx)) FV(x) = {x}; FV(MN) = FV(M) FV(N); FV(λx M) = FV(M) {x}. Na przykład: FV(λx x) = ; FV(λx. xy) = {y}; FV((λx. xy)(λy. xy)) = {x, y}.

Alfa-konwersja Termy jako grafy: Wyrażenia λx. xy i λz. zy oznaczają tę samą operację ( zaaplikuj dany argument do y ). Należy je uważać za identyczne. Alfa-konwersja: Wyrażenia różniące się tylko wyborem zmiennych związanych utożamiamy. Lambda-termy to klasy abstrakcji tego utożsamienia. Łatwiej powiedzieć, niż zrobić... x Jeden wierzchołek początkowy; G y Zmienne wolne jako wierzchołki końcowe (liście). Termy jako grafy: zmienna Termy jako grafy: aplikacja x Termy jako grafy: abstrakcja Termy jako grafy: abstrakcja Zmienne związane sa niepotrzebne. Przykład Podstawienie G[x := T ] Podstawienie termu T do termu G w miejsce wolnych wystąpień zmiennej x. λ λ @ @ @ λ @ y x T G x T To jest graf termu λx.(λy. xy)((λz. zy)x)

Podstawienie Beta-redukcja x[x := N] = N; y[x := N] = y, gdy y jest zmienną różną od x; (PQ)[x := N] = P[x := N]Q[x := N]; (λy P)[x := N] = λy.p[x := N], gdy y x oraz y FV(N). Wykonanie podstawienia na konkretnej reprezentacji termu może wymagać wymiany zmiennych: (λy P)[x := N] = λz P[y := z][x := N], gdzie z jest nowe. Najmniejsza relacja β, spełniająca warunki: (λxp)q β P[x := Q]; jeśli M β M, to: MN β M N, NM β NM oraz λxm β λxm. Term postaci (λxp)q to β-redeks. Relacja β to zredukowanie jednego dowolnego redeksu. Wołanie przez nazwę Relacje pochodne: (λx P)Q β P[x := Q] Ewaluacja procedury o parametrze formalnym x i treści P, gdy parametrem aktualnym jest Q: Należy wstawić parametr aktualny do treści procedury, wymieniając, jeśli trzeba, lokalne identyfikatory na nowe. Dowolna liczba kroków: β lub β ; Niezerowa liczba kroków: + β ; Co najwyżej jeden krok: = β ; Równoważność (beta-konwersja): = β. Przykład: SKK = β I Normalizacja SKK = (λxyz.xz(yz))(λxy.x)(λxy.x) β (λyz.(λxy.x)z(yz))(λxy.x) β λz.(λxy.x)z((λxy.x)z) β λz.(λy.z)((λxy.x)z) β λz.(λy.z)(λy.z) β λz.z = I Postać normalna to term bez redeksów. Nie da się go redukować. Term M ma postać normalną (jest normalizowalny), gdy redukuje się do pewnej postaci normalnej. Nazywamy ją postacią normalną termu M. Term M jest silnie normalizowalny (M SN), gdy nie istnieje nieskończony ciąg M = M 0 β M 1 β M 2 β Inaczej: każdy ciąg redukcji prowadzi do postaci normalnej. Przykłady Twierdzenie Churcha-Rossera (CR) Term S = λxyz.xz(yz) jest w postaci normalnej. Term SKK jest silnie normalizowalny i ma postać normalną I. Jeśli M P i M Q, to istnieje takie R, że P R i Q R. M Term Ω = (λx. xx)(λx. xx) nie ma postaci normalnej. Term (λx. y)ω ma postać normalną y, ale nie jest silnie normalizowalny. P R Q

Wnioski z twierdzenia Churcha-Rossera (1) Jeśli M = β N, to M β Q β N, dla pewnego Q. Eta-redukcja (2) Każdy term ma co najwyżej jedną postać normalną (i do niej się redukuje). (3) Beta-konwersja jest niesprzeczną teorią równościową Eta-reduction The λi-calculus The least relation η, satisfying the conditions: λx.mx η M, when x FV(M); jeśli M η M, to MN η M N, NM η NM oraz λxm η λxm. The λi-terms: variables; applications (MN), where M and N are λi-terms; abstractions (λx M), where M is a λi-term, and x FV(M). Relacja βη to suma β i η. Notacja βη, = βη itd. stosuje się odpowiednio. Terms S = λxyz.xz(yz) and I = λx.x are λi-terms, but K = λxy.x is not. Theorem: If a λi-term has a normal form then it is SN. Curry s fixed point combinator Y Siła wyrazu Y = λf ((λx.f (xx))(λx.f (xx)) Fact: YF = β F (YF ), for every F. Proof: YF β (λx.f (xx))(λx.f (xx)) β F ((λx.f (xx))(λx.f (xx))) β F (YF ) YF = β F (YF ) Conditional true = λxy.x false = λxy.y Example: Find an M such that Mxy = β MxxyM. if P then Q else R = PQR. Solution: No problem, M = Y(λm λxy. mxxym). It works: if true then Q else R β Q if false then Q else R β R.

Ćwiczenie Ordered pair Pair = Boolean selector: M, N = λx.xmn; Zdefiniować klasyczne spójniki zdaniowe:,,,. π i = λx 1 x 2.x i (i = 1, 2); Π i = λp. pπ i (i = 1, 2). It works: Π 1 M, N β M, N π 1 β M. Church s numerals Definable functions c n = n = λfx.f n (x), 0 = λfx.x; 1 = λfx.fx; 2 = λfx.f (fx); 3 = λfx.f (f (fx)), etc. A partial function f : N k N is λ-definable if there is a term F such that for all n 1,..., n k N: If f (n 1,..., n k ) = m, then F n 1... n k = β m; If f (n 1,..., n k ) is undefined then F n 1... n k does not normalize. Nierozstrzygalność Twierdzenie: Funkcja (częsciowa) jest definiowalna w rachunku lambda wtedy i tylko wtedy, gdy jest (częsciowo) rekurencyjna. Wnioski: The following are undecidable problems: Given M and N, does M β N hold? Given M and N, does M = β N hold? Given M, does M normalize? Given M, does M strongly normalize? Logika kombinatoryczna (Rachunek kombinatorów) Terms: Variables; Constants K and S; Applications (FG). The weak reduction Examples of combinators KFG w F ; SFGH w FH(GH); If F w G, then FH w GH and HF w HG. Notation w, = w etc. used as usual. I = SKK IF w KF (KF ) w F Ω = SII(SII) Ω w I(SII)(I(SII)) w Ω W = SS(KI) WFG w SF (KIF )G w SF IG w FG(IG) w FGG

Examples of combinators Examples of combinators B = S(KS)K BFGH w KSF (KF )GH w S(KF )GH w w KFH(GH) w F (GH) C = S(BBS)(KK) CFGH w FHG B = CB B FGH w G(FH) Remark: Each of those can be added as a new constant. 0 = KI 1 = SB(KI) 2 = SB(SB(KI)) 0FG w G 1FG w FG 2FG w F (FG) From lambda to CL: combinatory abstraction Fixed point combinators λ x.f = KF, when x FV(F ); λ x.x = I; λ x.fg = S(λ x.f )(λ x.g), otherwise. Fakt: (λ x.f )G w F [x := G]. Y = WS(BWB) Θ = WI(B(SI)(WI)) NCL - Naive Combinatory Logic Terms: If F, G are terms then PFG is a term. Write F G for PFG. Formulas: Every term F is a formula; Equations F = G are formulas. NCL - Axioms and rules Axioms: Rules: F = F KFG = F SFGH = FH(GH) F F (F (F G)) (F G) M = N MQ = NQ M = N N = M M = N QM = QN M = N, N = Q M = Q M, M = N N M, M N N Curry s Paradox Take any term F and define N = Y(λ x. x F ). Then N = N F in NCL. Using axiom N N it follows that N (N F ). Thus N F, using (N (N F )) (N F ). This proves N, because N = N F. Eventually, F follows by modus ponens. Typy proste Moral: System NCL is logically inconsistent.

Simple types Types: Type constant 0 is a type. If σ and τ are types then (σ τ) is a type. Simple type assignment Γ (x : σ) x : σ (Var) Alternatywne podejście: inne stałe lub zmienne typowe. Konwencja: Γ(x : σ) M : τ Γ λx M : σ τ (Abs) Zamiast (τ (σ ρ)) piszemy τ σ ρ. Każdy typ ma postać τ 1 τ n atom. Γ M : σ τ Γ MN : τ Γ N : σ (App) Przykłady Type reconstruction x : p q r λyz. xz(yz) : (p q) p r; λxyz xz(yz) : (p q r) (p q) p r; λxy. x : p q p; λxy. x : τ σ τ; 2 : (τ τ) τ τ; λx. xx : τ, dla każdego τ. Theorem: Typability (? M :? ) is decidable in Ptime. Proof: Reduction to unification. Fact: The same holds for type-checking (Γ M : τ?) Proof: Similar. Subject Reduction Church style syntax (orthodox) Assume infinite sets V τ of variables of each type τ. Define sets T τ of terms of type τ: Theorem: If Γ M : τ and M βη N then Γ N : τ. A variable of type τ is a term of type τ; If M T σ τ and N T σ then (MN) T τ ; If M T τ and x V σ then (λx M) T σ τ. Write M σ for M T σ and define beta-reduction by (λx σ. M τ )N σ M[x σ := N]. Church vs. Curry Church style (typed systems): New syntax, built-in types. Every term has exactly one type. No untypable terms. Curry style (type-assignment systems): Ordinary untyped lambda-terms. Types are derivable properties of terms. System of type assignment rules. A term may have many types or none. Typability not obvious. Non-orthodox Church Type-assignment with type annotations on bound variables. Γ (x : σ) x : σ (Var) Γ(x : σ) M : τ (Abs) Γ λx:σ M : σ τ Γ M : σ τ Γ N : σ (App) Γ MN : τ Fact: If Γ M : τ and Γ M : σ then τ = σ.

Relating systems Properties of type erasure (Church is blu, Curry is black.) 1. If Γ M : τ then Γ M : τ. Erasing types from (non-orthodox) Church terms: x = x; MN = M N ; λx:σ. M = λx M. 2. If Γ M : τ then there exists M such that M = M oraz Γ M : τ. 3. If M β N then M β N. 4. If M β N then there exists N such that N = N and M β N. Proof: easy induction. Example: If M = M then M SN iff M SN. Informal type annotations Well-typed Curry style terms can be informally annotated by types, e.g. ((λx σ.n τ ) σ τ P σ ) τ. Such annotations represent type derivations and can be identified with Church-style terms. In many cases it does not matter if we consider Curry style or Church style, orthodox or not. We always choose what is the most convenient formulation.