Logika i teoria typów

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

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.

Logika rozmyta typu 2

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

Wykład 2: Rachunek lambda

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

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

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

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

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

Roland HINNION. Introduction

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

OpenPoland.net API Documentation

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

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Linear Classification and Logistic Regression. Pascal Fua IC-CVLab

Inverse problems - Introduction - Probabilistic approach

Struktury formalne, czyli elementy Teorii Modeli

Hard-Margin Support Vector Machines

Elementy języka Scheme

Revenue Maximization. Sept. 25, 2018

Twierdzenie Hilberta o nieujemnie określonych formach ternarnych stopnia 4

Obliczenia i wnioskowanie w systemie Coq

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

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

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

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

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

Programowanie funkcjonalne. Wykªad 12

Wstęp do programowania

Previously on CSCI 4622

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

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

EXAMPLES OF CABRI GEOMETRE II APPLICATION IN GEOMETRIC SCIENTIFIC RESEARCH

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

Counting quadrant walks via Tutte s invariant method

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

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

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

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

Wyk lad 8: Leniwe metody klasyfikacji

Ćwiczenia z wyliczania wartości funkcji

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

Elementy języka Scheme

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

Teorioinformacyjne twierdzenie Gödla,

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

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

Interwałowe zbiory rozmyte

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

1 Warunkowe wartości oczekiwane

Rekurencyjna przeliczalność

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

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

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

General Certificate of Education Ordinary Level ADDITIONAL MATHEMATICS 4037/12

Stargard Szczecinski i okolice (Polish Edition)

Problem sprawdzania typu dla logiki pierwszego rzędu

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

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

Inteligencja obliczeniowa

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

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

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

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

Transkrypt:

Logika i teoria typów Wykład 1 2 marca 2016

O czym będzie ten wykład: 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.

Powtórzenie z rachunku lambda

Zbiory i funkcje 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ść (?) 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 ) 1 Gdy F nie zawiera x.

Beztypowy rachunek lambda 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) ).

Przykłady I = λx.x K = λxy.x S = λxyz.xz(yz) 2 = λfx. f (fx) ω = λx.xx Ω = ωω Y = λf ((λx.f (xx))(λx.f (xx))

Zmienne wolne (globalne) FV(x) = {x}; FV(MN) = FV(M) FV(N); FV(λx M) = FV(M) {x}.

Zmienne wolne (globalne) 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 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 λ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.

Alfa-konwersja 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ć...

Termy jako grafy: x G y Jeden wierzchołek początkowy; Zmienne wolne jako wierzchołki końcowe (liście).

Termy jako grafy: zmienna x

Termy jako grafy: aplikacja

Termy jako grafy: abstrakcja

Termy jako grafy: abstrakcja Zmienne związane sa niepotrzebne.

Przykład λ λ @ @ @ λ To jest graf termu λx.(λy. xy)((λz. zy)x) @ y

Podstawienie G[x := T ] Podstawienie termu T do termu G w miejsce wolnych wystąpień zmiennej x. x G x

Podstawienie G[x := T ] Podstawienie termu T do termu G w miejsce wolnych wystąpień zmiennej x. G T T

Podstawienie 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.

Beta-redukcja Najmniejsza relacja β, spełniająca warunki: (λxp)q β P[x := Q]; jeśli M β M, to: MN β M N, NM β NM oraz λxm β λxm.

Beta-redukcja 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ę (λ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.

Relacje pochodne: Dowolna liczba kroków: β lub β ; Niezerowa liczba kroków: + β ; Co najwyżej jeden krok: = β ; Równoważność (beta-konwersja): = β.

Przykład: SKK = β I SKK = (λxyz.xz(yz))(λxy.x)(λxy.x)

Przykład: SKK = β I SKK = (λxyz.xz(yz))(λxy.x)(λxy.x)

Przykład: SKK = β I SKK = (λxyz.xz(yz))(λxy.x)(λxy.x) β (λyz.(λxy.x)z(yz))(λxy.x)

Przykład: SKK = β I SKK = (λxyz.xz(yz))(λxy.x)(λxy.x) β (λyz.(λxy.x)z(yz))(λxy.x)

Przykład: SKK = β I SKK = (λxyz.xz(yz))(λxy.x)(λxy.x) β (λyz.(λxy.x)z(yz))(λxy.x) β λz.(λxy.x)z((λxy.x)z)

Przykład: SKK = β I SKK = (λxyz.xz(yz))(λxy.x)(λxy.x) β (λyz.(λxy.x)z(yz))(λxy.x) β λz.(λxy.x)z((λxy.x)z)

Przykład: SKK = β I 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)

Przykład: SKK = β I 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)

Przykład: SKK = β I 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)

Przykład: SKK = β I 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)

Przykład: SKK = β I 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

Normalizacja 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 Term S = λxyz.xz(yz) jest w postaci normalnej.

Przykłady Term S = λxyz.xz(yz) jest w postaci normalnej. Term SKK jest silnie normalizowalny i ma postać normalną I.

Przykłady Term S = λxyz.xz(yz) jest w postaci normalnej. Term SKK jest silnie normalizowalny i ma postać normalną I. Term Ω = (λx. xx)(λx. xx) nie ma postaci normalnej.

Przykłady Term S = λxyz.xz(yz) jest w postaci normalnej. Term SKK jest silnie normalizowalny i ma postać normalną I. Term Ω = (λx. xx)(λx. xx) nie ma postaci normalnej. Term (λx. y)ω ma postać normalną y, ale nie jest silnie normalizowalny.

Twierdzenie Churcha-Rossera (CR) Jeśli M P i M Q, to istnieje takie R, że P R i Q R. M P Q R

Wnioski z twierdzenia Churcha-Rossera (1) Jeśli M = β N, to M β Q β N, dla pewnego Q. (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-redukcja

Eta-reduction 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. Relacja βη to suma β i η. Notacja βη, = βη itd. stosuje się odpowiednio.

The λi-calculus 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). 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.

Siła wyrazu

Curry s fixed point combinator Y Y = λf ((λx.f (xx))(λx.f (xx))

Curry s fixed point combinator Y Y = λf ((λx.f (xx))(λx.f (xx)) Fact: YF = β F (YF ), for every F.

Curry s fixed point combinator Y 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 ) Example: Find an M such that Mxy = β MxxyM.

YF = β F (YF ) Example: Find an M such that Mxy = β MxxyM. Solution: No problem, M = Y(λm λxy. mxxym).

Conditional true = λxy.x false = λxy.y if P then Q else R = PQR. It works: if true then Q else R β Q if false then Q else R β R.

Ćwiczenie Zdefiniować klasyczne spójniki zdaniowe:,,,.

Ordered pair Pair = Boolean selector: M, N = λx.xmn; π 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 c n = n = λfx.f n (x), 0 = λfx.x; 1 = λfx.fx; 2 = λfx.f (fx); 3 = λfx.f (f (fx)), etc.

Definable functions 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.

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)

Logika kombinatoryczna (Rachunek kombinatorów) Terms: Variables; Constants K and S; Applications (FG).

The weak reduction 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.

Examples of combinators I = SKK

Examples of combinators I = SKK IF w KF (KF ) w F

Examples of combinators I = SKK IF w KF (KF ) w F Ω = SII(SII)

Examples of combinators I = SKK IF w KF (KF ) w F Ω = SII(SII) Ω w I(SII)(I(SII)) w Ω

Examples of combinators I = SKK IF w KF (KF ) w F Ω = SII(SII) Ω w I(SII)(I(SII)) w Ω W = SS(KI)

Examples of combinators 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 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.

Examples of combinators 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 λ x.f = KF, when x FV(F ); λ x.x = I; λ x.fg = S(λ x.f )(λ x.g), otherwise.

From lambda to CL: combinatory abstraction λ 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].

Fixed point combinators 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: F = F KFG = F SFGH = FH(GH) F F (F (F G)) (F G) Rules: 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 ).

Curry s Paradox Take any term F and define N = Y(λ x. x F ). Then N = N F in NCL.

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 ).

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 ).

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.

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.

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. Moral: System NCL is logically inconsistent.

Typy proste

Simple types Types: Type constant 0 is a type. If σ and τ are types then (σ τ) is a type. Alternatywne podejście: inne stałe lub zmienne typowe. Konwencja: Zamiast (τ (σ ρ)) piszemy τ σ ρ. Każdy typ ma postać τ 1 τ n atom.

Simple type assignment Γ (x : σ) x : σ (Var) Γ(x : σ) M : τ Γ λx M : σ τ (Abs) Γ M : σ τ Γ MN : τ Γ N : σ (App)

Przykłady 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 τ.

Type reconstruction Theorem: Typability (? M :? ) is decidable in Ptime. Proof: Reduction to unification. Fact: The same holds for type-checking (Γ M : τ?) Proof: Similar.

Subject Reduction Theorem: If Γ M : τ and M βη N then Γ N : τ.

Church style syntax (orthodox) Assume infinite sets V τ of variables of each type τ. Define sets T τ of terms of type τ: 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 : τ Γ λx:σ M : σ τ (Abs) Γ M : σ τ Γ MN : τ Γ N : σ (App) Fact: If Γ M : τ and Γ M : σ then τ = σ.

Relating systems Erasing types from (non-orthodox) Church terms: x = x; MN = M N ; λx:σ. M = λx M.

Properties of type erasure (Church is blu, Curry is black.) 1. If Γ M : τ then Γ 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.