Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Category Theory, part 2

0286822f506fc4621bd3ea0bcbfef238?s=47 Bucharest FP
January 28, 2015

Category Theory, part 2

0286822f506fc4621bd3ea0bcbfef238?s=128

Bucharest FP

January 28, 2015
Tweet

Transcript

  1. Introducere ˆ ın Teoria Categoriilor (II) Adriana Balan1 1Departamentul de

    Metode ¸ si Modele Matematice Universitatea POLITEHNICA din Bucure¸ sti Bucharest FP#7 28 Ianuarie 2015
  2. Cuprins 1 Categorii: de ce, cum, unde... 2 Ce este

    o categorie? 3 Construct ¸ii universale ˆ ın categorii 4 Corespondent ¸a Curry-Howard-Lambek Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 1 / 36
  3. Teoria Categoriilor Abstractizare Generalizare Multitudine de exemple ¸ si aplicat

    ¸ii din / ˆ ın diverse domenii informatic˘ a programare funct ¸ional˘ a teoria computat ¸ional˘ a semantic˘ a limbajelor formale, lingvistic˘ a teoria concurent ¸ei ¸ si programarea paralel˘ a logic˘ a matematic˘ a filozofie fizic˘ a (cuantic˘ a), ... Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 2 / 36
  4. Teoria Categoriilor ˆ ın Computer Science Ast˘ azi: corespondent ¸a

    Curry-Howard Programare funct ¸ional˘ a λ-calculus oo GG –– 22 Logic˘ a gg ÓÓ Categorii Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 3 / 36
  5. Teoria Categoriilor ˆ ın Computer Science Ast˘ azi: corespondent ¸a

    Curry-Howard Programare funct ¸ional˘ a λ-calculus oo Haskell B. Curry GG oo William A. Howard GG –– 22 Logic˘ a gg ÓÓ Categorii Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 3 / 36
  6. Teoria Categoriilor ˆ ın Computer Science Ast˘ azi: corespondent ¸a

    Curry-Howard Programare funct ¸ional˘ a λ-calculus oo Haskell B. Curry GG oo William A. Howard GG –– 22 Joachim Lambek Logic˘ a gg ÓÓ Categorii Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 3 / 36
  7. Cuprins 1 Categorii: de ce, cum, unde... 2 Ce este

    o categorie? 3 Construct ¸ii universale ˆ ın categorii 4 Corespondent ¸a Curry-Howard-Lambek Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 3 / 36
  8. Ce este o categorie C? Obiecte: A, B, C, .

    . . Morfisme/s˘ aget ¸i: pentru fiecare pereche de obiecte A, B, o mult ¸ime de morfisme C, cu domeniul A ¸ si codomeniul B. Vom nota f : A → B pentru f ∈ C(A, B). Compunerea morfismelor: pentru orice obiecte A, B, C, o funct ¸ie cA,B,C : C(A, B) × C(B, C) → C(A, C) Vom nota cA,B,C (f , g) = f ; g = g ◦ f . Sau, diagramatic: A f GGB g GGC . Morfismul identitate: pentru fiecare obiect A, un morfism idA : A → A. Axiome: h ◦ (g ◦ f ) = (h ◦ g) ◦ f f ◦ idA = f = idB ◦ f Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 4 / 36
  9. Exemplu: categoria Set Obiecte mult ¸imi N, Z, R, {0,

    1}, . . . Morfisme funct ¸ii f : A −→ B Morfismul Identitate pentru fiecare mult ¸ime A, funct ¸ia identic˘ a idA : A −→ A, idA(x) = x Compunerea morfismelor compunerea uzual˘ a a funct ¸iilor a1 a2 a3 A b1 b2 b3 b4 B c1 c2 c3 c4 C f g g ◦ f Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 5 / 36
  10. Exemple Orice structur˘ a matematic˘ a baz˘ at˘ a pe

    mult ¸imi, ˆ ımpreun˘ a cu funct ¸iile ce p˘ astreaz˘ a aceast˘ a structur˘ a, formeaz˘ a o categorie: Set (mult ¸imi ¸ si funct ¸ii) Grp (grupuri ¸ si morfisme de grupuri) Mon (monoizi ¸ si morfisme de monoizi) Vectk (spat ¸ii vectoriale peste un corp k si aplicat ¸ii liniare) Poset (mult ¸imi part ¸ial ordonate ¸ si funct ¸ii monotone) Orice monoid este o categorie cu un singur obiect, morfismele fiind elementele monoidului. Orice mult ¸ime part ¸ial ordonat˘ a (preordonat˘ a) este o categorie (to be continued...) Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 6 / 36
  11. Categoria asociat˘ a unei mult ¸imi part ¸ial ordonat˘ a

    (X, ≤) Obiecte elementele mult ¸imii X : x, y, . . . Morfisme dac˘ a x ≤ y, atunci x −→ y Morfismul Identitate x −→ x Reflexivitate Compunerea morfismelor x −→ y y −→ z Tranzitivitate x −→ z Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 7 / 36
  12. Categoria asociat˘ a unei mult ¸imi part ¸ial ordonat˘ a

    (X, ≤) Obiecte elementele mult ¸imii X : x, y, . . . Morfisme dac˘ a x ≤ y, atunci x −→ y Morfismul Identitate x −→ x Reflexivitate Compunerea morfismelor x −→ y y −→ z Tranzitivitate x −→ z Exemplu (N, ≤) 0 GG 66 11 ii 1 GG XX ii 2 GG ÖÖ 3 GG ÖÖ . . . Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 7 / 36
  13. Categoria asociat˘ a unei mult ¸imi part ¸ial ordonat˘ a

    (X, ≤) Obiecte elementele mult ¸imii X : x, y, . . . Morfisme dac˘ a x ≤ y, atunci x −→ y Morfismul Identitate x −→ x Reflexivitate Compunerea morfismelor x −→ y y −→ z Tranzitivitate x −→ z Exemplu (N, ≤) 0 GG 66 11 1 GG XX 2 GG 3 GG . . . Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 7 / 36
  14. Categoria asociat˘ a unei mult ¸imi part ¸ial ordonat˘ a

    (X, ≤) Obiecte elementele mult ¸imii X : x, y, . . . Morfisme dac˘ a x ≤ y, atunci x −→ y Morfismul Identitate x −→ x Reflexivitate Compunerea morfismelor x −→ y y −→ z Tranzitivitate x −→ z Exemplu (N, ≤) 0 GG 1 GG 2 GG 3 GG . . . Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 7 / 36
  15. Cuprins 1 Categorii: de ce, cum, unde... 2 Ce este

    o categorie? 3 Construct ¸ii universale ˆ ın categorii 4 Corespondent ¸a Curry-Howard-Lambek Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 7 / 36
  16. Obiect final 1 ˆ ıntr-o categorie C Obiect final 1:

    un obiect cu proprietatea c˘ a pentru orice obiect A exist˘ a un unic morfism A −→ 1 Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 8 / 36
  17. Obiect final 1 ˆ ıntr-o categorie C Obiect final 1:

    un obiect cu proprietatea c˘ a pentru orice obiect A exist˘ a un unic morfism A −→ 1 Exemplu (I) ˆ ın categoria Set obiectul final este o mult ¸ime cu un singur element A ∗ Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 8 / 36
  18. Obiect final 1 ˆ ıntr-o categorie C Obiect final 1:

    un obiect cu proprietatea c˘ a pentru orice obiect A exist˘ a un unic morfism A −→ 1 Exemplu (I) ˆ ın categoria Set obiectul final este o mult ¸ime cu un singur element A ∗ Exemplu (II) ˆ ın categoria asociat˘ a unei mult ¸imi part ¸ial ordonate (X, ≤), obiectul final este cel mai mare element ∀x, x ≤ Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 8 / 36
  19. Produse: propriet˘ at ¸i intrinsece O construct ¸ie matematic˘ a

    fundamental˘ a este Produsul cartezian: A × B = {(x, y) | x ∈ A, y ∈ B} Care este esent ¸a acestei construct ¸ii? Cum poate fi generalizat pentru categorii? Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 9 / 36
  20. Produse: propriet˘ at ¸i intrinsece O construct ¸ie matematic˘ a

    fundamental˘ a este Produsul cartezian: A × B = {(x, y) | x ∈ A, y ∈ B} Care este esent ¸a acestei construct ¸ii? Cum poate fi generalizat pentru categorii? ˆ In Teoria axiomatic˘ a a mult ¸imilor, o pereche ordonat˘ a se define¸ ste prin (x, y) = {{x}, {x, y}} Dar aceasta nu este o definit ¸ie canonic˘ a. Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 9 / 36
  21. Produse: propriet˘ at ¸i intrinsece Propriet˘ at ¸ile esent ¸iale

    ale perechilor ordonate sunt: Fiind dat˘ a o pereche ordonat˘ a (x, y), putem accesa ˆ ın orice moment prima component˘ a x, respectiv a doua component˘ a y a perechii date prin intermediul funct ¸iilor de proiect ¸ie: πA : (x, y) → x ∈ A; πB : (x, y) → y ∈ B Informat ¸iile referitoare la cele dou˘ a componente determin˘ a complet perechea ordonat˘ a: (x1, y1) = (x2, y2) ⇐⇒ x1 = x2 ¸ si y1 = y2 Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 10 / 36
  22. Produsul a dou˘ a obiecte A ¸ si B ˆ

    ıntr-o categorie C Un triplet A A × B πA oo πB GG B este produsul obiectelor A ¸ si B dac˘ a pentru orice pereche de morfisme A C f oo g GG B exist˘ a un unic morfism f , g : C → A × B astfel ˆ ıncˆ at C f ~~ g 33 f ,g  A A × B πA oo πB GG B πA ◦ f , g = f , πB ◦ f , g = g Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 11 / 36
  23. Produse Exemplu (I) ˆ ın categoria Set, produsul mult ¸imilor

    A, B este produsul cartezian A × B, ˆ ımpreun˘ a cu proiect ¸iile pe componente A oo πA A × B πB GG B x (x, y) ← → y Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 12 / 36
  24. Produse Exemplu (I) ˆ ın categoria Set, produsul mult ¸imilor

    A, B este produsul cartezian A × B, ˆ ımpreun˘ a cu proiect ¸iile pe componente C f ÖÖ g $$ A oo πA A × B πB GG B x (x, y) ← → y Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 12 / 36
  25. Produse Exemplu (I) ˆ ın categoria Set, produsul mult ¸imilor

    A, B este produsul cartezian A × B, ˆ ımpreun˘ a cu proiect ¸iile pe componente C f ÖÖ g $$ h  A oo πA A × B πB GG B h(z) = (f (z), g(z)) x (x, y) ← → y Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 12 / 36
  26. Produse Exemplu (I) ˆ ın categoria Set, produsul mult ¸imilor

    A, B este produsul cartezian A × B, ˆ ımpreun˘ a cu proiect ¸iile pe componente C f ÖÖ g $$ h  A oo πA A × B πB GG B h(z) = (f (z), g(z)) x (x, y) ← → y Exemplu (II) ˆ ın categoria asociat˘ a unei mult ¸imi part ¸ial ordonate (X, ≤), produsul elementelor x, y este infimumul acestora inf(x, y) inf(x, y) ≤ x, inf(x, y) ≤ y, z ≤ x z ≤ y z ≤ inf(x, y) Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 12 / 36
  27. Categorie cartezian˘ a Definit ¸ie Categorie cartezian˘ a C: o

    categorie ˆ ınzestrat˘ a cu Obiectul final 1 Produsul oric˘ aror dou˘ a obiecte A, B A A × B πA oo πB GG B Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 13 / 36
  28. Observat ¸ii Produsul ˆ ın categoria Set verific˘ a urm˘

    atoarea proprietate: ∀ f : C × A −→ B curry(f )(z)(x) = f (z, x) ∃ curry(f ) : C −→ (A =⇒ B) Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 14 / 36
  29. Observat ¸ii Produsul ˆ ın categoria Set verific˘ a urm˘

    atoarea proprietate: ∀ f : C × A −→ B curry(f )(z)(x) = f (z, x) ∃ curry(f ) : C −→ (A =⇒ B) Funct ¸iile A → B formeaz˘ a o mult ¸ime A =⇒ B. Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 14 / 36
  30. Observat ¸ii Produsul ˆ ın categoria Set verific˘ a urm˘

    atoarea proprietate: ∀ f : C × A −→ B curry(f )(z)(x) = f (z, x) ∃ curry(f ) : C −→ (A =⇒ B) Funct ¸iile A → B formeaz˘ a o mult ¸ime A =⇒ B. Ce putem face cu funct ¸iile, din punct de vedere operat ¸ional? Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 14 / 36
  31. Observat ¸ii Produsul ˆ ın categoria Set verific˘ a urm˘

    atoarea proprietate: ∀ f : C × A −→ B curry(f )(z)(x) = f (z, x) ∃ curry(f ) : C −→ (A =⇒ B) Funct ¸iile A → B formeaz˘ a o mult ¸ime A =⇒ B. Ce putem face cu funct ¸iile, din punct de vedere operat ¸ional? Fiecare funct ¸ie g : A → B poate fi evaluat˘ a ˆ ıntr-o valoare x din A, rezultˆ and o valoare g(x) din B. evA,B : (A =⇒ B) × A −→ B, (g, x) → g(x) astfel ˆ ıncˆ at evA,B(curry(f )(z), x) = f (z, x) Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 14 / 36
  32. Observat ¸ii Produsul ˆ ın categoria Set verific˘ a urm˘

    atoarea proprietate: ∀ f : C × A −→ B curry(f )(z)(x) = f (z, x) ∃ curry(f ) : C −→ (A =⇒ B) Funct ¸iile A → B formeaz˘ a o mult ¸ime A =⇒ B. Ce putem face cu funct ¸iile, din punct de vedere operat ¸ional? Fiecare funct ¸ie g : A → B poate fi evaluat˘ a ˆ ıntr-o valoare x din A, rezultˆ and o valoare g(x) din B. evA,B : (A =⇒ B) × A −→ B, (g, x) → g(x) astfel ˆ ıncˆ at evA,B(curry(f )(z), x) = f (z, x) Cum generaliz˘ am pentru categorii carteziene arbitrare? Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 14 / 36
  33. Exponent ¸iala a dou˘ a obiecte A ¸ si B

    ˆ ıntr-o categorie cartezian˘ a C O pereche (A =⇒ B, (A =⇒ B) × A evA,B GG B ) este exponent ¸iala obiectelor A ¸ si B dac˘ a pentru orice morfism C × A f GG B exist˘ a un unic morfism curry(f ) : C −→ (A =⇒ B) astfel ˆ ıncˆ at C × A curry(f )×idA  f )) (A =⇒ B) × A evA,B GG B evA,B ◦ (curry(f ) × idA) = f Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 15 / 36
  34. Exponent ¸iale Exemplu (I) ˆ ın categoria Set, exponent ¸iala

    mult ¸imilor A, B este mult ¸imea funct ¸iilor A =⇒ B, ˆ ımpreun˘ a cu funct ¸ia de evaluare. Exemplu (II) o algebr˘ a Boolean˘ a, v˘ azut˘ a ca o mult ¸ime part ¸ial ordonat˘ a, este o categorie cartezian˘ a: produsul a dou˘ a elemente x, y este conjunct ¸ia x ∧ y, ¸ si exponent ¸iala este implicat ¸ia: x ⇒ y = ¬x ∨ y Evaluarea: modus ponens (x ⇒ y) ∧ x ≤ y Proprietatea de universalitate: teorema deduct ¸iei z ∧ x ≤ y z ≤ (x ⇒ y) Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 16 / 36
  35. Categorie cartezian˘ a ˆ ınchis˘ a Definit ¸ie Categorie cartezian˘

    a ˆ ınchis˘ a C: o categorie ˆ ın care exist˘ a Obiectul final 1 Produsul (A × B, πA, πB) oric˘ aror dou˘ a obiecte A, B Exponent ¸iala (A =⇒ B, evA,B) oric˘ aror dou˘ a obiecte A, B Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 17 / 36
  36. Cuprins 1 Categorii: de ce, cum, unde... 2 Ce este

    o categorie? 3 Construct ¸ii universale ˆ ın categorii 4 Corespondent ¸a Curry-Howard-Lambek Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 17 / 36
  37. Corespondent ¸a Curry-Howard-Lambek Programare funct ¸ional˘ a λ-calculus oo Haskell

    B. Curry GG oo William A. Howard GG –– 22 Joachim Lambek Logic˘ a gg ÓÓ Categorii Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 18 / 36
  38. Logica... Logica clasic˘ a se bazeaz˘ a pe not ¸iunea

    de adev˘ ar. Valoarea de adev˘ ar a unei propozit ¸ii este absolut˘ a: adev˘ arat sau fals. Fals = ¬ adev˘ arat. A ∨ ¬A este adev˘ arat˘ a, indiferent de valoarea de adev˘ ar a lui A. Demonstrat ¸iile ce folosesc legea tert ¸ului exclus A ∨ ¬A sau dubla negat ¸ie ¬¬A ⇒ A (prin reducere la absurd) nu sunt constructive. Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 19 / 36
  39. Logica... Logica clasic˘ a se bazeaz˘ a pe not ¸iunea

    de adev˘ ar. Valoarea de adev˘ ar a unei propozit ¸ii este absolut˘ a: adev˘ arat sau fals. Fals = ¬ adev˘ arat. A ∨ ¬A este adev˘ arat˘ a, indiferent de valoarea de adev˘ ar a lui A. Demonstrat ¸iile ce folosesc legea tert ¸ului exclus A ∨ ¬A sau dubla negat ¸ie ¬¬A ⇒ A (prin reducere la absurd) nu sunt constructive. Logica intuit ¸ionistic˘ a se bazeaz˘ a pe not ¸iunea de demonstrat ¸ie. F˘ ar˘ a valoare de adev˘ ar apriori. A este adev˘ arat˘ a dac˘ a putem demonstra A. A este fals˘ a dac˘ a exist˘ a o demonstrat ¸ie care, ponind de la ipoteza A, conduce la o contradict ¸ie. Pentru a demonstra A ∨ ¬A, trebuie s˘ a putem demonstra A sau s˘ a putem demonstra ¬A. Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 19 / 36
  40. Exemplu Exist˘ a x, y numere irat ¸ionale astfel ˆ

    ıncˆ at xy este rat ¸ional. Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 20 / 36
  41. Exemplu Exist˘ a x, y numere irat ¸ionale astfel ˆ

    ıncˆ at xy este rat ¸ional. Demonstrat ¸ie Fie x = y = √ 2. Atunci: √ 2 √ 2 este rat ¸ional, caz ˆ ın care am ˆ ıncheiat demonstrat ¸ia; √ 2 √ 2 este irat ¸ional. Atunci ( √ 2 √ 2 ) √ 2 = ( √ 2)2 = 2 este rat ¸ional. Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 20 / 36
  42. Exemplu Exist˘ a x, y numere irat ¸ionale astfel ˆ

    ıncˆ at xy este rat ¸ional. Demonstrat ¸ie (neconstructiv˘ a) Fie x = y = √ 2. Atunci: √ 2 √ 2 este rat ¸ional, caz ˆ ın care am ˆ ıncheiat demonstrat ¸ia; √ 2 √ 2 este irat ¸ional. Atunci ( √ 2 √ 2 ) √ 2 = ( √ 2)2 = 2 este rat ¸ional. Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 20 / 36
  43. Exemplu Exist˘ a x, y numere irat ¸ionale astfel ˆ

    ıncˆ at xy este rat ¸ional. Demonstrat ¸ie (neconstructiv˘ a) Fie x = y = √ 2. Atunci: √ 2 √ 2 este rat ¸ional, caz ˆ ın care am ˆ ıncheiat demonstrat ¸ia; √ 2 √ 2 este irat ¸ional. Atunci ( √ 2 √ 2 ) √ 2 = ( √ 2)2 = 2 este rat ¸ional. Demonstrat ¸ie constructiv˘ a Fie x = √ 2 ¸ si y = log2 9, amˆ andou˘ a irat ¸ionale. Atunci xy = ( √ 2)log2 9 = √ 9 = 3 este rat ¸ional. Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 20 / 36
  44. Deci... Urm˘ arim s˘ a transform˘ am demonstrat ¸iile ˆ

    ın computat ¸ii. Doar demonstrat ¸iile constructive! Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 21 / 36
  45. Logica intuit ¸ionistic˘ a ( , ∧, ⇒) – reguli

    de inferent ¸˘ a Identitate id Γ, A A Conjunct ¸ie Γ A Γ B ∧-intro Γ A ∧ B Γ A ∧ B ∧-elim Γ A Γ A ∧ B ∧-elim Γ B Implicat ¸ie Γ, A B ⇒-intro Γ A ⇒ B Γ A ⇒ B Γ A ⇒-elim Γ B Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 22 / 36
  46. Corespondent ¸a Curry-Howard-Lambek Programare funct ¸ional˘ a λ-calculus oo Haskell

    B. Curry GG oo William A. Howard GG –– 22 Joachim Lambek Logic˘ a gg ÓÓ Categorii Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 23 / 36
  47. Programarea funct ¸ional˘ a – λ-calculul pur Variabile x, y,

    z, . . . Termeni t = x | t u aplicat ¸ie | λx.t abstract ¸ie α-echivalent ¸˘ a λx.x ≡ λy.y substitut ¸ie (λz.zx)[z/x] ≡ (λy.yx)[z/x] ≡ λy.yz β - reduct ¸ie (conversie) (λx.t)u → t[u/x]: (λx.λz.xz)y → (λx.(λz.(xz)))y → λz.yz Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 24 / 36
  48. λ-calcul pur – probleme Fiecare termen poate fi aplicat oric˘

    arui termen. De exemplu, fie termenii t = λx.xx, u = tt β-reduct ¸ia lui u conduce la exemplul clasic al unui program care nu termin˘ a: u = (λx.xx)t → xx[t/x] = tt = u → u → . . . Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 25 / 36
  49. λ-calcul pur – probleme Fiecare termen poate fi aplicat oric˘

    arui termen. De exemplu, fie termenii t = λx.xx, u = tt β-reduct ¸ia lui u conduce la exemplul clasic al unui program care nu termin˘ a: u = (λx.xx)t → xx[t/x] = tt = u → u → . . . Solut ¸ie: introducerea tipurilor Types are there to stop you doing bad things! Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 25 / 36
  50. λ-calcul cu tipuri Orice variabil˘ a ¸ si orice termen

    are un tip. Tipuri de baz˘ a B = . . . Tipuri T = B | T → T | T × T Termeni t = x | tu | λx.t | t, u | π1t | π2t Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 26 / 36
  51. λ-calcul cu tipuri – reguli Variabile Γ, x : T

    x : T Produs Γ t : T Γ u : U Γ t, u : T × U Γ v : T × U Γ π1 v : T Γ v : T × U Γ π2 v : U Funct ¸ii Γ, x : U t : T Γ λx.t : U → T Γ t : U → T Γ u : U Γ t u : T Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 27 / 36
  52. Logica intuit ¸ionistic˘ a ( , ∧, ⇒) – reguli

    de inferent ¸˘ a Identitate id Γ, A A Conjunct ¸ie Γ A Γ B ∧-intro Γ A ∧ B Γ A ∧ B ∧-elim Γ A Γ A ∧ B ∧-elim Γ B Implicat ¸ie Γ, A B ⇒-intro Γ A ⇒ B Γ A ⇒ B Γ A ⇒-elim Γ B Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 28 / 36
  53. Corespondent ¸a Curry-Howard-Lambek Dac˘ a echival˘ am constructorii ∧ ∼

    = × ⇒ ∼ = → Atunci putem identifica Propozit ¸ii ≡ Tipuri Demonstrat ¸ii ≡ Termeni Transform˘ ari ale demonstrat ¸iilor ≡ Reduct ¸ia termenilor Interpretarea logicii intuit ¸ionistice (Brouwer-Heyting-Kolmogorov): O demonstrat ¸ie a implicat ¸iei A ⇒ B este o procedur˘ a care transform˘ a orice demonstrat ¸ie a lui A ˆ ıntr-o demonstrat ¸ie a lui B. O demonstrat ¸ie a lui A ∧ B este o pereche format˘ a dintr-o demonstrat ¸ie a lui A ¸ si o demonstrat ¸ie a lui B. Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 29 / 36
  54. Corespondent ¸a Curry-Howard-Lambek Dac˘ a echival˘ am constructorii ∧ ∼

    = × ⇒ ∼ = → Atunci putem identifica Propozit ¸ii ≡ Tipuri Demonstrat ¸ii ≡ Termeni Transform˘ ari ale demonstrat ¸iilor ≡ Reduct ¸ia termenilor Interpretarea logicii intuit ¸ionistice (Brouwer-Heyting-Kolmogorov): O demonstrat ¸ie a implicat ¸iei A ⇒ B este o procedur˘ a care transform˘ a orice demonstrat ¸ie a lui A ˆ ıntr-o demonstrat ¸ie a lui B. O demonstrat ¸ie a lui A ∧ B este o pereche format˘ a dintr-o demonstrat ¸ie a lui A ¸ si o demonstrat ¸ie a lui B. Propositions as types Proofs as programs Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 29 / 36
  55. Corespondent ¸a Curry-Howard-Lambek Programare funct ¸ional˘ a λ-calculus oo Haskell

    B. Curry GG oo William A. Howard GG –– 22 Joachim Lambek Logic˘ a gg ÓÓ Categorii Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 30 / 36
  56. Logic˘ a versus categorii Fie C o categorie cartezian˘ a

    ˆ ınchis˘ a. Obiectele le vom interpreta ca Propozit ¸ii. Un morfism f : A → B va corespunde unei demonstrat ¸ii a lui B pornind de la ipoteza A, deci o demonstrat ¸ie pentru A B Mai general, o demonstrat ¸ie pentru A1, . . . , An B este un morfism A1 × . . . × An → B Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 31 / 36
  57. Logic˘ a versus categorii Axioma id Γ, A A π2

    : Γ × A → A Conjunct ¸ia Γ A Γ B ∧-intro Γ A ∧ B f : Γ → A g : Γ → B f , g : Γ → A × B Γ A ∧ B ∧-elim Γ A f : Γ → A × B π1 ◦ f : Γ → A Γ A ∧ B ∧-elim Γ B f : Γ → A × B π2 ◦ f : Γ → B Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 32 / 36
  58. Logic˘ a versus categorii Implicat ¸ia Γ, A B ⇒-intro

    Γ A ⇒ B f : Γ × A → B curry(f ) : Γ → (A ⇒ B) Γ A ⇒ B Γ A ⇒-elim Γ B f : Γ → (A ⇒ B) g : Γ → A evA,B ◦ f , g : Γ → B Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 33 / 36
  59. Concluzii... Categoriile carteziene ˆ ınchise sunt modele ale logicii intuit

    ¸ionistice ( , ∧ ⇒), la nivel de demonstrat ¸ii ¸ si translat ¸ii ale acestora. Orice categorie cartezian˘ a ˆ ınchis˘ a conduce la un λ-calculul simplu tipat, ale c˘ arui tipuri de baz˘ a sunt obiectele, ¸ si ai c˘ arui termeni sunt morfismele categoriei. Orice calcul λ simplu tipat genereaz˘ a o categorie cartezian˘ a ˆ ınchis˘ a, ale c˘ arei obiecte sunt tipurile, ¸ si ale c˘ arei morfisme sunt clasele de echivalent ¸˘ a de termeni. Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 34 / 36
  60. Consecint ¸e... Logic˘ a: demonstrat ¸ii cuantificabile prin computat ¸ii.

    (C. Benzm¨ uller, B. W. Paleo: Automating G¨ odel’s Ontological Proof of God’s Existence with Higher-order Automated Theorem Provers. ECAI 2014: 93-98) Computer Science: asigur˘ a fundamentele program˘ arii funct ¸ionale (type/proof – checking, Haskell, OCAML, etc.) Teoria Categoriilor: λ-calculul ca ”limbaj intern” Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 35 / 36
  61. Va mult ¸umesc pentru audient ¸˘ a!1 1 Referint ¸e

    Dana Scott. Relating theories of the λ-calculus. In: To H.B. Curry: Essays on Combinatory Logic, Lambda-Calculus and Formalism, Academic Press, 403–450, 1980. J. Lambek, P. Scott, Introduction to higher order categorical logic, Cambridge University Press (1986) . Adriana Balan (UPB) Introducere ˆ ın Teoria Categoriilor (II) FP#7 36 / 36