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