Logika i teoria typów

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

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

Rekurencyjna przeliczalność

Logika i teoria typów

Rachunek lambda, zima

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

Adam Meissner.

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

Logika intuicjonistyczna

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

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

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

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

Struktury formalne, czyli elementy Teorii Modeli

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

Zasady krytycznego myślenia (1)

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

1 Funktory i kwantyfikatory

Logiki modalne. notatki z seminarium. Piotr Polesiuk

Język rachunku predykatów Formuły rachunku predykatów Formuły spełnialne i prawdziwe Dowody założeniowe. 1 Zmienne x, y, z...

Definicja: zmiennych zdaniowych spójnikach zdaniowych:

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

Co to są liczby naturalne i czemu ich nie ma?! Adam Kolany

Paradygmaty dowodzenia

Definicja: zmiennych zdaniowych spójnikach zdaniowych:

Lista egzaminacyjna zadań z matematycznych podstaw informatyki, wersja 3.

Zadania z forcingu. Marcin Kysiak. Semestr zimowy r. ak. 2002/2003

Logika dla informatyków

Matematyka ETId Elementy logiki

Metoda Tablic Semantycznych

Semantyka rachunku predykatów pierwszego rzędu. Dziedzina interpretacji. Stałe, zmienne, funkcje. Logika obliczeniowa.

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

Podstawy Sztucznej Inteligencji (PSZT)

Logika pragmatyczna. Logika pragmatyczna. Kontakt: Zaliczenie:

O pewnych związkach teorii modeli z teorią reprezentacji

Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)

LOGIKA Klasyczny Rachunek Zdań

Andrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki. Wykład 14. Wprowadzenie do logiki intuicjonistycznej

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

1. Składnia. Logika obliczeniowa - zadania 1 SKŁADNIA Teoria

Egzamin z logiki i teorii mnogości, rozwiązania zadań

Semantyka rachunku predykatów

Arytmetyka pierwszego rz du

Logika formalna wprowadzenie. Ponieważ punkty 10.i 12. nie były omawiane na zajęciach, dlatego można je przeczytać fakultatywnie.

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

Andrzej Wiśniewski Logika II. Wykłady 10b i 11. Semantyka relacyjna dla normalnych modalnych rachunków zdań

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

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ęść 1. Marcin Szczuka. Instytut Matematyki UW. Wykład monograficzny, semestr letni 2016/2017

Automatyczne dowodzenie twierdzeń metodą rezolucji

Logika pragmatyczna dla inżynierów

Granica i ciągłość funkcji. 1 Granica funkcji rzeczywistej jednej zmiennej rzeczywsitej

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

Podstawy matematyki dla informatyków. Logika formalna. Skªadnia rachunku zda« Skróty i priorytety. Wykªad 10 (Klasyczny rachunek zda«) 15 grudnia 2011

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

Prawdopodobieństwo i statystyka

Obliczanie. dr hab. inż. Joanna Józefowska, prof. PP 1

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

Logika intuicjonistyczna

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

Twierdzenia Gödla. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

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

Analiza znaczeniowa sterowana składnią

PRZEWODNIK PO PRZEDMIOCIE

Logika Matematyczna (I JiIN UAM)

Metody dowodzenia twierdzeń i automatyzacja rozumowań Na początek: teoria dowodu, Hilbert, Gödel

Rozstrzygalność logiki modalnej

Schematy Piramid Logicznych

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

KONKURS MATEMATYCZNY KOMA 2018

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

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

Rachunek logiczny. 1. Język rachunku logicznego.

Dystrybucje. Marcin Orchel. 1 Wstęp Dystrybucje Pochodna dystrybucyjna Przestrzenie... 5

Klasyczny rachunek predykatów

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

Teoretyczne Podstawy Języków Programowania Wykład 1. Rachunek zdań

Wstęp do Programowania potok funkcyjny

Kultura logiczna Klasyczny rachunek zdań 2/2

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

Prawdopodobieństwo i statystyka

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

Elementy logiki matematycznej

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

Logika. Logika. Z czego się składa: model dziedzina, o której własnościach wnioskujemy,

1 Zbiory. 1.1 Kiedy {a} = {b, c}? (tzn. podać warunki na a, b i c) 1.2 Udowodnić, że A {A} A =.

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

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

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

Wstęp do Programowania potok funkcyjny

III rok kognitywistyki UAM,

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

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

WYKŁADY Z RACHUNKU PRAWDOPODOBIEŃSTWA I wykład 4 Przekształcenia zmiennej losowej, momenty

Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i

Logika Matematyczna (2,3)

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

Zagadnienia podstawowe dotyczące metod formalnych w informatyce

Michał Lipnicki (UAM) Logika 11 stycznia / 20

WYKŁAD 3: METODA AKSJOMATYCZNA

Transkrypt:

Logika i teoria typów Wykład 10 4 maja 2016

Logika drugiego rzędu, czyli Polimorfizm

Klasyczna logika drugiego rzędu Składnia: Zmienne relacyjne i kwantyfikatory R, R.

Klasyczna logika drugiego rzędu Składnia: Zmienne relacyjne i kwantyfikatory R, R. Semantyka w stylu Tarskiego: Interpretujemy zmienne relacyjne jako relacje. Na przykład formuła Nat(a) = R( b(r(b) R(s b)) R(0) R(a)) definiuje standardowe liczby naturalne.

Klasyczna logika drugiego rzędu Składnia: Zmienne relacyjne i kwantyfikatory R, R. Semantyka w stylu Tarskiego: Interpretujemy zmienne relacyjne jako relacje. Na przykład formuła Nat(a) = R( b(r(b) R(s b)) R(0) R(a)) definiuje standardowe liczby naturalne. Wniosek: Aksjomaty Peana plus anat(a) definiują standardowy model arytmetyki z dokładnością do izomorfizmu.

Klasyczna logika drugiego rzędu Składnia: Zmienne relacyjne i kwantyfikatory R, R. Semantyka w stylu Tarskiego: Interpretujemy zmienne relacyjne jako relacje. Na przykład formuła Nat(a) = R( b(r(b) R(s b)) R(0) R(a)) definiuje standardowe liczby naturalne. Wniosek: Aksjomaty Peana plus anat(a) definiują standardowy model arytmetyki z dokładnością do izomorfizmu. Wniosek: Zbiór tautologii drugiego rzędu nie jest rekurencyjnie przeliczalny (bo Th(N) nie jest).

Klasyczna logika drugiego rzędu Składnia: Zmienne relacyjne i kwantyfikatory R, R. Semantyka w stylu Tarskiego: Interpretujemy zmienne relacyjne jako relacje. Na przykład formuła Nat(a) = R( b(r(b) R(s b)) R(0) R(a)) definiuje standardowe liczby naturalne. Wniosek: Aksjomaty Peana plus anat(a) definiują standardowy model arytmetyki z dokładnością do izomorfizmu. Wniosek: Zbiór tautologii drugiego rzędu nie jest rekurencyjnie przeliczalny (bo Th(N) nie jest). Wniosek: Nie ma pełnego systemu wnioskowania.

Siła wyrazu języka drugiego rzędu Przykład: Dodawanie liczb naturalnych (m + n = k): R ( a(ra0a) abc (Rabc Ra(sb)(sc)) Rmnk).

Siła wyrazu języka drugiego rzędu Przykład: Dodawanie liczb naturalnych (m + n = k): R ( a(ra0a) abc (Rabc Ra(sb)(sc)) Rmnk). Dodawanie jest najmniejszym punktem stałym operatora: R { a, 0, a a N} { a, sb, sc a, b, c R}.

Siła wyrazu języka drugiego rzędu Przykład: Dodawanie liczb naturalnych (m + n = k): R ( a(ra0a) abc (Rabc Ra(sb)(sc)) Rmnk). Dodawanie jest najmniejszym punktem stałym operatora: R { a, 0, a a N} { a, sb, sc a, b, c R}. Uogólnienie: Najmniejszy punkt stały operatora Φ: LFP Φ (a) := R ((Φ(R) R) Ra) LFP Φ (a) := R ( b(φ(r)b Rb) Ra)

Logika drugiego rzędu w stylu Henkina Semantyka (nieformalna): Interpretujemy zmienne relacyjne jako definiowalne predykaty. To ma sens klasycznie i intuicjonistycznie. Reguły wnioskowania: ( 2 I) Γ ϕ Γ R ϕ (R FV(Γ)) ( 2 E) Γ R ϕ Γ ϕ[r := λ a.ψ] ( 2 I) Γ ϕ[r := λ a.ψ] Γ R ϕ ( 2 E) Γ R ϕ Γ, ϕ ψ Γ ψ (R FV(Γ, ψ))

Brouwer-Heyting-Kołmogorow A construction of R ϕ(r) is a method (function) transforming every predicate R into a proof of ϕ(r). A construction of R ϕ(r) consists of a predicate R and a construction of ϕ(r).

Motywujący przykład Nat(a) = R( b(r(b) R(s b)) R(0) R(a)) Dowód formuły Nat(0) można zapisać tak: λrλx λy. Y. Dowodem Nat(1), czyli Nat(s 0), jest λrλx λy. X (Y ). Dowód formuły Nat(s n 0) to λrλx λy. X n (Y ), i tak dalej.

Wycieranie zależności Formuła Nat(a) = R( b(r(b) R(s b)) R(0) R(a)) pozbawiona treści indywiduowej wygląda tak: ω = r((r r) r r) To jest polimorficzny typ liczebników Churcha n = λfx. f n x. Liczebnik n jest wytarciem dowodu formuły Nat(s n (0)).

Dygresja: Program extraction Przypuśćmy, że mamy dowód formuły postaci a(nat(a) b (Nat(b) W (a, b))).

Dygresja: Program extraction Przypuśćmy, że mamy dowód formuły postaci a(nat(a) b (Nat(b) W (a, b))). Ta formuła wyciera się do typu postaci ω ω τ.

Dygresja: Program extraction Przypuśćmy, że mamy dowód formuły postaci a(nat(a) b (Nat(b) W (a, b))). Ta formuła wyciera się do typu postaci ω ω τ. Dowód wyciera się (w odpowiednim rachunku lambda) do termu F : ω ω τ.

Dygresja: Program extraction Przypuśćmy, że mamy dowód formuły postaci a(nat(a) b (Nat(b) W (a, b))). Ta formuła wyciera się do typu postaci ω ω τ. Dowód wyciera się (w odpowiednim rachunku lambda) do termu F : ω ω τ. Wtedy term λa.fa{1} : ω ω definiuje funkcję f o własności a(nat(a) W (a, f (a))).

Zdaniowa logika drugiego rzędu Składnia: Zmienne zdaniowe p, q, r,... są formułami; Stała jest formułą; Jeśli α i β są formułami, to α β, α β i α β są formułami; Jeśli α jest formułą i p jest zmienną zdaniową, to p α i p α są formułami.

Brouwer-Heyting-Kołmogorow A construction of pϕ(p) is a method (function) transforming any proposition P into a proof of ϕ(p). A construction of pϕ(p) consists of a proposition P and a construction of ϕ(p).

Naturalna dedukcja (implikacyjno-uniwersalna) (Ax) Γ, ϕ ϕ ( I) Γ, ϕ ψ Γ ϕ ψ ( E) Γ ϕ ψ Γ ϕ Γ ψ ( I) Γ ϕ Γ p ϕ (p FVT (Γ)) ( E) Γ p ϕ Γ ϕ[p := ϑ]

Dwa slogany Full comprehension: Propositional variables range over all formulas: p (ϕ p) p ϕ(p) ϕ(ψ)

Dwa slogany Full comprehension: Propositional variables range over all formulas: p (ϕ p) p ϕ(p) ϕ(ψ) The meaning of p in p ϕ can be p ϕ itself.

Dwa slogany Full comprehension: Propositional variables range over all formulas: p (ϕ p) p ϕ(p) ϕ(ψ) The meaning of p in p ϕ can be p ϕ itself. Impredicativity: The meaning of p ϕ is defined by a reference to a domain to which p ϕ itself belongs.

Semantyka Kripkego Model C = C,, {D c c C}. Zbiory D c P(C) spełniają warunki: jeśli c d, to D c D d ; jeśli d X D c oraz d d, to d X. Wartościowanie dopuszczalne dla ϕ w stanie c: v(p) D c, gdy p FV(ϕ)

Wymuszanie c, v p c v(p); c, v ; c, v ϕ ψ c, v ϕ lub c, v ψ; c, v ϕ ψ c, v ϕ oraz c, v ψ; c, v ϕ ψ jeśli c c i c, v ϕ, to c, v ϕ; c, v pϕ c, v[p X ] ϕ, dla pewnego X D c ; c, v pϕ jeśli c c i X D c, to c, v[p X ] ϕ.

Kompletny model Znaczenie formuły ϕ w stanie c, przy wartościowaniu v: [[ϕ]] c = {c c c oraz c, v ϕ} Model jest kompletny, gdy zawsze [[ϕ]] c D c Fakt: Model C jest kompletny wtw, gdy dla każdego ϕ: C p(p ϕ).

Pełność Kripkego Piszemy ϕ, gdy C ϕ, dla każdego kompletnego modelu C. Twierdzenie: Warunki ϕ i ϕ są równoważne.

Semantyka Heytinga W zupełnej algebrze Heytinga: [[ p ϕ]] ζ = sup h H [[ϕ]] ζ[p h] [[ p ϕ]] ζ = inf h H [[ϕ]] ζ[p h]

Semantyka Heytinga W zupełnej algebrze Heytinga: [[ p ϕ]] ζ = sup h H [[ϕ]] ζ[p h] [[ p ϕ]] ζ = inf h H [[ϕ]] ζ[p h] Fakt: Jeśli ϕ, to = ϕ

Semantyka Heytinga W zupełnej algebrze Heytinga: [[ p ϕ]] ζ = sup h H [[ϕ]] ζ[p h] [[ p ϕ]] ζ = inf h H [[ϕ]] ζ[p h] Fakt: Jeśli ϕ, to = ϕ Hipoteza: I na odwrót.

Nierozstrzygalność Twierdzenie (Löb, 1976, Gabbay, 1974, Sobolew, 1977) Intuicjonistyczna logika zdaniowa drugiego rzędu jest nierozstrzygalna.

Nierozstrzygalność Twierdzenie (Löb, 1976, Gabbay, 1974, Sobolew, 1977) Intuicjonistyczna logika zdaniowa drugiego rzędu jest nierozstrzygalna. Uwaga: Wystarczy {, } lub {,,,, }.

Nierozstrzygalność Twierdzenie (Löb, 1976, Gabbay, 1974, Sobolew, 1977) Intuicjonistyczna logika zdaniowa drugiego rzędu jest nierozstrzygalna. Uwaga: Wystarczy {, } lub {,,,, }. Uwaga: Fragmenty {,, } i {,,, } są rozstrzygalne (Tatsuta, Fujita i inni).

Siła wyrazu: suma/alternatywa x A B P(A P B P x P),

Siła wyrazu: suma/alternatywa x A B P(A P B P x P), A(x) B(x) P( y(a(y) P(y)) y(b(y) P(y)) P(x)).

Siła wyrazu: suma/alternatywa x A B P(A P B P x P), A(x) B(x) P( y(a(y) P(y)) y(b(y) P(y)) P(x)). A B = p((a p) (B p) p).

Siła wyrazu: iloczyn/koniunkcja x A B P( z(z A z B z P) x P).

Siła wyrazu: iloczyn/koniunkcja x A B P( z(z A z B z P) x P). A B = p((a B p) p).

Siła wyrazu: zbiór (typ) pusty czyli fałsz x P(x P).

Siła wyrazu: zbiór (typ) pusty czyli fałsz x P(x P). = p p

Siła wyrazu: kwantyfikator szczegółowy x P S P Q( P(S P Q) x Q)

Siła wyrazu: kwantyfikator szczegółowy x P S P Q( P(S P Q) x Q) p σ = q( p(σ q) q).

Poprawność Dla tak określonych spójników spełnione są zwykłe reguły wnioskowania, w tym: ( I) Γ ϕ[p := ϑ] Γ p ϕ ( E) Γ p ϕ Γ ψ Γ, ϕ ψ (p FV(Γ, ψ))

Polimorficzny rachunek lambda Morał: Można się ograniczyć do języka z implikacją i kwantyfikatorem ogólnym. W ten sposób otrzymujemy system F Girarda.

Polymorphic types Basic idea: p. p p is a type of a generic identity.

Polymorphic types Basic idea: p. p p is a type of a generic identity. Church style (explicit polymorphism): Generic identity I admits a type argument. The application Iτ is of type τ τ.

Polymorphic types Basic idea: p. p p is a type of a generic identity. Church style (explicit polymorphism): Generic identity I admits a type argument. The application Iτ is of type τ τ. Curry style (implicit polymorphism): Generic identity I has all types τ τ at once.

Girard s System F (Church style) Γ(x : ϕ) x : ϕ Γ(x : ϕ) M : ψ Γ λx:ϕ M : ϕ ψ Γ M : ϕ ψ Γ MN : ψ Γ N : ϕ Γ M : ϕ Γ (p FVT(Γ)) Γ Λp M : p ϕ M : p ϕ Γ Mϑ : ϕ[p := ϑ]

Girard s System F (Church style) Γ(x : ϕ) x : ϕ Γ(x : ϕ) M : ψ Γ λx:ϕ M : ϕ ψ Γ M : ϕ ψ Γ MN : ψ Γ N : ϕ Γ M : ϕ Γ (p FVT(Γ)) Γ Λp M : p ϕ M : p ϕ Γ Mϑ : ϕ[p := ϑ]

A few examples Term Λqλx p(p p).x(q q)(xq) has type q( p(p p) q q);

A few examples Term Λqλx p(p p).x(q q)(xq) has type q( p(p p) q q); Term 2 = Λp.λf p p λx p.f (fx) has type p((p p) (p p));

A few examples Term Λqλx p(p p).x(q q)(xq) has type q( p(p p) q q); Term 2 = Λp.λf p p λx p.f (fx) has type p((p p) (p p)); Term λf p(p q p) Λpλx p.f (q p)(fpx) has type p(p q p) p(p q q p).

Reduction rules Beta: (λx:τ.m)n = β M[x := N]; (Λα.M)τ = β M[α := τ], Eta: λx:τ.mx = η M Λp.M p = η M (x FV(M)); (p FVT(M)). Subject reduction: If Γ M : τ and M βη N then Γ N : τ

System F w stylu Churcha Γ(x : ϕ) x : ϕ Γ(x : ϕ) M : ψ Γ λx:ϕ M : ϕ ψ Γ M : ϕ ψ Γ MN : ψ Γ N : ϕ Γ M : ϕ Γ (p FVT(Γ)) Γ Λp M : p ϕ M : p ϕ Γ Mτ : ϕ[p := τ ]

System F w stylu Curry ego Γ(x : ϕ) x : ϕ Γ(x : ϕ) M : ψ Γ λx:ϕ M : ϕ ψ Γ M : ϕ ψ Γ MN : ψ Γ N : ϕ Γ M : ϕ Γ (p FVT(Γ)) Γ Λp M : p ϕ M : p ϕ Γ Mτ : ϕ[p := τ ]

Nierozstrzygalność Twierdzenie 1: (wniosek z tw. Löba) Problem inhabitacji: Dany typ τ, czy istnieje term zamknięty M typu τ? jest nierozstrzygalny dla systemu F.

Nierozstrzygalność Twierdzenie 1: (wniosek z tw. Löba) Problem inhabitacji: Dany typ τ, czy istnieje term zamknięty M typu τ? jest nierozstrzygalny dla systemu F. Twierdzenie 2: (J.B. Wells, 1993) Problem typowalności: Dany term M, czy istnieją takie Γ i τ, że Γ M : τ? i problem sprawdzenia typu: Dane są Γ, M i τ. Czy Γ M : τ? są dla systemu F nierozstrzygalne.

Silna normalizacja Twierdzenie (Jean-Yves Girard, 1972) System F ma własność silnej normalizacji.

Silna normalizacja Twierdzenie (Jean-Yves Girard, 1972) System F ma własność silnej normalizacji. Dowód: Metoda Candidats de reductibilité. Wymaga kwantyfikowania zmiennych, które oznaczają rodziny zbiorów. To jest arytmetyka 3. rzędu!

Natural numbers Numerals: n = Λpλf p p λx p. f (f ( f (x))) are of type ω = p((p p) (p p)).

Natural numbers Numerals: n = Λpλf p p λx p. f (f ( f (x))) are of type ω = p((p p) (p p)). Examples of representable functions: Add = λmn.λp.λfx.mpf (npfx);

Natural numbers Numerals: n = Λpλf p p λx p. f (f ( f (x))) are of type ω = p((p p) (p p)). Examples of representable functions: Add = λmn.λp.λfx.mpf (npfx); Mult = λmn.λp.λfx.mp(npf )x;

Natural numbers Numerals: n = Λpλf p p λx p. f (f ( f (x))) are of type ω = p((p p) (p p)). Examples of representable functions: Add = λmn.λp.λfx.mpf (npfx); Mult = λmn.λp.λfx.mp(npf )x; Exp = λmn.λp.λfx.m(p p)(np)fx.

Siła wyrazu polimorfizmu Twierdzenie (Girard): Funkcja jest definiowalna w systemie F wtedy i tylko wtedy, gdy jest dowodliwie rekurencyjna w arytmetyce drugiego rzędu.

Siła wyrazu polimorfizmu Twierdzenie (Girard): Funkcja jest definiowalna w systemie F wtedy i tylko wtedy, gdy jest dowodliwie rekurencyjna w arytmetyce drugiego rzędu. Idea dowodu (w uproszczeniu): ( ) Dowód formuły n m P(n, m) wyciera się do termu typu ω ω. ( ) Dowód silnej normalizacji dla ustalonej funkcji można przeprowadzić w arytmetyce drugiego rzędu.

Siła wyrazu polimorfizmu Twierdzenie (Girard): Funkcja jest definiowalna w systemie F wtedy i tylko wtedy, gdy jest dowodliwie rekurencyjna w arytmetyce drugiego rzędu.

Siła wyrazu polimorfizmu Twierdzenie (Girard): Funkcja jest definiowalna w systemie F wtedy i tylko wtedy, gdy jest dowodliwie rekurencyjna w arytmetyce drugiego rzędu. Wniosek: Silna normalizacja dla systemu F jest niezależna od arytmetyki drugiego rzędu.

Siła wyrazu polimorfizmu Twierdzenie (Girard): Funkcja jest definiowalna w systemie F wtedy i tylko wtedy, gdy jest dowodliwie rekurencyjna w arytmetyce drugiego rzędu. Wniosek: Silna normalizacja dla systemu F jest niezależna od arytmetyki drugiego rzędu. Idea dowodu: W przeciwnym razie w systemie F można zdefiniować funkcję uniwersalną: f (n, m) = f n (m), gdzie f n to funkcje definiowalne w F. Jeśli f (n, n) + 1 = f k (n), to f (k, k) + 1 = f (k, k).

Data types Empty type: = p p Ex falso quodlibet: If Γ M : then Γ Mτ : τ.

Cartesian product σ τ = p((σ τ p) p)

Cartesian product Pairs and projections: σ τ = p((σ τ p) p) Term M σ, N τ = Λpλy σ τ p.ymn has type σ τ.

Cartesian product σ τ = p((σ τ p) p) Pairs and projections: Term M σ, N τ = Λpλy σ τ p.ymn has type σ τ. Term π 1 (M σ τ ) = Mσ(λx σ λy τ.x) has type σ. Term π 2 (M σ τ ) = Mτ(λx σ λy τ.y) has type τ.

Cartesian product σ τ = p((σ τ p) p) Pairs and projections: Term M σ, N τ = Λpλy σ τ p.ymn has type σ τ. Term π 1 (M σ τ ) = Mσ(λx σ λy τ.x) has type σ. Term π 2 (M σ τ ) = Mτ(λx σ λy τ.y) has type τ. Beta-reduction works: π 1 ( M, N ) M, because (Λpλy σ τ p.ymn)σ(λx σ λy τ.x) (λx σ λy τ.x)mn M.

Cartesian product σ τ = p((σ τ p) p) Pairs and projections: Term M σ, N τ = Λpλy σ τ p.ymn has type σ τ. Term π 1 (M σ τ ) = Mσ(λx σ λy τ.x) has type σ. Term π 2 (M σ τ ) = Mτ(λx σ λy τ.y) has type τ. Beta-reduction works: π 1 ( M, N ) M, because (Λpλy σ τ p.ymn)σ(λx σ λy τ.x) (λx σ λy τ.x)mn M. Eta-reduction does not work: π 1 (M), π 2 (M) = Λpλy.y(π 1 (M))(π 2 (M)) M

Coproduct σ τ = p((σ p) (τ p) p) Embedings and cases: Term inl σ τ M = Λpλu σ p λv τ p.um has type σ τ. Term inr σ τ M = Λpλu σ p λv τ p.vm has type σ τ. And case M of [x]p ϑ, [y]q ϑ = Mϑ(λx σ P)(λy τ Q) : ϑ.

Coproduct σ τ = p((σ p) (τ p) p) Embedings and cases: Term inl σ τ M = Λpλu σ p λv τ p.um has type σ τ. Term inr σ τ M = Λpλu σ p λv τ p.vm has type σ τ. And case M of [x]p ϑ, [y]q ϑ = Mϑ(λx σ P)(λy τ Q) : ϑ. Beta-reduction: case inl(p) of [x]m, [y]n = (inl(p))ϑ(λx σ M)(λy τ N) = (Λpλuv.uP)ϑ(λx σ M)(λy τ N) (λx σ M)P M[x := P].

Abstract (encapsulated) type Idea: Type p σ(p) is of shape σ(τ), where τ is unspecified (abstract) and not accesible to the user. Example: An abstract pds object is of type p (p p (p p) (p ω) (ω p p))

Existential types Type assignment: (pack) Γ M : σ[p := τ] Γ pack M, τ to p. σ : p. σ (unpack) Γ M : p. σ Γ(x : σ) N : ρ (p FV (Γ, ρ)) Γ let M be x, p in N : ρ Beta reduction: let (pack M, τ to p. σ) be x, p in N β N[p := τ][x := M].

Implementing existential quantifier Definitions: p σ = q( p(σ q) q).

Implementing existential quantifier Definitions: p σ = q( p(σ q) q). pack M σ[p:=τ], τ to p. σ = Λqλz p(σ q).zτm;

Implementing existential quantifier Definitions: p σ = q( p(σ q) q). pack M σ[p:=τ], τ to p. σ = Λqλz p(σ q).zτm; let M p. σ be x, p in N ρ = Mρ(Λpλx σ.n).

Implementing existential quantifier Definitions: p σ = q( p(σ q) q). pack M σ[p:=τ], τ to p. σ = Λqλz p(σ q).zτm; let M p. σ be x, p in N ρ = Mρ(Λpλx σ.n). Correcteness: let (pack M, τ to p. σ) be x, p in N ρ

Implementing existential quantifier Definitions: p σ = q( p(σ q) q). pack M σ[p:=τ], τ to p. σ = Λqλz p(σ q).zτm; let M p. σ be x, p in N ρ = Mρ(Λpλx σ.n). Correcteness: let (pack M, τ to p. σ) be x, p in N ρ = (Λqλz p(σ q). zτm)ρ(λpλx σ.n)

Implementing existential quantifier Definitions: p σ = q( p(σ q) q). pack M σ[p:=τ], τ to p. σ = Λqλz p(σ q).zτm; let M p. σ be x, p in N ρ = Mρ(Λpλx σ.n). Correcteness: let (pack M, τ to p. σ) be x, p in N ρ = (Λqλz p(σ q). zτm)ρ(λpλx σ.n) (λz p(σ ρ). zτm)(λpλx σ.n)

Implementing existential quantifier Definitions: p σ = q( p(σ q) q). pack M σ[p:=τ], τ to p. σ = Λqλz p(σ q).zτm; let M p. σ be x, p in N ρ = Mρ(Λpλx σ.n). Correcteness: let (pack M, τ to p. σ) be x, p in N ρ = (Λqλz p(σ q). zτm)ρ(λpλx σ.n) (λz p(σ ρ). zτm)(λpλx σ.n) (Λpλx σ.n)τm

Implementing existential quantifier Definitions: p σ = q( p(σ q) q). pack M σ[p:=τ], τ to p. σ = Λqλz p(σ q).zτm; let M p. σ be x, p in N ρ = Mρ(Λpλx σ.n). Correcteness: let (pack M, τ to p. σ) be x, p in N ρ = (Λqλz p(σ q). zτm)ρ(λpλx σ.n) (λz p(σ ρ). zτm)(λpλx σ.n) (Λpλx σ.n)τm N[p := τ][x := M].