Professional Documents
Culture Documents
Kultura komunikacije
Februar 2014.
Size
Ovaj tekst je plod saradnje profesora, asistenta i grupe studenata koji su po-
hadali kurs iz predmeta Kultura komunikacije na Odseku za informatiku, Ma-
tematickog fakulteta u Beogradu tokom jesenjeg semestra 2013. Svake nedelje
od kraja septembra pa do kraja decembra 2013. je odrzan jedan blok od dva
casa predavanja. Prva i druga nedelja su bile posvecene Halmosevim tekstovima
[?] i [?]. Posle tih uvodnih casova sledila su predavanja koja su se odnosila na
elementarne pojmove iz teorije kategorija i srodnih oblasti. Svaki polaznik kursa
imao je zadatak da prikuplja beleske sa jednog predavanja i da ih pretoci u jedan
odeljak ovog teksta. Dogovor je bio da se predavac drzi Halmosevih saveta kako
treba predavati matematiku a da onaj koji sakuplja beleske, organizuje tekst,
koliko god je to moguce, po ugledu na Halmoseve sugestije kako treba pisati
knjigu iz matematike.
Zahvalnica
Zahvaljujem se profesoru Kosti Dosenu na sugestijama kako da zapocnemo ovaj
kurs.
U Beogradu, Zoran Petric
zpetric@mi.sanu.ac.rs
v
SADR
ZAJ
Size ??
Odeljak 1. Uvod ??
1.1. O autorima ??
1.2. Osnovni pojmovi i notacija ??
Odeljak 2. Smalijanovi zadaci ??
2.1. Biograja Rejmonda Smalijana ??
2.2. Kratak istorijat ??
2.3. Logicki problemi ??
2.4. Program ??
2.5. Dogovori o brisanju zagrada ??
2.6. Kombinator B i njegovi derivati ??
2.7. Dupliranje i permutovanje ??
2.8. Asociranje i dupliranje zajedno ??
2.9. Razlicite baze programa ??
Odeljak 3. Fiksna tacka ??
3.1. Kombinatorni programi ??
3.2. Jos o programu ??
3.3. Tjuringov program ??
3.4. Program O ??
Odeljak 4. Kombinatorna logika ??
4.1.
Cista kombinatorna logika ??
4.2. Apstrakcija ??
4.3. Teorema o ksnoj tacki ??
Odeljak 5. Iskazna logika i aritmetika ??
5.1. Iskazna logika ??
5.2. Aritmetika u kombinatornoj logici ??
5.3. Rekurzivne funkcije ??
Odeljak 6. Konuencija i -racun ??
6.1. Konuencija za CL ??
6.2. -racun ??
6.3. Konuencija za -racun ??
Odeljak 7. Prosti tipovi ??
7.1. -racun s tipovima ??
vii
viii Sadrzaj
7.2. CL s tipovima ??
Odeljak 8. Uvod u Haskel ??
8.1. Funkcionalno programiranje ??
8.2. Haskel ??
8.3. Izvodenje aritmetickih operacija ??
8.4. Liste ??
8.5. Funkcije viseg reda ??
Odeljak 9. Neodlucivost ??
9.1. Gedelovo kodiranje ??
9.2. Dokaz neodlucivosti za CL ??
Bibliograja ??
Indeks ??
1. Uvod
1.1. O autorima
Marko Adam, roden 20.11.1993. u Kninu u Hrvatskoj.
Obrazovanje:
O
S ,,Aleksa
Santic, Kaluderica, Beograd;
Osma beogradska gimnazija, prirodno-matematicki smer, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Zanimam se racunarima od svoje 8. godine. U pocetku samo kako masinom za
video igre i zabavu, a tokom godina sam se vise i vise poceo baviti i programi-
ranjem.
Citanje mi je hobi. Ljudi tvrde da sam duhovit.
e-mail: adamarko@gmail.com
Nikola Ajzenhamer, roden 12.6.1994. u Beogradu.
Obrazovanje:
Osnovna skola Zaga Malivuk, Beograd;
Prva beogradska gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Ja sam komunikativan i druzeljubiv. Volim da slusam i izucavam muziku, sviram
klavir, pisem knjige i izlazim sa svojim najboljim prijateljima.
Zelja mi je oduvek
bila da se profesionalno bavim racunarstvom i informatikom, pa sam se zato i
odlucio za ovaj smer/fakultet.
e-mail: n.ajzenham@yahoo.com
Dusan Badza, roden 31.12.1994. godine u Beogradu.
Obrazovanje:
Osnovna skola ,,20. oktobar, Beograd;
Prva beogradska gimnazija, Beograd;
Matematicki fakultet univerziteta u Beogradu, smer Informatika.
Jos od malena su me zanimali kompjuteri i sport, narocito fudbal koji sam
trenirao punih 9 godina. Veoma sam komunikativna i druzeljubiva osoba. Slo-
bodno vreme provodim sa drustvom, igram igrice, sviram gitaru ili popravljam
drugovima i drugaricama kompjutere.
e-mail: dusan.badza@yahoo.com
1
2 ODELjAK 1. UVOD
Tamara Baralic, rodena 29.12.1993. u Gornjem Milanovcu.
Obrazovanje:
Osnovna skola Desanka Maksimovic, Gornji Milanovac;
Gimnazija Takovski ustanak, Gornji Milanovac;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Komunikativna, druzeljubiva, ambiciozna i uporna osoba. Volim sport, puto-
vanja, jezike, dobro pivo u dobrom drustvu. Imam sirok spektar interesovanja.
e-mail: tammarra6@gmail.com
Andrej Besti c, roden
e-mail: mi11187@alas.matf.bg.ac.rs
Nikola Blagojevic, roden 4.12.1993. u Peci.
Obrazovanje:
Osnovna skola Despot Stefan Lazarevic, Beograd
Sabacka gimnazija,
Sabac;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Vrlo sam komunikativna, ozbiljna i odgvorna. Stalno sam okruzena pozitivnim
ljudima i zivot ne bih mogla da zamislim bez svojih mnogobrojnih prijatelja i
porodice. Volim da putujem i uzivam u sitnicama. Oduvek sam umela dobro
da se organizujem i ne volim kada vreme ne koristim produktivno.
e-mail: mi12085@alas.matf.bg.ac.rs
6 ODELjAK 1. UVOD
Anamarija Krstic, rodena 05.03.1994. u Beogradu.
Obrazovanje:
Osnovna skola Majka Jugovica, Zemun;
Prva Beogradska Gimnazija, prirodno matematicki smer, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
U slobodno vreme igram igrice i jedem i odlazem ucenje analize. Citat koji bi
me najbolje opisao je:Gi me mana.
e-mail: ana4991@gmail.com
Mladen Lazic, roden 05.01.1993. u Bijeljini.
Obrazovanje:
Osnovna skola Aleksa
Santic, Ugljevik;
Srednja Tehnicka skola Mihailo Petrovic Alas smer elektrotehnicar racunara,
Ugljevik;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Ono cime bih voleo u zivotu da se bavim jeste programiranje. Inace hobi su mi
automobili. Kao mali igrao sam se sa automobilima i video igricama.
e-mail: blackmaster 1993@hotmail.com
Nenad Lazic, roden 13.02.1993. u Loznici.
Obrazovanje:
Osnovna skola Dositej Obradovic, Ljubovija;
Srednja skola Tehnicka skola smer elektrotehnicar racunara, Valjevo;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Ono sto me najvise interesuje jeste pre svega programiranje i digitalna elektron-
ika.
Zelim da steknem sto vise znanja u ovoj oblasti i zbog toga sam i upisao
Matematicki fakultet Univerziteta u Beogradu. Hobi su mi sport i automobili.
e-mail: nenadlazic13@gmail.com
Anda Lilic, rodena 11.9.1993. u Zajecaru.
Obrazovanje:
Osnovna skola - Dura Jaksic, Zajecar;
Gumnazija u Zajecaru, smer informaticki;
Matematicki fakultet Univerziteta u Beogradu, smer Astronomija i astrozika,
odsek astroinformatika.
Veoma sam komunikativna, volim da izlazim i slusam muziku. Programiranjem
sam pocela da se bavim u srednoj skoli i izgledalo je vrlo interesantno, pa sam
1.1. O autorima 7
odlucila da nastavim time da se bavim.
e-mail:andjica93@gmail.com
Darko Losic, roden 18.09.1993. u Beogradu Obrazovanje:
Osnovna skola Rade Koncar u Beogradu
Elektrotehnicka skola Nikola Tesla
Matematicki fakultet Univerziteta u Beogradu, smer Informatika
Racunarstvo i informatika je oblast koja me interesuje jos od osnovne skole.
Volim biciklizam, drustvene mreze, muziku i lmove.
e-mail: mi12192@alas.matf.bg.ac.rs
Darja Lovrenski, rodena 17.1.1992. u Beogradu.
Obrazovanje:
Osnovna skola Josif Pancic u Beogradu;
Srednja skola ET
Matematicki fakultet sam upisao zato sto me zanima programiranje i zeleo bih
time da se bavim.U slobodno vreme volim da vezbam u parku,vozim bicikl,
gledam lmove, sportske utakmice i volim da slusam muziku.
e-mail: stikona1@gmail.com
Nikola Maric, roden 20.10.1993. u Uzicu.
Obrazovanje:
Osnovna skola Aleksa Dejovic, Sevojno.
Uzicka gimnazija, prirodno-matematicki smer, Uzice.
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Volim sportove, pogotovu plivanje za koje zbog obaveza prema fakultetu nemam
puno vremena. Veseo sam, volim da se druzim, izlazim. Kazu da sam bekrija,
doduse rado posecujem kafane i klubove.
e-mail: vrhstra@gmail.com
Marko Micic, roden 20.9.1993. u Uzicu.
Obrazovanje:
Osnovna skola Andrija Durovic, Uzice;
Tehnicka skola, Uzice;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Zanima me programiranje i razvoj programa, u slobodno vreme gledam lmove
i slusam muziku.
e-mail:marko93ue@gmail.com
1.1. O autorima 9
Iva Milic, rodena 19.5.1993. u Beogradu.
Obrazovanje:
Osnovna skola Zaga Malivuk, Beograd;
Peta beogradska gimnazija, smer prirodno-matematicki, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Astronomija i astrozika,
odsek astroinformatika.
Uglavnom pozitivna, i zeljna timskog rada. Volim muziku, pesmu, igru, druzenje,
putovanja i jos mnogo toga, tako da je jedna od stvari bez koje ne bih mogla da
zamislim svoj zivot folklor.
e-mail: ai12310@alas.matf.bg.ac.rs
Aleksandar Milosavljevic, roden 3.2.1993. u Beogradu.
Obrazovanje:
Osnovna skola Jovan Jovanovic Zmaj, Obrenovac;
Elektrotehnicka skola Nikola Tesla, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Filmol, zaljubljenik u gitare i kompjutere. Najcesce sarkatsican, cinican i
neprijatan. U slobodno vreme pisem kratke satiricne price.
e-mail: lordcojs@gmail.com
Jana Milutinovic, rodena 29.06.1993. u Krusevcu.
Obrazovanje:
Osnovna skola Nada Popovic, Krusevac.
Osnovna muzicka skola Stevan Hristic , Krusevac.
Krusevacka gimnazija, prirodno-matematicki smer, Krusevac.
Matematicki fakultet Univerziteta u Beogradu, smer Inforamtika.
Treniram odbojku i clan sam tima Matematickog fakulteta. Generalno volim
sportove. Uzivam u skijanju i planinarenju. Vesela sam, brzopleta, tvrdoglava,
cesto puna energije. Volim zivotinje, knjige, kafane.
e-mail: janamilutinovic@yahoo.com
Srdan Miljevic, roden 30.9.1988. u Beogradu.
Obrazovanje:
Osnovna skola Jelena
Cetkovic, Beograd;
Cacanska gimnazija,
Cacak;
Matematicki fakultet univerziteta u Beogradu, smer Informatika.
Volim da izlazim, da se druzim sa ljudima i da ucestvujem u drustvenim desavanjima.
16 ODELjAK 1. UVOD
Ovaj smer sam upisala jer volim da programiram i razmisljam o nacinu resavanja
nekog problema. Programiranje je pocelo da me interesuje u trecoj godini sred-
nje skole. Takode sam ucestvovala na republickom takmicenju iz programiranja.
e-mail: kacasmiljanic3@gmail.com
Nikola Spasojevic, roden 26.4.1993. u Beogradu.
Obrazovanje:
Osnovna skola - Dura Jaksic, Beograd;
Bxyz = BCBxyz.
Dakle, Q
1
mozemo da denisemo kao BCB.
3. Program Q
2
je jos jedan iz ove familije. On zadovoljava sledeci uslov:
Q
2
xyz = y(zx).
Mozemo napisati da je
y(zx) = Byzx = R
Bxyz,
odatle sledi da je
Q
2
= R
B = BC(BC)B = C(BCB).
4. Pretpostavimo da u svetu programa imamo kombinator C, ali nemamo
kombinatore B i T. Pokazimo da ukoliko postoji kombinator Q
1
onda
postoji i Q
2
i obrnuto.
Resenje:
Ako pretpostavimo da u svetu postoji kombinator C i:
(a) ako postoji kombinator Q
1
, tada CQ
1
radi isto sto i kombinator Q
2
:
CQ
1
xyz = Q
1
yxz = y(zx).
(b) ako postoji kombinator Q
2
, tada CQ
2
radi isto sto i kombinator Q
1
:
CQ
2
xyz = Q
2
yxz = x(zy).
42 ODELjAK 2. SMALIJANOVI ZADACI
5. Kombinator Q
3
je sledeci iz ove familije. On zadovoljava sledeci uslov:
Q
3
xyz = z(xy).
Lako je pokazati da je Q
3
derivat kombinatora B i T
z(xy) = T(xy)z = BTxyz.
Dakle, mozemo ga denisati kao BT, ali ako iskoristimo:
z(xy) = Bzxy = V
Bxyz,
onda ga mozemo denisati i kao V
B.
6. Kombinator Q
4
je poslednji iz ove familije kojeg cemo spomenuti. On
zadovoljava sledeci uslov:
Q
4
xyz = z(yx).
Ukoliko hocemo da ga dobijem kao derivat kombinatora Bi Tiskoristicemo:
z(yx) = Bzyx = F
Bxyz,
pa ga mozemo denisati kao F
B.
7. Ukoliko u svetu programa postoji kombinator C, tada ne mozemo imati
kombinator Q
3
ako nemamo kombinatora Q
4
i obrnuto.
Resenje:
Ako pretpostavimo da kombinator C postoji i:
(a) ako je kombinator Q
3
postoji, tada CQ
3
ima svojstva kobinatora Q
4
:
CQ
3
xyz = Q
3
yxz = z(yx).
(b) ako je kombinator Q
4
postoji, tada CQ
4
ima svojstva kobinatora Q
3
:
CQ
4
xyz = Q
4
yxz = z(xy).
8. Da li se kombinator Q
4
moze zapisati pomocu kombinatora Q
1
i T?
Resenje:
Da, moguce je jer imamo
Q
1
Txyz = T(yx)z = z(yx).
Dakle, Q
4
mozemo zapisati kao Q
1
T.
9. Kombinator B se moze zapisati pomocu kombinatora Q i T.
Resenje:
x(yz) = Qyxz = Tx(Qy)z = QQ(Tx)yz = QT(QQ)xyz,
pa se B moze zapisati kao QT(QQ).
10. Na slican nacin mozemo izvesti da je kombinator C derivat kombinatora
Q i T.
Resenje:
xzy = (xz)y = Ty(xz) = Qx(Ty)z = QT(Qx)yz = QQ(QT)xyz,
odakle je
C = QQ(QT).
11. Pokazati da je kombinator G koji zadovoljava sledeci uslov:
Gxyzw = xw(yz),
jos jedan derivat kombinatora B i C.
Resenje:
xw(yz) = Cx(yz)w = B(Cx)yzw = BBCxyzw,
odakle je jasno da je G moguce denisati kao BBC.
2.9. Razlicite baze programa
Milos Mitrovic
Znamo da se ni program M, kao ni bilo koji duplikativni program, ne moze
dobiti uz pomoc programa B i T, tacnije programi B, T i M su nezavisni.
Hocemo da pokazemo da uz pomoc baze B, T, M mozemo izraziti razne druge,
bitne programe.
1. Dokazati da se program L moze izraziti uz pomoc programa B, C i M.
Resenje:
Ako krenemo postupkom unazad, odnosno od Lxy = x(yy), mozemo da
primetimo da je x(yy) = x(Mx), a zatim x(Mx) = BxMy i konacno
BxMy = CBMxy. Odavde vidimo da je L = CBM.
43
44 ODELjAK 2. SMALIJANOVI ZADACI
Dokazati da se program L moze izraziti uz pomoc programa B, R i M.
Resenje:
Istim postupkom i koristeci dokazanu jednakost x(yy) = BxMy, mozemo
da primetimo BxMy = RMBxy. Time smo dokazali da je L = RMB.
Dokazati da se program L moze izraziti uz pomoc programa B, T i M.
Resenje:
Koristeci jednakost R = BBT na osnovu prethodnog primera vidimo da
je L = BBTMB, odnosno, ako primenimo prvi operator B, dobijamo
L = B(TM)B.
2. Dokazati da ako postoje programi B i W, mora postojati i program L.
Resenje:
Postupkom unazad polazimo od x(yy). Mozemo da primetimo da je
x(yy) = Bxyy, zatim da je Bxyy = W(Bx)y, i konacno W(Bx)y =
BWBxy. Ovim smo dokazali da je L = BWB.
3. Dokazati da ako postoje programi M i Q, mora postojati i program L.
Resenje:
Istim postupkom, polazimo od x(yy). Vec znamo da je x(yy) = x(My)
a mozemo da primetimo da je x(My) = QMx. Odavde vidimo da je
L = QM.
4. Pokazati se program W
= BMR, odnosno
kada zamenimo R dobijamo W
= BM(BBT).
5. Dokazati da se uz pomoc programa R, M, Bi Cmoze izraziti programW.
2.9. Razlicite baze programa 45
Resenje:
Postupkom unazad polazimo od Wxy = xyy. Koristeci pomocni program
W
yx, a zatim da je W
yx =
CW
. Koristeci jednakost
Cx = B(Tx)R kada x zamenimo sa W
dobijamo Cx = B(TW
)R. Iz
prethodnih primera znamo da je W
= BM(BBT) i da je R = BBT,
tako da zakljucujemo W = B(T(BM(BBT)))(BBT).
7. Dokazati da se program M moze izraziti uz pomoc baze B, T i W.
Resenje:
Postupkom unazad polazimo od M = xx. Mozemo da primetimo da
je xx = Txx, a zatim da je Txx = WTx. Ovim smo dokazali da je
M = WT.
Na osnovu ovoga mozemo da zakljucimo da se klase programa koje se
mogu dobiti uz pomoc baze B, T i W i baze B, T i M poklapaju.
Bojana Simic
Kako bismo lakse resavali zadatke koristicemo programe W
i W
. Oni imaju
istu funkciju kao i W, da udvostruce krajnji argument. Jedina razlika je u tome
sto imaju vise argumenata. Za W
vazi W
xyz = xyzz, a W
xyzw = xyzww.
Neka je program H takav da za sve programe x, y i z vazi da je Hxyz = xyzy.
8. Dokazati da se program H moze izraziti uz pomoc programa B, W i C.
Resenje:
Za pocetak krenucemo od xyzy. Primetimo da je bas xyzy = C
xyyz
(podsetnik: C radi tako sto menja mesta poslednja dva argumenta a C
ima istu funkciju samo sto koristi cetiri argumenta). Kako bismo ud-
vostrucili y, koristicemo W
xyyz = W
= BW i C
= BC, pa
cemo to primeniti u nasem dokazu. Dakle, H = BW(BC).
9. Treba pokazati da se Wmoze izraziti pomocu baze H, C, odnosno pomocu
baze H, R.
46 ODELjAK 2. SMALIJANOVI ZADACI
Resenje:
Kako bismo ovo lakse pokazali, koristicemo W
xy = yxx. Postupkom
unazad yxx = Rxyx = HRxy, pa je W
= HR. Kako je W = CW
,
dobijamo da je W = C(HR). Slicno, W = RW
R, tako da je W =
R(HR)R.
Od sad pa nadalje, pored vec poznatih programa, koristicemo i novi pro-
gram S. Program S je takav da za x, y i z vazi da je Sxyz = xz(yz).
10. Treba dokazati da S mozemo izraziti pomocu baze B, M, T kao i pomocu
baze B, C, W.
Resenje:
Dokaz da se S moze dobiti pomocu ovih baza je jako slozen i zahteva
upotrebu sedam slova. Pokazacemo ovo za bazu B, C, W koristeci sest
slova pomocu programa G. Dakle, krecemo od xzyz i pomocu Gdobijamo
da je xzyz = Gxyzz. Primetimo da je z udvostruceno, pa treba primeniti
W. Imamo cetiri argumenta G, x, y, z pa koristimo W
i dobijamo da
je Gxyzz = W
Gxyz. Kako je W
CKA
Resenje:
Koristimo cinjenicu da x voli Lx(Lx), i zato x voli M(Lx). Sada imamo
da je
M(Lx) = QLMx,
pa x voli QLMx, sto znaci da mozemo denisati kao QLM. Po trecem
zadatku iz odeljka 2.9 imamo da se L moze denisati kao QMpa dobijamo
izraz Q(QM)M koji denise kombinator .
5. Pokazati da program moze biti izveden iz programa S i L.
Resenje:
Posto je Lx(Lx) = SLLx, to mozemo denisati kao SLL.
6. Pokazati da program moze biti izveden iz programa B, W i S.
Resenje:
Pokazali smo da SLL denise program . Takode vazi SLL = WSL,
pa i WSL denise . Po drugom zadatku iz odeljka 2.9 imamo da se L
moze denisati kao BWB, odakle dobijamo da se moze denisati kao
WS(BWB).
3.3. Tjuringov program
Nikola Gujanicic
Uvodimo novi program U koji cemo zvati Tjuringov program i koji za sve pro-
grame x i y zadovoljava
Uxy = y(xxy).
7. Dokazati da ako postoje programi B, M i T, onda mora da postoji i
program U.
Resenje:
Posto postoje programi B, M i T, onda po rezultatima iz odeljka 2.9
postoje i programi W, L i Q. Kako je
y(xxy) = Q(xx)yy = LQxyy = W(LQx)y = BW(LQ)xy,
mozemo uzeti da je BW(LQ) trazeni program U.
8. Dokazati da je sam U dovoljan da se izvede mudrac .
Resenje:
Za sve x i y vazi Uyx = x(yyx). Ako zamenimo y sa U dobijamo UUx =
x(UUx). Dakle, mozemo denisati kao UU.
3.4. Program O 51
Neki otvoreni problemi: Videli smo da se kombinator , koji nije
pravi, moze izvesti iz samo jednog pravog kombinatoraTjuringovog pro-
grama U. Znamo da U nije regularan. Pitanje je da li se moze izvesti
iz samo jednog regularnog kombinatora? Da li se moze izvesti iz B i
jos samo jednog regularnog kombinatora?
3.4. Program O
Program O je novi pravi kombinator koji zadovoljava za sve x i y
Oxy = y(xy).
9. Potrebno je pokazati da program O moze biti izveden iz B, C i W.
Tacnije, dovoljno je da postoje Q i W.
Resenje:
Prvi deo mozemo pokazati na sledeci nacin:
y(xy) = Bxyy = CBxyy = W(CBx)y = BW(CB)xy,
pa O mozemo denisati kao BW(CB). Za drugi deo posmatrajmo
y(xy) = Qxyy = W(Qx)y = QQWxy,
pa O mozemo denisati kao QQW.
10. Potrebno je pokazati da ako program x voli program y, tada x voli i
program xy.
Resenje:
Pretpostavimo da x voli y. Tada je xy = y. Posto x voli y i y = xy, onda
je x(xy) = xy = y sto znaci da x voli xy.
11. Zanimljiva cinjenica o programu O je ta da ako primenimo program O na
program, dobijamo mudraca ali to jos ne mora da znaci da je on isto sto i
program . Drugim recima, za bilo koji program x vazi x(Ox) = Ox.
Dokazimo ovo.
Resenje:
Posto je mudrac, to za bilo koji program x vazi da x voli x. Po
prethodnom zadatku imamo da onda x voli i x(x). Posto je x(x) =
Ox dobili smo da je x(Ox) = Ox.
12. Podjednako interesantna cinjenica je da program O voli samo mudrace.
Drugim recima, za bilo koji program A, ako je OA = A, onda A mora biti
neki mudrac. Dokazati.
52 ODELjAK 4. KOMBINATORNA LOGIKA
Resenje:
Pretpostavimo da je OA = A. Tada za bilo koji program x vazi
Ax = OAx = x(Ax),
pa je A mudrac.
4. Kombinatorna logika
4.1.
Cista kombinatorna logika
Aleksandra - Duric i Ana - Dordevic
Matematicki cemo formalizovati pravila koja smo dosad primenjivali. Uvescemo
cistu kombinatornu logiku CL (na engleskom Combinatory Logic). Postoje ra-
zliciti nacini zadavanja a mi je uvodimo kao jednakosni racun. Pocinjemo od
alfabeta koji se sastoji od:
Konstanti: K, S
Promenljivih: x, y, z . . .
Zagrada: ( , )
Simbola jednakosti: =
Da bismo formulisali jezik induktivno cemo uvesti terme jezika:
1. Konstante i promenljive su CL-termi
2. Ako su reci X i Y nad ovim alfabetom CL-termi, onda je i rec (XY )
takode CL-term.
3. Nista vise nije CL-term.
Za oznacavanje CL-terama najcesce koristimo simbole X, Y , Z . . . i zadrzavamo
pravila brisanja zagrada uvedena u odeljku 2.5. Kombinator je CL-term bez
promenljivih.
Formule kojima se bavimo u kombinatornoj logici su oblika X = Y , gde su
X i Y neki CL-termi. Racun je zadat sledecim aksiomama
X = X, KXY = X, SXY Z = XZ(Y Z)
i pravilima izvodenja
X = Y
Y = X
X = Y Y = Z
X = Z
X = Y
XZ = Y Z
X = Y
ZX = ZY
Kombinator I nije primitivan u jeziku vec ga denisemo kao I =
df
SKK i
nadalje ga koristimo kao da nam je dat u alfabetu.
53
54 ODELjAK 4. KOMBINATORNA LOGIKA
4.2. Apstrakcija
Apstrakcija je operacija koju mozemo primeniti nad termima kombinatorne
logike i koja nam mehanicki izvodi sve ostale prave kombinatore preko kom-
binatora S i K. Ona je unarna operacija, sto znaci da radi na jednom termu.
Ukoliko zelimo apsrakciju svih promenljivih, operaciju moramo primeniti ono-
liko puta koliko imamo razlicitih promenljivih.
Za promenljivu i term X, induktivno cemo uvesti term [].X u kome se
ne pojavljuje i za koji cemo pokazati da vazi ([].X) = X:
(p1) []. =
df
I,
(p2) [].X =
df
KX, ako se ne pojavljuje u X,
(p3) [].Y =
df
Y , ako se ne pojavljuje u Y ,
(p4) [].Y Z =
df
S([].Y )([].Z), ako se ni (p2) ni (p3) ne moze primeniti.
Teorema 4.2.1. Za svaku promenljivu i svaki CL-term X vazi:
([].X) = X.
dokaz. Indukcijom po slozenosti X.
(baza indukcije) Ako je X bas promenljiva , onda je [].X = I pa je
([].X) = I = = X.
Ako je X atom ali nije , onda je [].X = KX, pa je
([].X) = KX = X.
(induktivni korak) Neka je X oblika Y Z. Ako se ne pojavljuje u Y i Z,
onda postupamo kao u drugom slucaju baze indukcije.
Ako je Z isto sto i i se ne pojavljuje u Y , onda je [].Y Z = Y , pa je
([].X) = Y = Y Z = X.
Ako se na [].X ne mogu primeniti ni (p2) ni (p3), onda je [].Y Z =
S([].Y )([].Z), pa je
([].X) = S([].Y )([].Z) = ([].Y )(([].Z))
i.h.
= Y Z = X.
A
.
Posto je u kombinatornoj logici moguce denisati kombinatore B i M, to je
tacno da svaki CL-term X voli bar jedan CL-term Y , to jest vazi
XY = Y.
. Dakle, A
= [xx
1
x
2
...x
n
].Z.
Zatim cemo pokazati da je A = UUA
x
1
. . . x
n
,
= A
Ax
1
. . . x
n
, po teoremi o ksnoj tacki,
= Z
x
A
, po teoremi 4.3.2.
Radi lakseg zapisa i razumevanja resenja zadataka prvo cemo traziti kombi-
nator A
.
1. Naci kombinator A koji zadovoljava jednakost Ax = x(Ax).
Resenje:
Prvo se u jednacinu Ax = x(Ax) upisuje y umesto A tako da se dobije:
yx = x(yx). Zatim treba izvrsiti apstrakciju desne strane kako bi se
58 ODELjAK 4. KOMBINATORNA LOGIKA
dobio kombinator A
.
Prilikom apstrakcije se prvo eliminise x iz xy:
[x].xy= S([x].x)([x].y)
= SI(Ky)
a zatim y iz dobijenog rezultata:
[y].SI(Ky) = S([y].SI)([y].Ky)
= S(K(SI))K.
Na kraju S(K(SI))K treba upisati u formulu A = UUA
umesto A
pa je
krajnje resenje jednacine A = UU(S(K(SI))K).
3. Naci kombinator A koji zadovoljava jednakost Ax = Axx.
Resenje:
U jednacinu Ax = Axx se umesto A upisuje y na sledeci nacin: yx =
yxx. Zatim se vrsi apstrakcija desne strane da bi se dobio kombinator A
.
Prilikom apstrakcije treba prvo eliminisati x iz yxx:
[x].yxx = S([x].yx)([x].x)
= SyI
pa onda y treba eliminisati iz SyI:
[y].SyI = S([y].Sy)([y].I)
= SS(KI).
Na kraju SS(KI) treba ubaciti u formulu A = UUA
umesto A
pa je
krajnje resenje jednacine A = UU(SS(KI)).
right-head 59
4. Naci kombinator A koji zadovoljava jednakost Ax = AA.
Resenje:
Jednacinu oblika Ax = AA treba zapisati na sledeci nacin: yx = yy.
Zatim se vrsi apstrakcija desne strane kako bismo dobili kombinator A
.
Prilikom apstrakcije se prvo eliminise x iz yy:
[x].yy = K(yy)
A zatim y iz dobijenog rezultata:
[y].K(yy) = S([y].K)([y].yy)
= S(KK)(SII).
Dakle, krajnje resenje je A = UU(S(KK)(SII)).
5. Iskazna logika i aritmetika
5.1. Iskazna logika
Jelena Crnogorac, Stefan Vrankovic i Filip Novovic
U ovom odeljku cemo govoriti o klasicnoj iskaznoj logici, njenoj sintaksi i se-
mantici. Opisacemo prirodno-deduktivni sistem pomocu koga cemo formulisati
pojam teoreme ove logike. Dacemo tablice za logicke veznike i formulisacemo
pojam tautologije. Spomenucemo i teoremu potpunosti. U CL cemo denisati
kombinatore koji odgovaraju logickim konstantama i a zatim i kombinatore
koji odgovaraju veznicima , , , i . Pocinjemo od alfabeta koji se sastoji
od:
iskaznih slova p, q, r, . . .
konstante
veznika , i
zagrada ( , )
Zatim induktivno denisemo pojam iskazne formule.
1. Iskazna slova i konstanta su iskazne formule.
2. Ako su reci A i B nad datim alfabetom iskazne formule, onda su (AB),
(A B) i (A B) takode iskazne formule.
3. Nista vise nije iskazna formula.
Po dogovoru, nikad ne pisemo najspoljasnjije zagrade. Unarni veznik, negaciju,
denisemo kao A =
df
A a binarni veznik, ekvivalenciju, denisemo kao
A B =
df
(A B) (B A). Ovime smo denisali jezik iskazne logike.
U prirodnoj dedukciji su nam data pravila koja su podeljena u dve grupe:
ona koja uvode veznik i ona koja eliminisu veznik.
A B
A B
A B
A
A B
B
A
A B
B
A B
A B
[A]
C
[B]
C
C
60
5.1. Iskazna logika 61
[A]
B
A B
A B A
B
[A]
A
Pretpostavke u uglastim zagradama nakon primene pravila vise nisu aktivne
one su obrisane u tom trenutku. Izvodenje u prirodnoj dedukciji je drvo koje u
svakom cvoru ima neku formulu, po vertikali su formule povezane datim pravili-
ma izvodjenja, na vrhu drveta su pretpostavke a u korenu je zakljucak izvodenja.
Ukoliko su u nekom izvodenju sve pretpostavke precrtane onda je formula A koja
je zakljucak tog izvodenja teorema. To oznacavamo sa A. Sledece izvodenje
nam pokazuje da je
(q r) ((p q) (p r))
teorema klasicne iskazne logike.
(3) [q r]
(2) [p q] [p] (1)
q
r
p r
(1)
(p q) (p r)
(2)
(q r) ((p q) (p r))
(3)
Kada govorimo o semantici klasicne iskazne logike obavezno navodimo sledece
istinosne tablice u kojima slovo ,,t znaci istinu (tacno), dok slovo ,,f znaci laz
(netacno).
p p
t f
f t
p q p q
f f f
f t f
t f f
t t t
p q p q
f f f
f t t
t f t
t t t
Table 5.1: Tablice za negaciju, konjunkciju i disjunkciju
62 ODELjAK 5. Iskazna logika i aritmetika
p q p q
f f t
f t t
t f f
t t t
p q p q
f f t
f t f
t f f
t t t
Table 5.2: Tablice za implikaciju i ekvivalenciju
Za iskaznu formulu A kazemo da je tautologija kada je ona tacna (ima vred-
nost t) za sve vrednosti svojih iskaznih slova. To oznacavamo sa [= A.
Teorema potpunosti. Formula A je teorema ( A) akko je A tautologija
([= A).
U ovom odeljku cemo videti kako kombinatorna logika moze da posluzi za
racunanje vrednosti iskazne formule za konkretnu valuaciju njenih iskaznih slova.
Dakle, CL nam moze pomoci za semantiku iskazne logike. To kako nam CL moze
pomoci za sintaksnu stranu iskazne logike, to jest kako u CL mozemo kodirati
jedan fragment prirodne dedukcije, videcemo u odeljku FALI.
Za pocetak cemo denisati dva kombinatora t i f koje interpretiramo kao
istinu i laz. Postoji vise mogucnosti kako se to moze uraditi a mi se drzimo
denicije date u [?]:
t =
df
K f =
df
KI.
Osnovno svojstvo ovako denisanih kombinaora t i f je da za proizvoljne CL-
terme X i Y vazi
tXY = X fXY = Y.
1. Objasniti zasto resenje jednacine Nx = xft po nepoznatoj N predstavlja
kombinator za koji ce vaziti Nt = f i Nf = t.
Resenje:
Prvo cemo za N koje zadovoljava gornju jednacinu ,,izracunati vrednost
terma Nt
Nt = tft = Kft = f
a zatim vrednost terma Nf
Nf = fft = KIft = It = t.
U narednim zadacima cemo uvesti kombinatore koji ce se redom interpre-
tirati kao negacija, konjunkcija, disjunkcija, implikacija i ekvivalencija u
smislu da kad ih primenimo na odgovarajuci niz kombinatora t i f, kao
rezultat dobijamo onu vrednost koju bi nam dale gornje istinosne tablice.
5.1. Iskazna logika 63
2. Prvi kombinator koji uvodimo je N, koji predstavlja negaciju. Dakle,
N radi sledece Nt = f i Nf = t. Po prethodnom primeru N dobijamo
kao resenje jednacine Nx = xft po nepoznatoj N. Koristeci tehniku iz
odeljka 4.2, kombinator N dobijamo kada apstrahujemo desnu stranu ove
jednacine po x:
N = [x].xft = S([x].xf)([x].t)
= S(S([x].x)([x].f))(Kt)
= S(SI(Kf))(Kt)
Dakle, N mozemo denisati kao
N =
df
S(SI(Kf))(Kt).
Provera:
Nt = S(SI(Kf))(Kt)t
= SI(Kf)t(Ktt)
= It(Kft)(Ktt)
= tft = f (t = K i KfK = f)
Nf = S(SI(Kf))(Kt)f
= SI(Kf)f(Ktf)
= If(K)(Ktf) = t = t (f = KI i KI(KI)t = It = t).
3. Drugi kombinator koji uvodimo je c. On racuna vrednost konjunkcije.
Dakle, treba da vazi ctt = t; ctf = f; cft = f; c = f.
Koristeci osnovna svojstva kombinatora t i f vidimo da nam je dovoljno
da c zadovoljava jednacinu
cxy = x(ytf)f.
Tu jednacinu resavamo, kao i u prethodnom slucaju, apstrakcijom desne
strane. Prvo apstrahujemo po y
[y].x(ytf)f = S([y].x(ytf))([y].f)
= S(S([y].x)([y].ytf))(Kf)
= S(S(Kx)(S([y].yt)([y].f)))(Kf)
= S(S(Kx)(S(S([y].y)([y].t))(Kf))(Kf)
= S(S(Kx)(S(SI(Kt))(Kf)))(Kf)
64 ODELjAK 5. Iskazna logika i aritmetika
a zatim po x
[x].S(S(Kx)(S(SI(Kt))(Kf)))(Kf)
= S(S(KS)(S(S(KS)K)(K(S(SI(Kt))(Kf)))))(K(Kt))
i tako dobijamo deniciju kombinatora c.
4. Kombinator d treba da racuna vrednost disjunkcije. Dakle, treba da vazi
dtt = t; dtf = t; dft = t; d = f.
Analogno prethodnom zadatku vidimo da nam je dovoljno da kombinator
d zadovoljava jednacinu
dxy = xt(ytf),
pa ga mozemo denisati kao
d =
df
[xy].x(ytf)t = S(S(KS)(S(KK)(SI(Kt))))(K(S(SI(Kt))(Kf))).
5. Kombinator i treba da racuna vrednost implikacije. Dakle, treba da vazi
itt = t; itf = f; ift = t; i = t.
Jednacina cijim se resavanjem on dobija je
ixy = x(ytf)t,
pa ga mozemo denisati kao
i =
df
[xy].x(ytf)t
= S(S(KS)(S(S(KS)K)(K(S(SI(Kt))(Kf)))))(K(Kt)).
6. Kombinator e treba da racuna vrednost ekvivalencije. Dakle, treba da
vazi ett = t; etf = f; eft = f; e = t.
Jednacina cijim se resavanjem on dobija je
exy = x(ytf)yft,
pa ga mozemo denisati kao
e =
df
[x, y].x(ytf)yft
= S(S(KS)(S(S(KS)(S(S(KS)(S(S(KS)K)(K(S(SI(Kt))(Kf)))))
(KI)))(K(Kf))))(K(Kt)).
5.2. Aritmetika u kombinatornoj logici 65
5.2. Aritmetika u kombinatornoj logici
Darko Losic i Petar Vukmirovic
U ovom odeljku cemo govoriti o predstavljanju aritmetickih funkcija u kombi-
natornoj logici i tu ce znacajnu ulogu imati pravi kombinator V koji za sve x,
y i z zadovoljava
Vxyz = zxy.
Napominjemo da pod aritmetikom smatramo samo aritmetiku na prirodnim
brojevima, to jest nenegativnim celim brojevima 0, 1, 2, . . ., tako da kad god
se u tekstu pomene broj, misli se na neki od nenegativnih celih brojeva. Pod
pojmom sledbenik nekog broja n (u oznaci n
+
) smatramo broj n uvecan za 1
(primera radi sledbenik broja 0 je 1, sledbenik 1 je 2, sledbenik 2 je 3 i tako
daljesledbenik n je n
+
= n + 1). Analogno se denise prethodnik broja n
u oznaci n
n m zbir n i m,
odnosno kombinator koja predstavlja taj zbir. Drugim recima
n m =
n +m. Na primer
2 3 = 5,
5 0 = 5,
1 2 = 3 i tako dalje.
n m proizvod n
66 ODELjAK 5. Iskazna logika i aritmetika
i m, odnosno kombinator koja predstavlja taj proizvod. Drugim recima
nm = n m. Na primer
2 3 = 6,
1 4 = 4,
3 7 = 21 i tako dalje.
n m broj n po-
mnozen m puta sam sa sobom, odnosno kombinator koji predstavlja taj
proizvod. Drugim recima
nm = n
m
. Na primer
2 4 = 16,
4 3 =
64,
5 2 = 25 i tako dalje.
U uvodu smo denisali prehodnika svakog pozitivnog broja n. Ono sto nam
je sada potrebno je kombinator prethodnik P koji racuna prethodnike. For-
malno govoreci treba nam kombinator P takav da za svaki prirodan broj n vazi
Pn
+
= n.
Koristicemo i kombinator koji proverava da li je numericki kombinator jed-
nak 0. Ovaj kombinator cemo oznaciti sa Z i za njega ce vaziti sledece
Z0 = t, Zn
+
= f,
gde su t i f kombinatori denisani u prethodnom odeljku kao
t = K, f = KI.
Ovakav izbor je napravljen zato sto za proizvoljne CL-terme x i y vazi txy = x
jer Kxy = x a f xy = KIxy = Iy = y.
Kombinator Z mozemo dobiti kao resenje jednacine Zx = xt, sto daje Z =
SI(Kt) ili ga prosto mozemo denisati kao Tt, gde je kombinator T uveden u
odeljku 2.7. Razlog tome je sto ce ovako denisan kombinator Z primenjen na
0 davati t, dok ce primenjen na bilo koji drugi numericki kombinator davati f :
Z0 = TtI = It = t,
Zn
+
= Ttn
+
= n
+
t = Vf nt = tf n = f .
Ono sto koristimo je zgodno svojstvo kombinatora Zkombinator koji je
rezultat primene kombinatora Z i na n pa na m je n kada je i = 0, inace je m.
1. Zadatak je da se pronade kombinator
za koji vazi:
n 0 = n i za m > 0
n m = (
n (Pm)).
Stoga,
n m = Z mn((
n(Pm))).
Do kombinatora
uz pomoc kombinatora
iz
prethodnog zadatka. Koristimo rekurzivnu deniciju mnozenja preko sabi-
ranja:
n 0 = 0, n m = n (m
+
) = (n m) +n.
Stoga,
n m = Zm0(
n(Pm))n).
Do kombinatora
(zx(Py))x)
po nepoznatoj z. Resenje postoji po teoremi o ksnoj tacki.
3. Zadatak je da se pronade kombinator
uz pomoc kombinatora
iz
prethodnog zadatka. Koristimo rekurzivnu deniciju stepenovanja preko
mnozenja.
n
0
= 1, n
(m
+
)
= n
m
n.
Stoga,
n m = Zm1(
n (Pm))n).
Do kombinatora
(zx(Py))x)
po nepoznatoj z. Postojanje resenja nam opet garantuje teorema o ksnoj
tacki.
68 ODELjAK 5. Iskazna logika i aritmetika
5.3. Rekurzivne funkcije
FALI Petar Simovic i Nikola Nikolov
1. Zadatak je da se pronade iskazan program A koji je t ili f . Skup S je
izracunjiv ako postoji program A takav da An = t ; za svaki n iz skupa S
i An = t ; za svako n koje ne pripada skupu S. Kazemo da takav program
A racuna skup S, a skup S je izracunjiv ako postoji takav program A.
Program A za svaki dati broj n racuna da li on pripada skupu S akko
An = t , ili ne pripada akko An = f . Na primer skup E svih parnih
brojeva je izracunjiv. Postoji program :
A : A0 = t, A1 = f, A2 = t, A3 = f, za svaki paran broj n: An = t, a za
svaki neparan m :An = f .
Resenje:
Osobina broja da je paran je kljuc resenja i jedina osobina koja zadovoljava
dva uslova:
(a) 0 je paran broj,
(b) Za svaki pozitivan broj n, n je paran ako je njegov predhodnik
neparan.
Dakle nama treba program A koji za:
(a) A0 = t
(b) Za svaki pozitivan broj n,
An = N(A(Pn))
gde je N negacioni program tj. program negacija , a (Pn) je pred-
hodnik.
Treba nam program A koji za svaki pozitivan broj n ili nulu daje resenje
po formuli:
An = Znt(N(A(Pn)))
2. Relacioni program stepena 2 je program koji za bilo koje brojeve a i b
daje jednu od dve mogucnosti tako da je Aab = t ili Aab = f . Koristimo
svojstvo > (strogo vec od):
8 > 5 = t, 4 > 9 = f, 4 > 4 = f.
Sada nam treba program koji racuna za date brojeve a i b da li je a>b:
(a) Ako: a>b = t => gab = t
(b) Ako: ab = f => gab = f
5.3. Rekurzivne funkcije 69
CUN
(a) Najmanje y, tada je f(
x , z) denisano za sve z y i f(
x , y) = 0 ,
(b) nedenisano, ako takvo y ne postoji.
kombinator koji danise f jednacinu:
A
1
yx
1
...x
n
= Z(x
1
...x
n
y)y(A
1
(V fy))x
1
...x
n
6. Konuencija, -racun
6.1. Konuencija za CL
FALI Milica Sudar i Tamara Baralic
6.2. -racun
Aleksandar Predic, Dragana Radojevic i Marija
Zivkovic
-racun predstavlja skup nekoliko formalnih sistema, baziranih na notaciji Alonza
Cerca iz tridesetih godina proslog veka. Oni su dizajnirani tako da opisu najos-
novnije nacine kombinovanja operatora ili funkcija radi formiranja novih oper-
atora.
Alfabet -racuna cine:
beskonacan skup promenljivih x, y ,z, . . .
pomocni simboli , ., (, ), =.
-term se denise na sledeci nacin:
1. promenljive su -termi;
2. (aplikacija) ako su reci X i Y nad datim alfabetom -termi, onda je (XY )
takode -term;
3. (apstrakcija) ako je rec Y nad datim alfabetom -term, onda je
x
.Y
takode -term;
4. nista vise nije -term.
Zagrade vezane za primenu asocirane su ulevo. Takode,
x
.(
y
.Z) skraceno
zapisujemo kao
xy
.Z.
Podterm -terma je njegova podrec koja sama predstavlja -term. Pri zapisu
x
.M, za M kazemo da je ,,u oblasti
x
. Promenljiva x je vezana u termu M
ako je u oblasti
x
u M, inace, promenljiva x je slobodna u M.
Supstitucija u -racunu je nesto slozenija od one u CL zato sto ovde imamo
primitivnu operaciju apstrakcije. Za bilo koje M, N i x denisemo M
x
N
kao rezul-
tat supstitucije N za svako slobodno pojavljivanje x u M, pri cemu po potrebi
preimenujemo vezane promenljive u M tako da nijedna slobodna promenljva iz
N ne postaje vezana posle supstitucije. Na primer,
(
y
.(yx))
x
z.y
=
u
.(u(
z
.y)).
71
72 ODELjAK 6. KONFLUENCIJA, -RA
CUN
FALI Ovo dole predstaviti kao sto je predstavljen jednakosni racun CL u
4.1. (drzati se te mustre).
Opsta svojstva -racuna:
1.
x
.M =
y
.M
x
y
y , FV (M), gde je FV (M) skup slobodnih promenljivih
terma M;
2. (
x
.M)N = M
x
N
;
3. X = X (reeksivnost);
4. X = Y Y = X (simetricnost);
5. X = Y Y = Z X = Z (tranzitivnost);
6. X = Y XZ = Y Z;
7. X = Y ZX = ZY ;
8. X = Y
z
.X =
z
.Y .
Zadaci:
1. Zapisati sledece skracene -terme u punom obliku:
(a) xyz(yx) Resenje: (((xy)z)(yx)).
(b)
x
.uxy Resenje: (
x
.((ux)y)).
(c)
u
.u(
x
.y) Resenje: (
u
.(u(
x
.y))).
(d) (
u
.vuu)zu Resenje: (((
u
.((vu)u))z)y).
(e) ux(yz)(
v
.vy) Resenje: (((ux)(yz))(
v
.(vy))).
(f) (
xyz
.xz(yz))uvw Resenje: ((((
x
.(
y
.(
z
.((xz)(yz)))))u)v)w).
FALI Ovo dole srediti u formi resenja prvog zadatka.
2. (Pomoc: terme prvo predstaviti u punom obliku)
(a) Podvuci sva pojavljivanja terma xy u termu
xy
.xy.
Resenje: (
x
.(
y
.(xy)))
(b) Podvuci sva pojavljivanja terma uv u termu x(uv)(
u
.v(uv))uv.
Resenje: ((((x(uv))(
u
.(v(uv))))u)v)
6.2. -racun 73
(c) Da li se term
u
.u pojavljuje u termu
u
.uv?
Resenje: Ne, zato sto je
u
.uv (
u
.(uv))
3. Izvrsiti sledece supstitucije:
(a) (
y
.x(
w
.vwx))
x
(uv)
Resenje:
y
.uv(
w
.vw(uv))
(b) (
y
.x(
x
.x))
x
(y.xy)
Resenje:
y
.(
y
.xy)(
x
.x)
(c) (y(
v
.xv))
x
(y.vy)
Resenje: y(
z
.(
y
.vy)z), gde je z , v, y, x
(d) (
x
.zy)
x
(uv)
Resenje:
x
.zy
4. (a) Zapisati sledece skracene -terme u punom obliku:
i. xx(xxx)x
Resenje: (((xx)(xxx))x)
ii. vw(
xy
.vx)
Resenje: ((vw)(
x
.(
y
.(vx))))
iii. (
xy
.x)uv
Resenje: (((
x
.(
y
.x))u)v)
iv. w(
xyz
.xz(yz))uv
74 ODELjAK 7. Prosti tipovi
Resenje: (((w(
x
.(
y
.(
z
.((xz)(yz))))))u)v)
(b) Podvuci sva pojavljivanja terma xy u sledecim termima:
i. (
xy
.xy)xy
Resenje: (((
x
.(
y
.(xy)))x)y)
ii. (
xy
.xy)(xy)
Resenje: ((
x
.(
y
.(xy)))(xy))
iii.
xy
.xy)(xy)
Resenje: (
x
.(
y
.((xy)(xy))))
(c) Proveriti da li se neki od sledecih terma pojavljuje kao podterm u
termima iz (a) i (b):
i.
y
.xy
Resenje: Pojavljuje se u (b)i. i (b)ii.
ii. y(xy)
Resenje: Ne pojavljuje se nigde.
iii.
xy
.x
Resenje: Pojavljuje se u (a)iii.
6.3. Konuencija za -racun
FALI Stefan Virag, Nikola Cimbaljevic i Milos Radosavljevic
7. Prosti tipovi
7.1. -racun s tipovima
FALI Nikola Spasojevic, Srdan Miljevic i Milomir Radojevic
7.2. CL s tipovima
FALI Stefan Zaric, Ljubica Peleksic i Milica Kojicic
75
8. Uvod u Haskel
8.1. Funkcionalno programiranje
FALI Aleksandar Preocanin, Aleksandar Milosavljevic i Nikola Dragojlovic
FALI Nikola Vidic, Milan Teodorovic i Jovan Radoicic
8.2. Haskel
8.3. Izvodenje aritmetickih operacija
8.4. Liste
8.5. Funkcije viseg reda
76
9. Neodlucivost
9.1. Gedelovo kodiranje
FALI Jana Milutinovic, Nikola Maric i Petar Manojlovic
9.2. Dokaz neodlucivosti za CL
FALI Marija Vlaskovic,
-
Dorde Urosevic i Petar Mladenovic
77
78 ODELjAK 9. Neodlucivost
Literatura
[1] H.P. Barendregt, The Lambda calculus: its syntax and seman-
tics, Studies in Logic and the Foundations of Mathematics, vol. 103, Else-
vier, Amsterdam, 1984 (dostupno na http://gen.lib.rus.ec/)
[2] H.P. Barendregt and E. Barendsen, Introduction to Lambda Cal-
culus, skripta, 1994 (dostupno na http://gen.lib.rus.ec/)
[3] P.R. Halmos, How to write mathematics, LEnseignement
Mathematique, vol. 16 (1970), pp. 123-152
http://www.math.uga.edu/ azo/courses/halmos.pdf
[4] , How to talk mathematics, Notices of the AMS, vol. 21 (1974),
pp. 155-158
http://www.math.northwestern.edu/graduate/Forum/HALMOS.html
[5] J.R. Hindley and D. Meredith, Principal type-schemes and condensed
detachment, Journal of Symbolic Logic, vol. 55 (1990), pp. 90105
[6] J.R. Hindley and J.P. Seldin, Lambda-calculus and combinators,
an introduction, Cambridge University Press, Cambridge 2008 (dostupno
na http://gen.lib.rus.ec/)
[7] R. Smullyan, To Mock a Mockingbird, Alfred A. Knopf, Publisher,
New York, 1985 (dostupno na http://gen.lib.rus.ec/)
79
Indeks
81