Sustavi dokazivanja Dubrovnik, 28.6.2012.
1 Formalni sistemi sa eksplicitnim strukturalnim pravilima 2 Formalni računi sa eksplicitnom kontrolom resursa Sintaksa Operacionalna semantika Tipski sistemi
Formalni sistemi sa eksplicitnim strukturalnim pravilima ND sa implicitnim str. pravilima (Ax) Γ, A A ( intro ) Γ, A B Γ A B ( elim ) Γ A B Γ B Γ A
Formalni sistemi sa eksplicitnim strukturalnim pravilima LJ sa implicitnim str. pravilima (Ax) Γ, A A ( L ) Γ A Γ, B C Γ, A B C ( R ) Γ, A B Γ A B (Cut) Γ A Γ, A B Γ B
Formalni sistemi sa eksplicitnim strukturalnim pravilima LJ sa eksplicitnim str. pravilima A A (Ax) Γ, A B Γ A B ( R) Γ A, B C Γ,, A B C ( L) Γ A, A B Γ, B (Cut) Γ B Γ, A B (Weak) Γ, A, A B Γ, A B (Cont)
Formalni sistemi sa eksplicitnim strukturalnim pravilima ND sa eksplicitnim str. pravilima A A (Ax) Γ, A B Γ A B ( intro) Γ A A B Γ, B ( elim ) Γ B Γ, A B (Weak) Γ, A, A B Γ, A B (Cont)
Formalni sistemi sa eksplicitnim strukturalnim pravilima Implicitna vs eksplicitna structuralna pravila Implicitna structuralna pravila Eksplicitna structuralna pravila konteksti su skupovi Aksioma: Γ, A A aditivna tj. "context-sharing" pravila konteksti su multiskupovi Aksioma: A A multiplikativna tj. "context-splitting" pravila
cilj? Napraviti formalne račune koji odgovaraju sistemima sa eksplicitnim strukturalnim pravilima, na način na koji λ-račun korespondira sistemu ND. motivacija? teorijska - ostvariti uvid u deo procesa računanja koji se obično implicitno podrazumeva; praktična - kontrolisanje ovog dela procesa računanja omogućava optimizaciju. zašto "kontrola resursa"? Zato što strukturalna pravila vrše kvantitativnu transformaciju konteksta tj. brisanje i dupliranje formula u kontekstu.
Sintaksa λ R -računa Sintaksa pre-termi λ R -računa: Pre-termi f ::= x λx.f ff x f x < x 1 f λx.f je apstrakcija, ff je aplikacija, x f je slabljenje i x < x 1 f je kontrakcija. slobodne promenljive pre-terma f - Fv(f ): Fv(x) = x; Fv(λx.f ) = Fv(f ) \ {x}; Fv(fg) = Fv(f ) Fv(g); Fv(x f ) = {x} Fv(f ); Fv(x < x 1 f ) = {x} Fv(f ) \ {x 1, }. operatori koji vezuju slobodne promenljive se zovu binderi.
Sintaksa Termi su samo oni pre-termi koji zadovoljavaju sledeća dva uslova: u svakom pod-termu, svaka slobodna promenljiva se pojavljuje tačno jednom; svaki binder vezuje tačno jedno pojavljivanje slobodne promenljive. Na primer, pre-termi nisu termi λ R -računa. λx.y, λx.xx, x < y z (xy) Pre-term x λx.x zahvaljujući Barendregtovoj konvenciji jeste λ R -term x λy.y.
Sintaksa Formalna definicija skupa λ R -terma - Λ R : f Λ R x Fv(f ) x Λ x R λx.f Λ R f Λ R g Λ R Fv(f ) Fv(g) = fg Λ R f Λ R x / Fv(f ) f Λ R x 1, x 1, Fv(f ) x / Fv(f ) \ {x 1, } x f Λ R x < x 1 f Λ R Terme obeležavamo sa M, N, P, M,...
Sintaksa Iako neki λ-termi nisu λ R -termi (npr. λx.y, xx,...) svaki λ-term ima sebi odgovarajući λ R -term. Example λ term λ R term λx.y λx.x y λx.xx λx.x < x 1 (x 1 ) vidimo da kontrakcija odgovara dupliranju promenljive, dok slabljenje odgovara brisanju promenljive.
Sintaksa Notacija i konvencije: X M označava x 1... x n M; X < Y Z M označava x 1 < y 1 z 1... x n < yn z n M; ako je X prazna lista, onda X M = X < Y Z M = M; x < x 1 M = x < x 1 M; Domen bindera se proteže na desno koliko je moguće tj. λx.mn = λx.(mn) i x < y z MN = x < y z (MN)
Pravila računanja u λ R -računu Operacionalna semantika β-redukcija - ključni korak u izračunavanju: (β) (λx.m)n M[N/x] supstitucija - implicitna tj. meta-operator: x[n/x] N (λy.m)[n/x] λy.m[n/x], x y (MP)[N/x] M[N/x]P, x Fv(P) (MP)[N/x] MP[N/x], x Fv(M) (y M)[N/x] y M[N/x], x y (x M)[N/x] Fv(N) M (y < y 1 y 2 M)[N/x] y < y 1 y 2 M[N/x], x y (x < x 1 M)[N/x] Fv(N) < Fv(N 1) Fv(N 2 ) M[N 1/x 1, N 2 / ]
Pravila računanja u λ R -računu Operacionalna semantika γ-redukcije - vrše propagaciju kontrakcije što dublje u term: (γ 1 ) x < x 1 (λy.m) λy.x < x 1 (γ 2 ) x < x 1 (MN) (x < x 1 (γ 3 ) x < x 1 (MN) M(x < x 1 M M)N, if x 1, Fv(N) N), if x 1, Fv(M) ω-redukcije - vrše izvlačenje slabljenja na površinu terma: (ω 1 ) λx.(y M) y (λx.m), x y (ω 2 ) (x M)N x (MN) (ω 3 ) M(x N) x (MN) γω-redukcije - interakcija strukturalnih operatora: (γω 1 ) x < x 1 (y M) y (x < x 1 M), y x 1, (γω 2 ) x < x 1 (x 1 M) M[x/ ]
Pravila računanja u λ R -računu Operacionalna semantika ekvivalencije - omogućavaju da se liste promenljivih X, Y, Z tretiraju kao skupovi: (ɛ 1 ) x (y M) y (x M) (ɛ 2 ) x < x 1 M x < x 1 M (ɛ 3 ) x < y z (y < u v M) x <y u (y < z v M) (ɛ 4 ) x < x 1 (y < y 1 y 2 M) y < y 1 y 2 (x < x 1 M), x y 1, y 2, y x 1, α-ekvivalencija - za oba bindera: λx.m α λy.m[y/x] x < y z M α x < y 1 z 1 M[y 1 /y, z 1 /z]
Primer računanja Operacionalna semantika I način: z < z 1 z 2 (λx.x y)(z 1 z 2 ) β z < z 1 z 2 (x y)[z 1 z 2 /x] z < z 1 2 (Fv(z 1 z 2 ) y) = z < z 1 z 2 (z 1 z 2 y) γω2 (z 2 y)[z/z 2 ] z y. II način: z < z 1 z 2 (λx.x y)(z 1 z 2 ) γ3 (λx.x y)z < z 1 z 2 z 1 z 2 β (x y)[z < z 1 z 2 z 1 z 2 /x] Fv(z < z 1 z 2 z 1 z 2 ) y = z y. Dok u λ-računu: (λx.y)(zz) β y[zz/x] y.
Normalne forme Operacionalna semantika Računanje se vrši do dovodjenja terma u normalnu formu. λ R -račun zadovoljava osobinu konfluentnosti, iskazanu sledećim dijagramom: M M 1 M 2 Posledica: svaki λ R -term ima najviše jednu normalnu formu. Ako svi nizovi redukcija dovode do normalne forme, term ima osobinu jake normalizacije. M
Operacionalna semantika Skup normalnih formi je odredjen sledećom apstraktnom sintaksom: M nf ::= x λx.m nf λx.x M nf xmnf 1... Mn nf x < x 1 M nf N nf, if x 1 Fv(M nf ), Fv(N nf ) W nf ::= x M nf x W nf neophodno je razdvojiti kategoriju W nf zato što term λx.y M nf nije normalna forma λx.y M nf ω1 y λx.m nf.
Tipski sistemi Tipovi Tipovi su sintaksni objekti koji se dodeljuju termima. Intuitivno, mogu se posmatrati kao domen funkcije koju term reprezentuje. Možemo posmatrati term kao program, a njemu odgovarajući tip kao specifikaciju programa. Postoje mnogi tipski sistemi za λ-račun; u λ R -računu: osnovni tipski sistem tj. obični tipovi; tipovi sa presekom.
Tipski sistemi Obični tipovi Obični tipovi su definisani sledećom apstraktnom sintaksom tipovi α ::= p α α Osnovna dodela tipa je izraz x : α; baza (ili kontekst) Γ je skup {x 1 : α 1,..., x n : α n } osnovnih dodela tipa, u kome su sve promenljive različite; domen baze je skup promenljivih Dom(Γ) = {x 1,..., x n }; proširenje baze Γ, x : α označava skup Γ {x : α}, pri čemu x Dom(Γ). Γ, je disjunktna unija dve baze.
Tipski sistem λ R Tipski sistemi x :α x :α (Ax) Γ, x :α M :β Γ λx.m :α β ( I) Γ M :α β N :α Γ, MN :β ( E ) Γ, x :α, y :α M :β Γ, z :α z < x y M :β (Cont) Γ M :α Γ, x :β x M :α (Weak)
Tipski sistem λ R Tipski sistemi x :α x :α (Ax) Γ, x :α M :β Γ λx.m :α β ( I) Γ M :α β N :α Γ, MN :β ( E ) Γ, x :α, y :α M :β Γ, z :α z < x y M :β (Cont) Γ M :α Γ, x :β x M :α (Weak)
Tipski sistemi Osobine sistema λ R Proširenje CH korespondencije: λ R -račun sa tipovima odgovara sistemu ND sa eksplicitnim strukturalnim pravilima. Theorem Neka Γ M : α. Tada x Dom(Γ) ako i samo ako x Fv(M). Theorem Neka Γ M : α i M M ili M M. Tada Γ M : α. Theorem Ako term M ima tip u sistemu λ R, onda zadovoljava osobinu jake normalizacije.
Tipski sistemi Osobine koje λ R NE zadovoljava...... a bilo bi dobro da ih račun ima Neka Γ M : α i M M ili M M. Tada Γ M : α. Ako term M zadovoljava osobinu jake normalizacije, onda ima tip u sistemu λ R. Example Na primer, term z < z 1 z 2 (λx.x y)(z 1 z 2 ) z y. Važi z : α, y : β z y : β, ali termu z < z 1 z 2 (λx.x y)(z 1 z 2 ) se ne može dodeliti tip u sistemu λ R. ovo su standardne "boljke" osnovnih tipskih sistema formalnih računa, rešenje je u uvodjenju tipova sa presekom.
Tipski sistem λ R Tipski sistemi... je veoma zanimljiv, ali o njemu sledeći put!
Tipski sistemi Sistem λ R x : σ x : σ (Ax) Γ, x : α M : σ Γ λx.m : α σ ( I) Γ M : n i=1 τ i σ 0 N : τ 0... n N : τ n Γ, 0 1... n MN : σ ( E ) Γ, x : α, y : β M : σ Γ, z : α β z < x y M : σ (Cont) Γ M : σ Γ, x : x M : σ (Weak) Theorem (Ghilezan et al. (2011)) λ R -term ima osobinu jake normalizacije ako i samo ako ima tip u sistemu λ R.
Šta smo uradili Tipski sistemi Uveli tipove sa presekom u λ R i dokazali da u sistemu λ R važi da: Term ima tip ako i samo ako ima osobinu jake normalizacije. Napravili sekventni lambda račun sa kontrolom resursa λ Gtz R koji u osnovnom tipskom sistemu odgovara sistemu LJ sa eksplicitnim strukturalnim pravilima. Uveli tipove sa presekom u λ Gtz R i u λ-račun sa eksplicitnom supstitucijom i kontrolom resursa λ x R i pokazali da i ovi sistemi karakterišu osobinu jake normalizacije.
Reference Tipski sistemi S. Ghilezan, J. Ivetić, P. Lescanne, D. Žunić: Intuitionistic sequent-style calculus with explicit structural rules. Tbilisi 2009-8th International Symposium on Language, Logic and Computation, Lecture Notes in Artificial Intelligence 6618: 101-124 (2011). S. Ghilezan, J. Ivetić, P. Lescanne, S. Likavec: Intersection Types for the Resource Control Lambda Calculi. ICTAC 2011-8th International Colloquium on Theoretical Aspects of Computing, Lecture Notes in Computer Science 6916: 116-134 (2011). S. Ghilezan, J. Ivetić, P. Lescanne, S. Likavec: Intersection types for explicit substitution with resource control. ITRS 2012 - Sixth Workshop on Intersection Types and Related Systems (ovde, sutra).
Tipski sistemi Mogući nastavci istraživanja Računarske interpretacije substrukturalnih logika, polazeći od λ R -računa umesto od linearne logike; rekonstrukcija tipova; implementacija.