lambda uvod
DESCRIPTION
Rad studenata PMF u BG 2013-2014 iz predmeta Kultura komunikacije o lambda racunu po kjizi raymond smullyan-a "to mock a mockingbird" i"computability an introduction to recursive function theory"TRANSCRIPT
-
Upoznavanje s racunom
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 nedeljeod kraja septembra pa do kraja decembra 2013. je odrzan jedan blok od dvacasa predavanja. Prva i druga nedelja su bile posvecene Halmosevim tekstovima[?] i [?]. Posle tih uvodnih casova sledila su predavanja koja su se odnosila naelementarne pojmove iz teorije kategorija i srodnih oblasti. Svaki polaznik kursaimao je zadatak da prikuplja beleske sa jednog predavanja i da ih pretoci u jedanodeljak ovog teksta. Dogovor je bio da se predavac drzi Halmosevih saveta kakotreba predavati matematiku a da onaj koji sakuplja beleske, organizuje tekst,koliko god je to moguce, po ugledu na Halmoseve sugestije kako treba pisatiknjigu iz matematike.
Zahvalnica
Zahvaljujem se profesoru Kosti Dosenu na sugestijama kako da zapocnemo ovajkurs.
U Beogradu, Zoran [email protected]
v
-
SADRZAJ
Size ??
Odeljak 1. Uvod ??
1.1. O autorima ??1.2. Osnovni pojmovi i notacija ??
Odeljak 2. Smalijanovi zadaci ??
2.1. Biografija 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 fiksnoj tacki ??
Odeljak 5. Iskazna logika i aritmetika ??
5.1. Iskazna logika ??5.2. Aritmetika u kombinatornoj logici ??5.3. Rekurzivne funkcije ??
Odeljak 6. Konfluencija i -racun ??
6.1. Konfluencija za CL ??6.2. -racun ??6.3. Konfluencija 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 ??
Bibliografija ??
Indeks ??
-
1. Uvod1.1. O autorima
Marko Adam, roden 20.11.1993. u Kninu u Hrvatskoj.
Obrazovanje:
OS ,,Adi Endre Mali Idos i OS ,,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: [email protected]
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: [email protected]
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: [email protected]
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: [email protected]
Andrej Besti c, roden
e-mail: [email protected]
Nikola Blagojevic, roden 4.12.1993. u Peci.
Obrazovanje:
Osnovna skola Despot Stefan Lazarevic, Beograd
Sesta beogradska gimnazija, prirodno-matematicki smer, Beograd;
Matematicki fakultet, Univerzitet u Beogradu, smer Informatika.
Ja sam komunikativna i druzeljubiva osoba. U slobodno vreme slusam muziku
i izlazim sa prijateljima. Volim da putujem, upoznajem nove ljude i mesta.
Studiram informatiku jer su me od malena zanimali racunari i sve vezano za
njih.
e-mail: [email protected]
Milos Cerovic, roden 10.2.1993. u Beogradu.
Obrazovanje:
Osnovna skola Ilija Bircanin, Zemun Polje;
Elektrotehnicka skola Zemun, Zemun;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
U slobodno vreme volim da slusam muziku, i pogledam po koji film. Volim da
se druzim, da budem napolju.
e-mail: [email protected]
Nikola Cimbaljevic, roden 26.12.1991. u Krusevcu.
Obrazovanje:
Osnovna skola Jovan Popovic, Krusevac.
Srednja skola Gimnazija, Krusevac.
-
1.1. O autorima 3
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Moje najvece interesovanje su igrice i kreiranje istih. To je razlog zasto sam
upisao Matematicki fakultet. Druzeljubiv sam i volim da sam okruzen meni
dragim ljudima. Imam dva omiljena pisca i uzivam u citanju njihovih knjiga.
Omiljeni casopis mi je Politikin Zabavnik.
e-mail: [email protected]
Marko Crnobrnja, roden 9.5.1993. u Beogradu.
Obrazovanje:
Osnovna skola Djura Danicic, Beograd;
Matematicka gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Pristupacna i druzeljubiva osoba. Pored informatike interesujem se za jezike i
matematiku, volim gledati filmove i citati.
e-mail: [email protected]
Jelena Crnogorac, rodena 25.12.1993. Beogradu.
Obrazovanje:
Osnovna skola Kosta Djukic, Mladenovac;
Gimnazija Mladenovac, Mladenovac;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Najvise se opustam kada pevam i slusam muziku, takode volim da provodim
vreme sa drustvom i gledam filmove.
e-mail: [email protected]
Nikola Dragojlovic, roden 24.10.1992. u Beogradu.
Obrazovanje:
Osnovna skola Dragica Pravica, Beograd;
Elektrotehnicka Skola Nikola Tesla, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Slobodnog vremena imam jako malo zbog posla I fakulteta. Bavim se spasilastvom.
Ono vremena sto mi ostaje slobodno provodim sa mojom devojkom. Na fakul-
tetu se trudim da budem redovan mada mi to ponekad ne uspeva ali i dalje
istrajam i redovno zavsavam 2 godinu studija. Hobi mi je stolarstvo.
e-mail: [email protected]
-
4 ODELjAK 1. UVOD
Ana -Dordevic, rodena 11.10.1993. u Arandelovcu.
Obrazovanje:
Osnovna skola Milan Ilic Cica, Arandelovac;
Gimnazija Milos Savkovic, prirodno-matematicki smer, Arandelovac;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Zanima me programiranje, volim da putujem, slusam muziku i izlazim sa drustvom.
e-mail: [email protected]
Aleksandra -Duric, rodena 20.02.1993. u Uzicu.
Obrazovanje:
Osnovna skola Aleksa Dejovic, Sevojno;
Tehnicka skola, Uzice, smer Elektrotehnicar telekomunikacija;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Nasmejana sam, druzeljubiva i pouzdana osoba . Smatram da je u zivotu veoma
vazno baviti se onim sto volis. Zato sam i izabrala ovaj smer.
e-mail: [email protected]
Nikola Gujanicic, roden 19.09.1993. u Prijepolju.
Obrazovanje:
Osnovna skola Momir Pucarevic, Akmacici;
Gimnazija Pivo Karamatijevic, Nova Varos;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Introvertna sam osoba.
e-mail: [email protected]
Nemanja Ilic, roden 25.06.1993. u Valjevu.
Obrazovanje:
Osnovna skola Nada Puric, Valjevo
Valjevska gimanzija, smer: Prirodno matematicki, Valjevo
Matematicki fakultet Univerziteta u Beogradu, smer: Informatika
Veoma sam iskrena i komunikativna osoba. U slobodno vreme se bavim stand
up komedijom. Volim da pogledam dobar film ili predstavu, procitam dobru
knjigu i sviram gitaru.
e-mail: [email protected]
Nikola Ilic, roden 10.7.1993. u Vranju.
-
1.1. O autorima 5
Obrazovanje:
Osnovna skola Predrag Devedzic, Vranjska Banja;
Gimnazija Bora Stankovic, smer Matematika, Vranje;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Zanimaju me racunari od malena, slobodno vreme provodim baveci se sportom,
eventualno gledam neki dobar film ili sam za racunarom. Matematika mi je isla
od ruke od malena pa sam je zato i zavoleo.
e-mail: [email protected]
Danilo Jovanovic, roden 19.12.1993. u Beogradu.
Obrazovanje:
Osnovna skola Kralj Petar Prvi, Beograd;
Matematicka gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Interesuje me: arhitektura, sviranje, slusanje muzike, istorija, lingvistika...naravno,
i programiranje.
e-mail: [email protected]
Vladimir Jovanovic, roden 8.2..1993. u Beogradu.
Obrazovanje:
Osnovna skola Branko Copic, Beograd;
XV Beogradska gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Osim kompjutera, koji su mi najveca opsesija, moji hobiji su crtanje i muzicka
produkcija.
e-mail: [email protected]
Milica Kojicic, rodena 19.02.1993. u Sapcu.
Obrazovanje:
Osnovna skola Zika Popovic, Vladimirci;
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: [email protected]
-
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:Giff me mana.
e-mail: [email protected]
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 [email protected]
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: [email protected]
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 astrofizika,
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:[email protected]
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 filmove.
e-mail: [email protected]
Darja Lovrenski, rodena 17.1.1992. u Beogradu.
Obrazovanje:
Osnovna skola Josif Pancic u Beogradu;
Srednja skola ETS Nikola Tesla u Beogradu, smer elektrotehnicar racunara,
Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Volim muziku, putovanja, zavrsila sam nizu muzicku skolu u Beogradu, odsek
violoncelo, volim da gledam trilere i uvek sam raspolozena za druzenje. Zan-
imaju me racunarske mreze i volela bih to da proucim detaljno i da se time
bavim. Uvek su me zanimali racunari, vise hardver, ali sam u poslednje vreme
zavolela i softver.
e-mail: [email protected]
Stefan Maksimovic, roden 24.1.1993. u Loznici.
Obrazovanje:
Osnovna skola Milica Pavlovic, Cacak;
Gimnazija u Cacku;
Matematicki fakultet univerziteta u Beogradu, smer informatika.
Oduvek sam bio zainteresovan za masine, njihovu sustinu i principi po kojima
rade.
e-mail: [email protected]
Petar Manojlovic, roden 12.04.1992. u Beogradu.
Obrazovanje:
Osnovna skola Petar Petrovic Njegos, Beograd;
-
8 ODELjAK 1. UVOD
Gimnazija Sveti Sava, prirodno-matematicki smer, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Volim da citam knjige Stephen King-a, H.P.Lovecraft-a i slicnih, volim da sa
drustvom igram kosarku i fudbal. Slobodno vreme provodim sa devojkom ili sa
prijateljima.
e-mail: [email protected]
Kosta Maric, roden 27.8.1993. u Beogradu.
Obrazovanje:
Osnovna skola Borislav Pekic, Beograd;
Deseta beogradska gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
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 filmove, sportske utakmice i volim da slusam muziku.
e-mail: [email protected]
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: [email protected]
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 filmove
i slusam muziku.
e-mail:[email protected]
-
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 astrofizika,
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: [email protected]
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.
Filmofil, zaljubljenik u gitare i kompjutere. Najcesce sarkatsican, cinican i
neprijatan. U slobodno vreme pisem kratke satiricne price.
e-mail: [email protected]
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: [email protected]
Srdan Miljevic, roden 30.9.1988. u Beogradu.
Obrazovanje:
Osnovna skola Jelena Cetkovic, Beograd;
Sesta beogradska gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
-
10 ODELjAK 1. UVOD
Volim racunarske nauke, horor filmove, plivanje i ronjenje. Ne volim matematicku
analizu, beskonacnosti i da pisem o tome sta volim a sta ne.
e-mail: [email protected]
Milos Mitrovic, roden 21.4.1993. u Beogradu.
Obrazovanje:
Osnovna skola Nikola Tesla, Beograd;
Prva beogradska gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Imam dosta interesovanja koja ukljucuju razne oblasti racunarstva, kinematografiju,
graficki dizajn, muziku, pop kulturu i jos mnoga druga. Takode sam veliki
zagovornik ljudskih prava kao i zivotinjskih prava zbog cega sam vegetarijanac
od svoje petnaeste godine. Uvek sam otvoren da probam nove stvari.
e-mail: [email protected]
Petar Mladenovic, roden 2.4.1994. u Sapcu.
Obrazovanje:
Osnovna skola Nikolaj Velimirovic, Sabac;
Medicinska skola Dr Andra Jovanovic, Sabac;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Madionicar programerskih navika.
e-mail: [email protected]
Nikola Nikolov, roden 15.01.1993. u Pozarevcu.
Obrazovanje:
Osnovna skola Kralj Aleksandar I, Pozarevac;
Pozarevacka gimnazija, Pozarevac;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Ne volim da pisem o sebi.
e-mail: [email protected]
Filip Novovic, roden 12.10.1993. u Beogradu.
Obrazovanje:
Osnovna skola Josif Pancic, Beograd;
Racunarska gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
-
1.1. O autorima 11
Moj primarni cilj je da na fakultetu sakupim dovoljno znanja da bih mogao da
se bavim racunarskom grafikom i razvojem racunarskih igara. Pored programi-
ranja, strast su mi i perkusije, najvise bubnjevi.
e-mail: [email protected]
Relja Paunovic, roden 2.1.1993. u Beogradu.
Obrazovanje:
Osnovna skola Stefan Nemanja, Beograd;
Peta Beogradska Gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Sviram klavir i bubanj, veliki sam filmofil, volim matu i racunarstvo.
e-mail:[email protected]
Nikola Pavlovic, roden 15.04.1993. u Uzicu.
Obrazovanje:
Osnovna skola Dusan Jerkovic, Uzice;
Uzicka gimnazija, Uzice;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Interesuje me sve u vezi racunarstva i informatike. Ljubiitelj sam sporta, filma,
muzike
e-mail: [email protected]
Ljubica Peleksic, rodena 18.11.1993. u Beogradu.
Obrazovanje:
Osnovna skola Ivo Andric, Beograd;
Cetvrta gimnazija u Beogradu;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Ljubav prema matematici sam nasledila od roditelja. Bavim se konjickim
sportom vec godinama. Cesto putujem i tesko mi je da budem na jednom
mestu dugo. Planiram da zivim i radim u inostranstvu.
e-mail:[email protected]
Branko Petkovic, roden 30.7.1993. u Beogradu.
Obrazovanje:
Osnovna skola Rade Koncar, Zemun;
2006-2008 SystemPro, skola programiranja za talentovanu decu;
-
12 ODELjAK 1. UVOD
Zemunska Gimnazija, drustveno jezicki smer
Matematicki fakultet Univerziteta u Beogradu, Smer Informatika.
Vrlo sam motivisan, dobro radim pod pritiskom i dobro radim u timu. Treniram
ragbi vec 7 godina. Bio sam kapiten reprezentacije u vise navrata, tako da imam
iskustvo u organizovanju ljudi. Prvi put sam poceo da programiram u skoli
programiranja za talentovanu decu SystemPro sa 13 godina. Ubrzo sam shvatio
da bas time zelim da se bavim.
e-mail: [email protected]
Andrea Pilipovic, rodena 11.8.1993. u Beogradu.
Obrazovanje:
Osnovna skola Ujedinjene Nacije, Beograd;
XV Beogradska gimnazija u Beogradu, prirodni smer;
Matematicki fakultet Univerziteta u Beogradu, smer informatika.
Volim da izlazim, slusam muziku i da svoje slobodno vreme provodim sa porod-
icom i prijateljima. Obozavam da putujem i vidim nesto novo. Sa programi-
ranjem sam se upoznala u srednjoj skoli, ali sam ga iskreno zavolela tek na
fakultetu.
e-mail: [email protected]
Aleksandar Predic, roden 3.9.1993. u Beogradu.
Obrazovanje:
Osnovna skola Branko Copic, Beograd;
XV beogradska gimnazija, Prirodno-matematicki smer, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Veoma sam vedra i komunikativna osoba. Hobiji su mi skijanje, airsoft, capoeira
i sviranje gitare. U slobodno vreme volim da izadjem sa prijateljima, opustim
se uz neki dobar film ili da slusam muziku.
e-mail: [email protected]
Aleksandar Preocanin, roden 07.08.1993. u Beogradu.
Obrazovanje:
OS Majka Jugovica, Zemun, Beograd;
ETS Nikola Tesla , smer elektrotehnicar racunara, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Veoma sam zainteresovan za programiranje i matematiku zbog cega sam i upisao
ovaj fakultet. U slobodno vreme sviram gitaru, treniram i gledam filmove.
-
1.1. O autorima 13
e-mail: [email protected]
Jana Protic, rodena 9.1.1994. u Uzicu.
Obrazovanje:
Osnovna skola Emilija Ostojic, Pozega;
Gimnazija Sveti Sava, smer Informatika, Pozega;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Veoma sam opustena, pozitivna i uvek spremna za akciju. Volim rad u timu, ali
se takodje lepo snalazim i u pojedinacnim aktivnostima. Racunari i softver su
mi oduvek bili jako zanimljivi. Slobodno vreme volim da provodim u drustvu
uz neku dobru muziku, film ili pricu.
e-mail: [email protected]
Mirjana Pusicic, rodena 17.12.1992.u Uzicu.
Obrazovanje:
Osnovna skola Zivko Ljujic, Nova Varos;
Gimnazija Pivo Karamatijevic, Nova Varos;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Volim da putujem, i da sam stalno okruzena prijateljima i poznanicima.
e-mail: [email protected]
Jovan Radoicic, rodjen 13.2.1993. u Krusevcu.
Obrazovanje:
Osnovna skola Dragomir Markovic, Krusevac;
Masinsko-elektrotehnicka skola, smer Automatika, Krusevac;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Student.
e-mail: [email protected]
Dragana Radojevic, rodena 10.8.1993. u Beogradu.
Obrazovanje:
Osnovna skola Rade Drainac, Beograd;
Sedma beogradska gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Volim rad na racunaru zbog cega sam i izabrala Informatiku. U slobodno vreme
volim da slusam muziku,izadjem sa prijateljima, procitam neku dobru knjigu.
-
14 ODELjAK 1. UVOD
e-mail: [email protected]
Dusica Radojevic, rodena 22.01.1993. u Jagodini.
Obrazovanje:
Osnovna skola Rada Miljkovic, Jagodina;
Gimnazija Svetozar Markovic, Jagodina;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Ne volim da pisem o sebi.
e-mail: [email protected]
Milomir Radojevic, roden 28.10.1993. u Uzicu.
Obrazovanje:
Osnovna skola Mito Igumanovic, Kosjeric;
Tehnicka skola, Kosjeric;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Volim informatiku i sve sto je vezano za programiranje. U slobodno vreme
gledam filmove i slusam muziku.
e-mail:[email protected]
Milos Radosavljevic, rodjen 09.12.1993. u Krusevcu.
Obrazovanje:
Osnovna skola Vuk Karadzic, Krusevcu;
Krusevacka gimnazija, Krusevac;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
U slobodno vreme najvise volim da igram kompjuterske igrice. Iako nisam
sportski tip omiljeni sport mi je fudbal i rado ga igram. Ponekad se cini da
trosim svoje vreme uzaludno i da provedem sate i sate u dosadi, medjutim kad
treba organizujem svoje vreme, sve svoje obaveze zavrsim u roku. Svestan sam
svojih sposobnosti i mana, pa se ne opeterecujem previse stvarima za koje znam
da ne mogu da uticem na njih ili ako znam da mi ne idu, ali kad nadjem nesto
sto me interesuje trudim se da naucim i istrazim sto vise o tome. Nisam od
onih koji vole da uce napamet, ucim tako sto stvari logicki povezujem i tako sto
shvatim sustinu stvari.
e-mail: [email protected]
Bojana Simic, rodena 9.4.1993. u Brusu.
-
1.1. O autorima 15
Obrazovanje:
Osnovna skola Jovan Jovanovic Zmaj, Brus;
Srednja skola, Brus;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Interesuje me programiranje, ali sam jos uvek na pocetnom nivou. Volim da
putujem, planinarenje, zivotinje, sve sto ima veze sa prirodom. Takolje, veliki
sam zaljubljenik u filmove, muziku, knjige.
e-mail: [email protected]
Petar Simovic, roden 14.4.1993. u Beogradu.
Obrazovanje:
Osnovna skola Oslobodioci Beograda, Beograd;
Cetrnaesta beogradska gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Upisao sam ovaj fakultet prvenstveno radi sticanja znanja u razli citim oblastima
racunarstva. U slobodno vreme eksperimenti sem sa hardverom svojih starijih
racunara.
e-mail: [email protected]
Vlado Skoko, roden 19.4.1993. u Beogradu.
Obrazovanje:
Osnovna skola Sonja Marinkovic, Zemun;
Elektrotehnicka skola Rade Koncar, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Jo u sestom razredu osnovne skole sam odlucio cime hocu da se bavim. Napravio
sam izbor izmedu informatike i medicine i upisao elektrotehnicku skolu, racunarski
smer. Nakon tri godine ucenja programiranja, upisao sam Matematicki fakultet,
kako bih nastavio obrazovanje u ovoj oblasti. Moja druga ljubav su jezici i cilj
mi je da do kraja studija govorim cetiri. Veliki sam fan tenisa od 12. godine.
e-mail:[email protected]
Katarina Smiljanic, rodena 14.5.1994. godine u Cacku.
Obrazovanje:
Osnovna skola Tanasko Rajic, Cacak;
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: [email protected]
Nikola Spasojevic, roden 26.4.1993. u Beogradu.
Obrazovanje:
Osnovna skola -Dura Jaksic, Beograd;
Cetvrta gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
U slobodno vreme volim da sviram, slusam muziku, citam, izlazim... Smer Infor-
matika sam izabrao jer volim programiranje kao sredstvo za resavanje problema,
volim izazove, a u informatici ce uvek biti neceg novog.
e-mail: [email protected]
Pavle Stepanic, roden 28.08.1993. u Krusevcu.
Obrazovanje:
Osnovna skola ,,Vuk Karadzic, Krusevac;
Gimnazija Krusevac , prirodno-matematicki smer, Krusevac;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Od malih nogu sam znao da su prirodne nauke moja sfera interesovanja. Oduvek
sam znao da cu pohadati PMF, ali sam pre tri godine shvatio da je informatika
najzanimljivija prirodna nauka. Drustvena sam osoba. Volim sve sto vole mladi,
volim da radim na sebi. Hobi su mi: Skijanje, planinarenje, biciklizam, stoni-
tenis.
e-mail: [email protected]
-Dorde Srdic, roden 18.1.1993. u Beogradu.
Obrazovanje:
Osnovna skola 14. Oktobar, Beograd;
Elektrotehnicka skola Nikola Tesla, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Matematicki fakultet sam upisao kako bih unapredio znanje steceno u srednjoj
skoli u nadi da cu se jednog dana baviti informatikom. Ljubitelj sam elektronske
muzike i tibetanske kulture. U slobodno vreme rekreativno treniram, citam i
izlazim s prijateljima.
e-mail: djordje [email protected]
-
1.1. O autorima 17
Sibin Stojkovic, roden 13.9.1993. u Beogradu.
Obrazovanje:
Osnovna skola Milan -D. Milicevic, Beograd;
Matematicka Gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Zelim da se bavim medicinom, ali sam prespavao tri godine hemije,
pa sam se ipak odlucio za programiranje, koje mi je oduvek islo i bilo zanimljivo.
U slobodno vreme ucim hemiju i druzim se sa prijateljima.
e-mail: [email protected]
Nemanja Subotic, roden 4.9.1993. u Uzicu.
Obrazovanje:
Osnovna skola Zivko Ljujic , Nova Varos;
Gimnazija Pivo Karamatijevic, Nova Varos;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Druzeljubiv i komunikativan. U slobodno vreme izlazim sa drustvom idem na
plivanje, igram basket, igrice...
e-mail: [email protected]
Milica Sudar, rodena 31.12.1993. u Somboru.
Obrazovanje:
Osnovna skola Nikola Vukicevic, Sombor;
Gimnazija Veljko Petrovic, Sombor;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Otvorena osoba sirokih interesovanja. Ne mogu da zamislim zivot bez dobre
muzike, rolera i sporta. Trenutno se bavim orijentalnim plesom. Najveca zelja
mi je da proputujem svet.
e-mail: [email protected]
Milan Teodorovic, roden 20.9.1993. u Beogradu.
Obrazovanje:
Osnovna skola Stevan Dukic, Beograd;
Elektrotehnicka skola Nikola Tesla, smer Elektrotehnicar racunara, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Jos od osnovne skole sam bio zainteresovan za kompjutere i tehnologiju,zato
sam i upisao ovaj fakultet. Naravno provodio sam dosta vremena igrajuci igrice
-
18 ODELjAK 1. UVOD
tako da sam pozeleo da i programiram iste, doduse kada sam video kako pro-
gramiranje zaista izgleda nisam bas bio odusevljen, ali sam ipak nastavio sa
skolovanjem u tom smeru. Volim filmove, knjige, muziku, druzenje,izlaske.
Takodje sam fan istorije, epske i naucne fantastike, i naravno veoma volim da
provodim vreme igrajuci se na kompjuteru.
e-mail:[email protected]
-Dorde Todorovic, roden 12.8.1993. u Uzicu.
Obrazovanje:
Osnovna skola Petar Lekovic, Pozega;
Gimnazija Sveti Sava, smer Informatika, Pozega;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Volim da igram fudbal. U slobodno vreme idem u teretanu.
e-mail: [email protected]
-Dorde Urosevic, roden 16.4.1993. u Beogradu.
Obrazovanje:
Osnovna skola Vladislav Ribnikar, Beograd;
Treca beogradska gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Zelim da se bavim programiranjem i zato sam upisao Matematicki fakultet. U
slobodno vreme, kada ne vozim bicikl i ne sviram gitaru, volim da se opustim
uz dobar film, zanimljiv bend ili fudbalsku utakmicu.
e-mail: [email protected]
Nikola Vidic, roden 9.7.1992. u Beogradu.
Obrazovanje:
Osnovna skola ,,Laza Kostic, Beograd;
Srednja elektrotehnicka skola Nikola Tesla, smer Elektrotehnicar racunara,
Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
U slobodno vreme volim da gledam filmove, citam knjige, bavim se sportom...
e-mail: [email protected]
Stefan Virag, rodjen 08.02.1993. u Vrscu.
Obrazovanje:
-
1.1. O autorima 19
Osnovna skola Mladost, Vrsac;
Gimnazija Borislav Petrov Braca, Vrsac;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
U slobodno vreme volim da se bavim programiranjem, najvise pravljenjem
igrica. Volim da pomazem i da budem u dobrom drustvu. Volim izlaske, filmove
i igrice..
e-mail: [email protected]
Marija Vlaskovic, rodena 20.11.1993. u Uzicu.
Obrazovanje:
Osnovna skola Emilija Ostojic, Pozega;
Gimnazija Sveti Sava, smer Informatika, Pozega;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Volim da radim u timu, ali i samostalno. Racunari su mi oduvek bili intere-
santni. Pozitivna osoba, uvek sam za akciju. Slobodno vreme volim da provodim
druzeci se, ili uz dobru knjigu. Takodje obozavam da putujem.
e-mail: [email protected]
Aleksandar Vranesevic, roden 23.11.1993. u Uzicu.
Obrazovanje:
Osnovna skola Stari grad, Uzice;
Uzicka gimnazija, Uzice;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
,,Do... or do not. There is no try.
e-mail: [email protected]
Stefan Vrankovic, roden 3.6.1993. u Benkovcu.
Obrazovanje:
Osnovna skola Ilija Garasanin, Grocka;
Srednja skola, prirodno-matematicki smer, Grocka;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Zavoleo sam matematiku jos kao dete, a programiranje mi se ucinilo kao neko
dodatno mozganje, tako sam i zavrsio na ovom fakultetu. U slobodno vreme
gledam serije i igram sah.
e-mail: [email protected]
Petar Vukmirovic, roden 12.08.1993. u Beogradu
-
20 ODELjAK 1. UVOD
Obrazovanje:
Osnovna skola Miroslav Antic u Beogradu
Trinaesta beogradska gimnazija
Matematicki fakultet Univerziteta u Beogradu, smer Informatika
Racunarstvo i informatika je oblast koja me interesuje jos od osnovne skole.
Volim plivanje, drustvene mreze, muziku i filmove.
e-mail: [email protected]
Lazar Vuletic, roden 20.05.1993. u Beogradu.
Obrazovanje:
Osnovna skola Vojvoda Radomir Putnik, Beograd;
gimnazija Sveti Sava, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
,,-insert wise quote here-
e-mail: [email protected]
Stefan Zaric roden 29.5.1993. u Cacku.
Obrazovanje:
Osnovna skola Ratko Mitrovic, Cacak;
Tehnicka skola, Cacak;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Interesuju me racunari, muzika, sport i automobili. U slobodno vreme volim da
slusam muziku, gledam filmove i igram kosarku.
email: [email protected]
Oliver Kosta Zivic, roden 17.08.1993. u Beogradu.
Obrazovanje:
Osnovna skola France Presern, Beograd;
Cetvrta Beogradska Gimnazija, prirodno-matematicki smer, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
Bavim se sportom, muzikom i u slobodno vreme volim da procitam po koju
dobru knjigu. Preferiram samostalan rad, zbog ceste ljudske neorganizovanosti,
mada sa dobrim timom odlicno saradjujem. Slobodno vreme volim da provodim
u dobrom drustvu, obicno uz muziku, film ili u razgovoru.
e-mail: [email protected]
-
1.1. O autorima 21
Marija Zivkovic, rodena 31.7.1993. u Beogradu.
Obrazovanje:
Osnovna skola Dusko Radovic, Beograd;
Matematicka gimnazija, Beograd;
Matematicki fakultet Univerziteta u Beogradu, smer Informatika.
U slobodno vreme volim da slusam muziku, sviram klavir i gitaru i ucim strane
jezike. Informatiku sam upisala zato sto mi je programiranje veoma zanimljivo
i ima veliku primenu u svakodnevnom zivotu.
e-mail: [email protected]
-
22 ODELjAK 2. SMALIJANOVI ZADACI
1.2. Osnovni pojmovi i notacija
prazan skupN skup prirodnih brojeva: {0, 1, 2, . . .}Q skup racionalnih brojeva
R skup realnih brojeva
(a, b) ureden par; (a, b) = (c, d) (a = c b = d)AB Dekartov proizvod skupova A i B: {(a, b) | a A, b B}P(X) partitivni skup (skup svih podskupova) od X
{x1, . . . , xn} konacan skup; xi 6= xj za i 6= j|X| broj elemenata konacnog skupa X
X X refleksivna (x X)(x, x) X X simetricna (x, y X)((x, y) (y, x) ) X X tranzitivna (x, y, z X)(((x, y) (y, z) ) (x, z) )
X X rel. ekvivalencije refleksivna, simetricna i tranzitivnaf : X Y je 1-1 (x1, x2 X)(f(x1) = f(x2) x1 = x2)f : X Y je na (y Y )(x X)(y = f(x))
f : X Y je bijekcija 1-1 i nakombinatori: M Mx = xx
K Kxy = x
I Ix = x
L Lxy = x(yy)
-
2. Smalijanovi zadaci2.1. Biografija Rejmonda SmalijanaNenad Lazic
Rejmond Smalijan je Americki matematicar, koncertni pijanista, logicar, filozof
i madionicar. Roden je 25. maja 1919. u Far Rokveju, Njujork. Sa dvanaest
godina pokazao je muzicki talenat osvojivsi zlatnu medalju na pijanistickom
takmicenju. Naredne godine, njegova porodica se preselila na Menhetn i on je
isao u skolu za muzicke talente ,,Teodor Ruzvelt ali s obzirom da ova skola
nije nudila slicne kurseve iz matematike on je pohadao jos jednu skolu. Ucio je
matematiku i muziku. Diplomirao je na Univerzitetu u Cikagu 1955. Objavio
je 1957. rad u casopisu ,,Journal of Symbolic Logic u kome je dao savremeno
shvatanje Gedelove teoreme. Doktorirao je na Univerzitetu Prinston 1959.
2.2. Kratak istorijatLogici su ime dali Grci. Ono potice od grcke reci oo, sto se prevodi kao rec
a znaci puno toga u vezi sa jezikom, mislju, razumom, naukom. Za hriscane to
je jedno od Bozijih imena. Logika je smatrana granom filozofije veoma dugo,
pocevsi od starogrckog filozofa Aristotela pa sve do XX veka kada je naziv
matematicka logika obuhvatio citavu logiku ali se pridev iz imena matematicka
logika vremenom gubi i ostaje samo naziv logika. Logika zasnovana na Aris-
totelovoj izucavana je na zapadnoevropskim univerzitetima u srednjem veku u
prvom delu studija. Grcke matematicare tada nisu zanimala ucenja tadasnjih
logicara niti su se sami bavili izucavanjem dedukcije iako su je i oni koristili u
matematici. Sa tacke gledista savremene logike znacajnije otkrice nego bilo koje
od Aristotelovih jeste veznik materijalne implikacije Filona iz Megare. Pocetkom
druge polovine XIX veka, logika dakle prelazi iz filozofije u matematiku po uzoru
na fiziku koja se od filozofije odvojila u XVII veku.
Matematicka logika
Naziv matematicka logika u XX veku obuhvata citavu logiku. Jedan deo ma-
tematicke logike, koji bi trebalo da bude posebno zanimljiv filozofima ponekad
se naziva filozofskom logikom. Prelazak logike u matematiku nagovestio je Laj-
bnic u spisima koji su sve do XX veka ostali neobjavljeni, i zato nisu imali
mnogo uticaja na razvoj savremene logike. Ono sto je kod Lajbnica najblize
savremenoj logici je zelja da se prirodni jezik zameni jednim savrseno pre-
ciznim, matematickim jezikom. U takvom jeziku bi sagovornici koji se spore
mogli da izracunaju ko je u pravu. Lajbnic, koji je izmislio i jednu masinu za
racunanje i bavio se binarnim sistemom za brojeve, gde se kao kod danasnjih
23
-
24 ODELjAK 2. SMALIJANOVI ZADACI
racunara sve pise samo sa 0 i 1, u velikoj meri je bio prorok informatickog
doba. Matematicka logika se sastoji od matematickog proucavanja logike i
primene ovog proucavnja na druge oblasti matematike. Matematicka logika
ima bliske veze sa racunarstvom. Medu osnovnim temama koje se provlace
kroz matematicku logiku su izrazajna moc formalnih logika i deduktivna moc
dokazivackih sistema. Od svog nastanka, matematicka logika je doprinela i njen
razvoj je bio motivisan proucavanjem osnova matematike. Ovo proucavanje je
pocelo krajem XIX veka a pocetkom XX veka ju je oblikovao David Hilbert u
svom programu za dokazivanje konzistentnosti osnovnih teorija.
Kombinatorna logika
Kombinatorna logika je notacija koju su uveli Mozes Senfinkl i Haskel Kari kako
bi eliminisali potrebu za promenljivim u matematickoj logici. Sada se koristi
u racunarstvu kao teorijski model izracunljivosti i kao osnova za funkcionalno
programiranje. Zasnovan je na kombinatornim objektima, koji su funkcije viseg
reda i koji koriste samo primenu (aplikaciju) funkcije na neku drugu funkciju i
kao rezultat opet daju funkciju. U racunarstvu, kombinatorna logika se koristi
kao pojednostavljeni model racunanja, koriscen u teoriji izracunljivosti i teoriji
dokaza. Kombinatorna logika obuhvata mnoga esencijalna svojstva racunanja.
Kombinatorna logika se moze shvatiti kao varijanta racuna, u kojoj su izrazi
(koji predstavljaju funkcijsku apstrakciju) zamenjeni skupom kombinatornih
objekata, primitivnih funkcija koje nemaju slobodnih promenljivih. Lako je
transformirati izraz u kombinatorni izraz, i kombinatorna redukcija je mnogo
jednostavnija od redukcije. Zato je kombinatorna logika koriscena za mod-
eliranje nekih nestriktnih funkcijskih programskih jezika. Najcesci oblik ovoga
pogleda jeste programski jezik Unlambda. Iako nije praktican programski jezik,
Unlambda ima teoretsku vaznost. Kombinatornoj logici moze biti dodeljeno
mnogo interpretacija. Mnogi raniji radovi Karija su pokazali kako prevesti skup
aksioma konvencionalne logike u jednakosne kombinatorne logike (videti [?]).
Dejna Skot je sezdesetih i sedamdesetih godina proslog veka pokazao kako usa-
glasiti teoriju modela i kombinatornu logiku.
2.3. Logicki problemiMnogi od Smalijanovih logickih problema su nastavci klasicnih slagalica. U
ovom tekstu Smalijanove logicke probleme cemo razmatrati nad skupom pro-
grama. Pretpostavka je da postoji ,,svet programa koji za neki ulaz proizvode
odgovarajuci izlaz. U tom svetu vaze neka pravila koja cemo definisati pre nego
sto pocnemo razmatranje problema.
Komutativnost primene programa (ne) vazi uvekAko posmatramo programe A i B i ukoliko je program B ulaz za program
-
2.3. Logicki problemi 25
A, tada ce program A na izlazu dati rezultat program AB. Program AB
se dobija kao rezultat izvrsavanja programa A na programu B. Rezultat
primene programa A na program B (program B je ulaz za program A) i
programa B na program A (program A je ulaz za program B) ne mora
da bude isti. Dakle AB ne mora da bude isto sto i BA. Slicno ako bismo
imali tri programa A, B i C, rezultat primene programa A na BC, gde
je BC rezultat primene programa B na program C, ne mora da bude isti
kao rezultat primene programa AB na program C, gde je AB rezultat
primene programa A na program B. Dakle A(BC) ne mora biti isto sto i
(AB)C.
C1 Kompozicija programa
Pravilo kompozicije kaze da za svaka dva programa A i B postoji program
C, koji je kompozicija programa A i B, tj. program C je takav da vazi
x A(Bx) = Cx.
Drugim recima rezultat izvrsavanja programa C na program x je isti kao
i rezultat izvrsavanja programa A na rezultat izvrsavanja programa B na
program x.
C2 Program rugalica
Pretpostavka je da postoji program rugalica M koji za ulaz ima program x,
a kao rezultat svog rada daje program xx, drugim recima daje isti rezultat
kao kada bi program x imao za ulaz program x. Simbolicki zapisano:
x Mx = xx
Drugim recima program M ,,imitira program x sve dok je ulaz u program
M program x. To znaci da ukoliko pozovemo program x programu M ili
programu x pozovemo program x u svakom slucaju ce se dobiti isti izlaz.
Definicija 2.3.1. Program A voli program B kada je rezultat primene
programa A na program B jednak B.
AB = B
Sledi nekoliko zadatak od kojih neki pretpostavljaju da u svetu programa vaze
uslovi C1 i C2.
1. Spekulise se da u svetu programa svaki program voli bar jedan program.
Druga spekulacija je da postoji barem jedan program koji ne voli nijedan
program. Zanimljivo je da ovaj problem moze da se resi ako uslovi C1 i
-
26 ODELjAK 2. SMALIJANOVI ZADACI
C2 vaze.
Pitanje: Koja od ove dve glasine je istinita?
Resenje:
Prva glasina je tacna. Svaki program A je sklon barem jednom programu.
Ovo dokazujemo na sledeci nacin: Uzmite bilo koji program. Uslovom C1
postoji program C koji komponuje program A sa programom rugalicom
M, zato sto za bilo koji program B postoji program C koji komponuje pro-
gram A sa programom B. To je takode tacno u slucaju da je B program
rugalica. Ovo mozemo simbolicki zapisati na sledeci nacin: Cx = A(Mx).
Posto jednakost vazi za svaki program x mozemo da zamenimo x sa C
cime dobijamo jednakost A(MC) = CC. Posto je M program rugal-
ica, to mozemo zameniti MC sa CC u prethodnoj jednakosti i dobijamo
A(CC) = CC. Ovo znaci da A voli program CC. Dakle ukoliko je C bilo
koji program koji komponuje program A sa programom M, onda program
A voli program CC. Takode program A voli MC zato sto je MC isti
program kao i program CC.
2. Problem ,,egocentricnosti programa je sledeci: Program x se naziva ego-
centricnim ako voli samog sebe odnosno ako je rezultat izvrsavanja pro-
grama x, koji za ulaz ima program x, bas program x. Simbolicki zapisano:
xx = x. Treba dokazati da ako vaze uslovi C1 i C2, onda postoji bar jedan
program x koji je egocentrican.
Resenje:
Videli smo da uslovi C1 i C2 ukazuju na to da svaki program voli barem
jedan program. Ovo znaci da program M voli barem jedan program E.
Sada pokazujemo da program E mora da bude egocentrican. Program
ME jednak je programu E jer M voli E ali takode je ME = EE zato sto
je M program rugalica. Iz ovoga sledi da je EE = E cime smo pokazali
da je program E egocentrican.
3. Dva programa A i B su saglasna oko programa x ukoliko su rezultati
njihovog izvrsavanja na programu x isti, tj. Ax = Bx. Program A je sklon
saglasnosti ukoliko za svaki program B postoji barem jedan program x
oko koga su programi A i B saglasni. Sada razmatramo sledecu varijantu
problema 1 u kojoj vazi uslov C1 ali ne i uslov C2. Umesto toga dato je
da postoji program A koji je sklon saglasnosti. Da li je to dovoljno da se
garantuje da je svaki program voli barem jedan program?
Resenje:
Dato nam je da vazi uslov C1 i postoji program A koji je sklon saglasnosti.
-
2.3. Logicki problemi 27
Uzmimo bilo koji program x. Po uslovu C1 postoji program H koji kom-
ponuje program x sa programom A. Posto je A program sklon saglasnosti,
A i H su saglasni oko nekog programa y. Pokazacemo da program x mora
da voli Ay. Posto su A i H saglasni oko y to znaci da je Ay = Hy. Posto
H komponuje x sa A, vazi Hy = x(Ay). Dakle, Ay = Hy = x(Ay) pa
onda Ay = x(Ay) ili, sto je isto sto i x(Ay) = Ay. Ovo znaci da x voli
Ay.
4. Pitanje o programima sklonim saglasnosti. Pretpostavicemo da vaze uslovi
iz problema 1 i da su programi A, B i C takvi da C komponuje A sa B
kao i da je program C sklon saglasnosti. Dokazati da je program A takode
program sklon saglasnosti.
Resenje:
Dato nam je da program C komponuje programe A i B i da je C program
sklon saglasnosti, vazi i uslov C1. Uzmimo bilo koji program D, moramo
da pokazemo da su program A i program D saglasni oko nekog programa.
Posto vazi uslov C1 vazi da postoji program E koji komponuje program
D sa programom B. Takode C i E su saglasni oko nekog x, posto je
C program sklon saglasnosti. Znaci da vazi Cx = Ex, Ex = D(Bx) i
Cx = A(Bx), jer C komponuje A sa B. Dakle, posto je Ex = D(Bx),
imamo da je A(Bx) = D(Bx) pa su programi A i D saglasni oko Bx. Ovo
dokazuje da za bilo koji program D postoji program oko koga su A i D
saglasni, znaci A je program sklon saglasnosti.
5. Vezba kompozicije. Opet pretpostavimo da uslov C1 vazi. Dokazati da za
bilo koje programe A, B i C postoji program D takav da
x Dx = A(B(Cx))
Resenje:
Dakle uslov C1 vazi. Uzmimo bilo koje programe A, B i C. Neka je E
program koji komponuje B sa C, tj. za bilo koji program x vazi Ex =
B(Cx), pa je i A(Ex) = A(B(Cx)). Koriscenjem uslova C1 opet postoji
program D koji komponuje program A sa programom E. Ako u jednakosti
Dx = A(Ex) zamenimo Ex = B(Cx) dobijamo da je Dx = A(B(Cx)).
6. Kompatibilni programi. Dva programa A i B, bilo isti ili razliciti, se
nazivaju kompatibilnim ako postoje programi x i y, bilo isti ili razliciti,
takvi da vazi Ax = y i By = x. Dokazati da ako vaze uslovi C1 i C2, onda
su bilo koja dva programa A i B kompatibilna.
-
28 ODELjAK 2. SMALIJANOVI ZADACI
Resenje:
Posto vaze uslovi C1 i C2, svaki program voli barem jedan program po
problemu 1. Uzimamo bilo koje programe A i B. Po uslovu C1 postoji
program C koji komponuje A sa B. Program C voli neki program, npr.
program y. Odavde sledi Cy = y i Cy = A(By), zato sto program C
komponuje programe A i B. Dakle vazi A(By) = y. Ako uzmemo da je
x = By onda je Ax = y i By = x. Ovo je dokaz da su programi A i B
kompatibilni.
Dusica Radojevic
7. Beznadezni egocentrik. Videli smo ranije da je program B egocentrican
ako je BB = B. Program B nazivamo beznadeznim egocentrikom ako za
svaki program x vazi Bx = B. To znaci da kada B primenimo na bilo koji
program x dobijamo uvek program B. Kazemo da je program A fiksiran
na programu B ako za bilo koji program x vazi da je Ax = B. To znaci da
program A za bilo koji ulaz daje program B pa je program A beznadezni
egocentrik ako je fiksiran na samom sebi.
Neka je program K takav da za sve programe x i y vazi da je (Kx)y =
x. Ako u svetu programa postoji program K, onda za svaki pogram x
program Kx je fiksiran na x. Ako vaze uslovi C1 i C2 i postoji program
K, dokazati da postoji barem jedan program koji je beznadezni egocentrik.
Resenje:
Dati su nam uslovi C1 i C2. Iz toga sledi da svaki program voli bar jedan
program. Neka je A program koji je voljen od strane programa K, dakle
KA = A pa za svaki program x vazi da je (KA)x = Ax. Zbog svojstava
programa K vazi i (KA)x = A pa je Ax = A. Kako za svaki program x
vazi da je Ax = A, to je A beznadezni egocentrik.
8. Ako je program K egocentrican onda je beznadezno egocentrican. Dokazati.
Resenje:
Ako je program K egocentrican onda program K voli program K. Dokazali
smo u prethodnom zadatku da svaki program koji je voljen od strane
programa K mora biti beznadezni egocentrik. Dakle, K je beznadezno
egocentrican.
9. Ako postoji program K i za neki program x vazi da je program Kx ego-
centrican, onda program K voli program x.
Resenje:
Pretpostavimo da je program Kx egocentrican. To znaci da je (Kx)(Kx) =
Kx. Takode (Kx)(Kx) = x, jer za svaki program y, pa i za y = Kx, vazi
-
2.3. Logicki problemi 29
da je (Kx)y = x. Iz ovoga vidimo da su programi Kx i x identicni. To
znaci da program K voli program x.
10. Generalno, nije tacno da ako su programi Ax i Ay jednaki da su onda
i programi x i y jednaki. Ipak, ovo je tacno ako pretpostavimo da je
program A isto sto i program K. Dokazati da ako je program Kx jednak
programu Ky, onda je program x jednak programu y.
Resenje:
Ako postoji program K i jos pretpostavimo da je program Kx jednak
programu Ky, tada za svaki program z program (Kx)z jednak je programu
(Ky)z. Kako je (Kx)z = x i (Ky)z = y, to je x = (Kx)z = (Ky)z = y.
11. Dokazati da ako za proizvoljni program x, program K voli program Kx,
onda program K voli program x.
Resenje:
Pretpostavimo da program K voli program Kx, tj. K(Kx) = Kx. Po
prethodnom zadatku odavde sledi da je Kx = x, sto zaci da program K
voli program x.
12. Zasto je egocentrican program K izuzetno usamljen?
Resenje:
Pokazacem da jedini nacin da program K bude egocentrican jeste da bude
jedini program u svetu programa. Pretpostavimo da je program K egocen-
trican. Tada je program K beznadezni egocentrik na osnovu problema 8.
Neka su x i y bilo koji programi u svetu programa. Pokazacemo da je
program x jednak programu y. S obzirom da je program K beznadezni
egocentrik, tada je Kx = K i Ky = K, odakle sledi da je Kx = Ky.
Na osnovu zadatka 10, sledi da je x = y. Za bilo koja dva programa x i
y iz sveta programa vazi da su medusobno jednaki, pa su zbog toga svi
programi u svetu programa jednaki programu K koji se po pretpostavci
nalazi u tom svetu. Iz toga zakljucujemo da je K jedini program u svetu
programa.
13. Pretpostavimo da postoji program I (identitet) sa svojstvom da za svaki
program x vazi Ix = x. Pretpostavimo jos da svaki program voli barem
jedan program. Da li to znaci da je program I sklon saglasnosti?
Resenje:
Da, znaci. Neka je x proizvoljan program i neka je y voljen od strane
programa x, tj. xy = y. Takode je i Iy = y, pa su I i x saglasni oko
programa y.
-
30 ODELjAK 2. SMALIJANOVI ZADACI
14. Pretpostavimo da postoji program I koji voli svaki program, ali ne znamo
da li je on sklon saglasnosti ili ne. Pretpostavimo da je svaki par programa
kompatibilan u smislu definicije iz zadatka 6. Koji od sledecih zakljucaka
se moze valjano izvesti?
(a) Svaki program je normalan, tj. voli bar jedan program.
(b) Program I je sklon saglasnosti.
Resenje:
Zakljucak (a): Neka je I program identitet i neka su bilo koja dva pro-
grama kompatibilna. Neka je B proizvoljan program. Iz toga sto su B i I
kompatibilni sledi da postoje programi x i y takvi da je Bx = y i Iy = x.
Kako zbog svojstava programa I vazi Iy = y, to je x = y. Posto je i
Bx = y, odatle je Bx = x iz cega sledi da program B voli program x.
Zaklucak(b): Sledi iz zakljucka (a) i zadatka 13.
Nemanja Ilic
Neka je program L takav da za sve programe x i y vazi da je (Lx)y = x(yy).
15. Dokazati da ako postoje programi L i I, onda mora da postoji i program
M, rugalica.
Resenje:
Ako za bilo koji program x uzmemo program I, tada iz Ix = x i (Lx)y =
x(yy) sledi da je (LI)x = I(xx) = xx. Odavde vidimo da M mozemo da
definisemo kao LI.
16. Ako postoji L, treba dokazati da svaki program voli bar jedan program.
Resenje:
Ako je A proizvoljan program, treba naci B takav da je AB = B. Znamo
da vazi
x (LA)x = A(xx).Uzmimo da je x = LA. Dobijamo da je (LA)(LA) = A((LA)(LA)) sto
znaci da A voli (LA)(LA), pa za B mozemo uzeti program (LA)(LA).
17. Pokazati zasto je beznadezno egocentrican L ,,neobicno atraktivan.
Resenje:
Hocemo da pokazemo da ako za svaki program x vazi da je Lx = L,
onda za svaki program y vazi da je yL = L. Ukoliko za x uzmemo L
-
2.3. Logicki problemi 31
dobijamo da je LL = L pa je i yL = y(LL). Po osnovnim svojstvima
programa L imamo da je y(LL) = (Ly)L i jos iz pretpostavke da je L
beznadezno egocentrican sledi da je Ly = L i LL = L, pa na kraju
dobijamo yL = y(LL) = (Ly)L = LL = L.
18. Ako pretpostavimo da je program L razlicit od programa K, onda je
nemoguce da L voli K, tj. nemoguce je da je LK = K.
Resenje:
Pretpostavimo suprotno, tj. da je LK = K. Stoga je (LK)K = KK. Po
osnovnim svojstvima programa L imamo da je (LK)K = K(KK), pa je
i KK = K(KK). Po svojstvu leve kancelacije za K (videti problem 10)
odavde zakljucujemo da je K = KK, pa bi to znacilo da je K egocentrican.
Pomocu problema 12 bismo onda zakljucili da je K jedini program u svetu
programa a samim tim je i L = K, sto je suprotno pretpostavci.
19. Potrebno je dokazati da ako program K voli program L onda i svaki drugi
program voli program L.
Pomoc:
Za bilo koji program x, ako vazi da je Kx = x, onda mozemo da zakljucimo
da je xx = x, sta vise za svaki program y je xy = x. Ovo se lako pokazuje
jer je onda xy = (Kx)y = x po pretpostavci da je Kx = x i osnovnom
svojstvu programa K.
Resenje:
Treba dokazati da za svaki program x vazi da je xL = L. Po pomocnom
tvrdenju imamo da je LL = L, pa je i xL = x(LL). Po osnovnom svojstvu
programa L imamo da je x(LL) = (Lx)L, pa je znaci xL = (Lx)L. Po
pomocnom tvrdenju je Lx = L pa zakljucujemo da je xL = LL sto smo
videli da je jednako L. Dakle, xL = L.
20. Pretpostavimo da imamo program L u svetu programa. Samo iz ove
cinjenice mozemo dokazati da je bar jedan program egocentrican.
Resenje:
Treba da pokazemo da postoji program N takav da je NN = N . Po
problemu 16, uz L svaki program voli neki program. Neka LL voli program
y, tj. (LL)y = y. Iz resenja problema 16 vidimo da y mozemo definisati
kao (L(LL))(L(LL)). Po osnovnom svojstvu programa L imamo da je
onda i L(yy) = y. Odavde zakljucujemo da je (L(yy))y = yy a takode
-
je i (L(yy))y = (yy)(yy) sto zajedno daje (yy)(yy) = yy. Znaci da za N
mozemo uzeti yy, tj. ((L(LL))(L(LL)))((L(LL))(L(LL))).
2.4. Program Marko Adam
1. Potraga za mudracem. Pretpostavimo da u svetu programa vaze uslovi C1
i C2. Takode, pretpostavimo da postoji program A takav da za svako x
program Ax komponuje x sa M. Treba pokazati da tada postoji program
koji kada se primeni na proizvoljno x daje onaj program koji x voli. Takav
program oznacavamo sa i zovemo ga mudrac. Drugim recima vazi
x(x) = x.
Resenje:
Po pretpostavkama Ax je program koji komponuje x sa M, to jest, za sve
programe z vazi
Axz = x(Mz) = x(zz).
Kada umesto z zamenimo Ax dobijamo
Ax(Ax) = x((Ax)(Ax)),
sto pokazuje da x voli Ax(Ax), to jest M(Ax). Sada iskoristimo uslov
C1 i neka je program koji komponuje M sa A. Dakle, za proizvoljno x
vazi
x = M(Ax) = x(M(Ax)) = x(x),
pa je trazeni program.
Program ima veze s teoremom o fiksnoj tacki (videti odeljak 4.3). Naime,
on za dati program x trazi njegovu fiksnu tacku.
2.5. Dogovori o brisanju zagradaMladen Lazic
1. Izostavljanje zagrada. Zamislimo da za neke programe x, y i z napisemo
izraz xyz. Bez daljeg objasnjenja on je za nas dvosmislen jer ne mozemo
znati da li mislimo na (xy)z ili z(yz). Po konvenciji koja vlada u zajednici
koja se bavi kombinatornom logikom i -racunom, kad napisemo xyz,
mislimo na (xy)z. Znaci, kad su zagrade izostavljene, smatramo da su
asocirane ulevo. Ovo je tradicija kombinatorne logike koja, posle malo
prakse, omogucava da se kompleksni izraz lakse zapise. Kako bismo onda
protumacili izraz xyzw?
32
-
2.5. Dogovori o brisanju zagrada 33
Resenje:
Prvo cemo vratiti zagrade na poslednji levi deo, koji je xy, tako da je
xyzw zapravo (xy)zw, koji ispada da je ((xy)z)w. Zakljucujemo da je
xyzw jednostavno skracenica za ((xy)z)w.
Ukoliko se zagrade nalaze na sredini ili kraju izraza, konvencija se primen-
juje na sledeci nacin:
(a) x(yz)w = (x(yz))w
(b) x(yzw) = x((yz)w)
2. U svakom od sledecih primera, primenjuje se konvencija vracanja zagrada
ulevo:
(a) xy(zwy)v = ?
(b) (xyz)(wvx) = ?
(c) xy(zwv)(xz) = ?
(d) xy(zwv)xz = ? Uputstvo: Odgovor je razlicit od (c)!
(e) x(y(zwv))xz = ?
(f) Da li je tacno: xyz(AB) = (xyz)(AB) ?
(g) Pretpostavimo da je A1 = A2. Mozemo li zakljuciti da je BA1 =
BA2? Mozemo li zakljuciti da je A1B = A2B?
(h) Pretpostavimo da je xy = z, koji od sledecih slucajeva je tacan?
i. xyw = zw
ii. wxy = wz
Resenje:
(a) xy(zwy)v = ((xy)((zw)y))v
(b) (xyz)(wvx) = ((xy)z)((wv)x)
(c) xy(zwv)(xz) = ((xy)((zw)v))(xz)
(d) xy(zwv)xz = (((xy)((zw)v))x)z
(e) x(y(zwv))xz = ((x(y((zw)v)))x)z
(f) Tacno. Obe strane su ispravne, odnosno iste kao ((xy)z)(AB).
(g) Oba zakljucka su tacna.
(h) Pretpostavili smo da je xy = z, sledi:
i. xyw = zw? Po konvenciji je xyw = (xy)w a (xy)w = zw, pa je
ovo tacno.
ii. wxy = wz? Po konvenciji je wxy = (wx)y, pa ne mozemo za-
kljuciti wxy = wz.
-
34 ODELjAK 2. SMALIJANOVI ZADACI
2.6. Kombinator B i njegovi derivatiJana Protic i -Dorde Todorovic
U ovom poglavlju se upoznajemo s kombinatorom B. Za njega vazi formula
Bxyz = x(yz),
sto znaci da B prakticno spaja druga dva programa, pa zatim onda njihov
rezultat stavlja kao argument prvog.
1. Zasto je kombinator B vazan? Ako u svetu programa imamo B, onda
u njemu vazi osnovni zakon kompozicije, tj. pravilo C1 (videti prethodni
odeljak). Kombinator B nam omogucava da za bilo koja dva programa A
i B mozemo naci program C takav da za svaki program x vazi
A(Bx) = Cx.
Definisimo program C kao BAB. Za bilo koji program x ce vaziti
Cx = BABx = A(Bx)
i onda vidimo da BAB komponuje A sa B, sto je i trebalo pokazati.
2. Pretpostavimo da imamo na raspolaganju kombinatore B i M. Po prethod-
nom, vazi C1 a druga pretpostavka nam daje C2, pa rezonujuci kao u
problemu 1 iz prethodnog odeljka dobijamo da svaki program voli neki
program. Napisati izraz pomocu B, M i x koji opisuje program koji x
voli.
Poznato je da ako je y bilo koji program koji komponuje x sa M, onda x
voli yy. Sada, BxM komponuje x sa M i x mora voleti (BxM)(BxM).
To proveravamo na slede nacin :
(BxM)(BxM) = BxM(BxM) = x(M(BxM)) = x((BxM)(BxM)),
onda je
(BxM)(BxM) = x((BxM)(BxM))
sto je isto sto i
x((BxM)(BxM)) = (BxM)(BxM),
sto znaci da x voli (BxM)(BxM). Izraz (BxM)(BxM) mozemo krace
zapisati i kao M(BxM). Tako da zakljucujemo da x voli M(BxM).
-
2.6. Kombinator B i njegovi derivati 35
3. Ako imamo na raspolaganju kombinator B i rugalicu M mozemo zapisati
izraz za narcisa.
Kao sto znamo za svako x vazi da x voli M(BxM), ako uzmemo da je x
program M, onda M voli M(BMM). To jest, M(BMM) nam je kandidat
za narcisoidan program.
M(BMM) = (BMM)(BMM) = BMM(BMM) = M(M(BMM))
sto je onda jednako (M(BMM))(M(BMM)), pa iz toga zakljucujemo da
je M(BMM) narcis.
4. Ako imamo kombinator B, rugalicu M i kancelator K, napisati izraz
pomocu B, M i K za beznadezno narcisoidan program.
Posto za bilo koji program x, x voli M(BxM), sto zakljucujemo iz prob-
lema 2, onda kancelator K voli M(BKM). Uz pomocni dokaz koji smo
dali za problem 19 iz prethodnog odeljka, dobijamo da je M(BKM) bez-
nadezno narcisoidan zbog toga sto svaki program koji kancelator K voli
mora biti beznadezni narcis.
Zaboravicemo nakratko sve ostale kombinatore i fokusirati se samo na kombi-
nator B. Samo od ovog jednog kombinatora mozemo izvesti mnoge druge, koje
nazivamo njegovim derivatima. Nisu svi oni od velikog znacaja, ali neke od njih
cemo koristiti s vremena na vreme.
5. Jedan od veoma vaznih derivata kombinatora B je D takav da za bilo koje
programe x, y, z, w, vazi sledece :
Dxyzw = xy(zw).
Kombinator D se moze dobiti iz kombinatora B na sledeci nacin. Krecemo
od onoga sto treba da dobijemo:
Dxyzw = xy(zw)
Prema pravilu vracanja izostavljenih zagrada to je isto sto i
Dxyzw = (xy)(zw).
Ako sada (xy) posmatramo kao A, tj.
(xy)(zw) = A(zw) = BAzw
i kada vratimo (xy) umesto A, dobijamo
BAzw = B(xy)zw = BBxyzw.
Dakle, D mozemo definisati kao BB.
-
36 ODELjAK 2. SMALIJANOVI ZADACI
6. Definisimo pomocu B kombinator B1 takav da za bilo koje programe x,
y, z i w vazi sledeci uslov:
B1xyzw = x(yzw).
Posto smo vec nasli derivat D od B, sada mozemo slobodno da ga koris-
timo. Drugim recima svako D mozemo u resenju zameniti sa BB i dobiti
resenje koristeci samo B. Krenucemo sa resavanjem problema unazad
x(yzw) = x((yz)w) = Bx(yz)w.
Prepoznajemo da je Bx(yz) isto sto i DBxyz i onda je
Bx(yz)w = DBxyzw.
Odavde imamo da je
x(yzw) = DBxyzw
ili zbog simetrije jednakosti
DBxyzw = x(yzw).
Dakle, B1 mozemo definisati kao DB. Koristeci samo B, imamo da je
B1 = BBB.
7. Iz gornjih derivata kombinatora B mozemo dobiti kombinator E takav da
za bilo koje programe x, y, z, w, v, vazi
Exyzwv = xy(zwv).
Kao i malopre, E se moze dobiti samo pomocu B, ali nam je lakse kada
koristimo i prethodno definisane derivate od B. Konkretno, sad cemo ko-
ristiti kombinator B1, iz prethodnog zadatka.
Ponovo cemo problem resavati unatrag.
xy(zwv) = (xy)(zwv) = B1(xy)zwv.
Primecujemo da je
B1(xy) = BB1xy,
sto znaci da je
B1(xy)zwv = BB1xyzwv.
Znaci da E mozemo da definisemo kao BB1 = B(BBB).
-
2.6. Kombinator B i njegovi derivati 37
8. Definisimo derivat B2, koji zadovoljava sledeci uslov:
B2xyzwv = x(yzwv).
Pocevsi iz pocetka koristeci samo B dobijanje B2 se moze dosta zakomp-
likovati, ali koristeci E iz prethodnog zadatka vrlo je lako:
x(yzwv) = x((yzw)v) = Bx(yzw)v = EBxyzwv.
Znaci B2 mozemo definisati kao EB ili koristeci samo B kao B(BBB)B.
9. Definisimo derivat D1 koji zadovoljava sledeci uslov:
D1xyzwv = xyz(wv).
Sada koristimo derivat D.
xyz(wv) = (xy)z(wv) = D(xy)zwv
Primetimo da je
D(xy) = BDxy,
pa je onda
D(xy)zwv = BDxyzwv,
Znaci D1 mozemo definisati kao BD, odnosno samo pomocu B kao B(BB).
10. Definisimo derivat B3, koji zadovoljava sledeci uslov:
B3xyzw = x(y(zw)).
Koristimo derivat D1 iz prethodnog problema. Gledajuci na (zw) kao na
zasebnu jedinicu imamo
x(y(zw)) = Bxy(zw) = D1Bxyzw.
Znaci B3 mozemo definisati kao D1B, odnosno samo pomocu B kao
B(BB)B.
11. Definisimo derivat D2 koji zadovoljava sledeci uslov:
D2xyzwv = x(yz)(wv).
Gledajuci na (yz) kao zasebnu jedinicu imamo
x(yz)(wv) = Dx(yz)wv = DDxyzwv.
Znaci D2 mozemo definisati kao DD, odnosno samo pomocu B kao BB(BB).
-
38 ODELjAK 2. SMALIJANOVI ZADACI
S obzirom da smo pomocu kombinatora B dobili sedam novih kombinatora,
vidimo da je njegova uloga u kombinatornoj logici velika. Mogli smo ih dobiti i
vise, ali je ovo sasvim dovoljno da shvatimo njegov znacaj. Svi ovi kombinatori,
ukljucujuci i B spadaju u grupu kompozitora. Oni sluze da uvedu zagrade.
Jedina dva koja treba zapamtiti su kombinator B i njegov derivat D, oni se
cesto koriste u kombinatornoj logici.
2.7. Dupliranje i permutovanjeRelja Paunovic i Pavle Stepanic
Sada uvodimo program W koji je izuzetno bitan u kombinatornoj logici. Defi-
nisan je kao:
Wxy = xyy.
Ovaj program ne treba mesati s programom L koji je definisan kao:
Lxy = x(yy).
Ta dva programa imaju potpuno razlicitu ulogu! Sada cemo se baviti nekim
osobinama programa W.
1. Pokazati da se program M moze dobiti samo koriscenjem programa I i W.
Resenje:
Vidi se da je WI program rugalica zato sto vazi: WIx = Ixx = xx, za
bilo koji program x.
2. Pokazati da se program I moze dobiti samo koriscenjem programa K i W.
Resenje:
Program WK je program identitet posto vazi: WKx = Kxx = x, za
svaki program x.
3. Pokazati da ako postoji W i K mora postojati i M.
Resenje:
Koriscenjem znanja stecenog u prethodna dva zadatka program W(WK)
je rugalica. Hajde da to i proverimo: W(WK)x = WKxx = (WKx)x =
(Kxx)x = xx. Ovo vazi za bilo koje x.
Sledeci na redu su programi C, T, R, F i V. Oni spadaju u grupu permu-
tujucih programa. Definisani su na sledeci nacin:
Cxyz = xzy
Txy = yx
Rxyz = yzx
-
2.7. Dupliranje i permutovanje 39
Fxyz = zyx
Vxyz = zxy
Sada cemo se pozabaviti problemima vezanim za ove programe.
4. Pokazati da ako postoje C i K postoji i I.
Resenje:
Pokazacemo da je za proizvoljan program A, program CKA program iden-
titet. To je zato sto za proizvoljno x vazi CKAx = KxA = x. Ako
hocemo da budemo konkretni, mozemo A da zamenimo sa C ili K. Dakle,
I mozemo da definisemo kao CKC ili kao CKK.
5. Ako postoje C i I pokazati da se od njih moze dobiti program T.
Resenje:
Program CI je T zato sto za bilo koja dva programa x i y vazi, CIxy =
Iyx = yx.
6. Za dva programa x i y se kaze da komutiraju ako vazi xy = yx. Pokazati da
ako postoji T i ako svaki program voli neki program, onda mora postojati
bar jedan program A koji komutira sa svim programima.
Resenje:
Iz teksta zadatka zakljucujemo da program T voli neki program. Neka je
to program A (TA = A). Odatle vidimo da za bilo koji program x vazi,
TAx = Ax. Takode, iz definicije programa T, vazi TAx = xA, pa za
svako x vazi Ax = xA.
7. Pokazati da je R derivat B i T.
Resenje:
Ovaj problem resicemo unazad: yzx = Tx(yz). Znamo da je Tx(yz) =
BBTxyz, odakle zakljucujemo da je R = BBT.
8. Koriscenjem samo programa R mozemo dobiti C, kako?
Resenje:
Ovaj problem takode resavamo unazad. Zelimo da xzy vratimo u poziciju
xyz. Primenjivanjemo R vise puta i dobijamo xzy = Ryxz = RxRyz =
RRRxyz, iz cega zakljucujemo da je C = RRR.
9. (a) Pokazati da je Cx = RxR.
Resenje:
Cx = RRRx = RxR.
-
40 ODELjAK 2. SMALIJANOVI ZADACI
(b) Pokazati da je Cx = B(Tx)R.
Resenje:
Posto je Cx = RxR i R = BBT, onda je Cx = BBTxR =
B(Tx)R.
10. Pokazati da se F moze dobiti kao derivat B, R i C a takode i samo pomocu
B i R.
Resenje:
Problem cemo resiti unazad: zyx = Rxzy = (Rx)zy = C(Rx)yz =
BCRxyz, pa mozemo da definisemo F kao BCR. Za drugi deo zadatka
iskoristimo zadatak 8.
11. Pokazati da se F moze dobiti koriscenjem samo T i E
Resenje:
Problem resavamo unazad: zyx = Tx(zy) = Tx(Tyz) = ETxTyz =
(ETx)Tyz = TT(ETx)yz = ETTETxyz, pa F mozemo definisati kao
ETTET.
12. Pokazati da se V moze dobiti kao derivat C i F.
Resenje:
Problem resavamo unazad: zxy = Fyxz = CFxyz. Iz ovoga se vidi da se
V moze definisati kao CF.
2.8. Asociranje i dupliranje zajednoIva Milic i Andja Lilic
Sada se okrecemo novoj interesantnoj familiji programa koji nam omogucuju da
ujedno i stavljamo u zagradu i permutujemo redosled programa. Videcemo da
se svi mogu prikazati preko programa B i T.
1. Program Q, sa kojim se sada srecemo, je najbitniji i on ce kasnije definisati
neke nove programe iz ove familije. On zadovoljava sledeci uslov:
Qxyz = y(xz).
Kao sto mozemo primetiti Q prouzrokuje i permutovanje, tj. zamenu re-
dosleda x i y, i stavljanje u zagradu. Za razliku od kombinatora B kod
koga je Bxy kompozicija x sa y, ovde je Qxy kompozicija y sa x.
Kombinator Q mozemo prikazati preko kombinatora B i kombinatora C
na sledeci nacin:
y(xz) = Byxz = CBxyz,
-
2.8. Asociranje i dupliranje zajedno 41
tako da ga mozemo definisati kao Q = CB. Ako bismo ga prikazali samo
preko kombinatora B i T, tada bi bilo
Q = CB = RRRB = RBR = BBTBR = B(TB)R = B(TB)(BBT).
2. Sledeci program je jedan od bitnijih iz ove familije. Obelezava se sa Q1 a
zadovoljava sledeci uslov:
Q1xyz = x(zy).
Program Q1 je takode derivat od B i T, i to mozemo pokazati kao:
x(zy) = Bxzy = CBxyz = BCBxyz.
Dakle, Q1 mozemo da definisemo kao BCB.
3. Program Q2 je jos jedan iz ove familije. On zadovoljava sledeci uslov:
Q2xyz = y(zx).
Mozemo napisati da je
y(zx) = Byzx = RBxyz,
odatle sledi da je
Q2 = RB = 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 Q1 onda
postoji i Q2 i obrnuto.
Resenje:
Ako pretpostavimo da u svetu postoji kombinator C i:
(a) ako postoji kombinator Q1, tada CQ1 radi isto sto i kombinator Q2:
CQ1xyz = Q1yxz = y(zx).
(b) ako postoji kombinator Q2, tada CQ2 radi isto sto i kombinator Q1:
CQ2xyz = Q2yxz = x(zy).
-
42 ODELjAK 2. SMALIJANOVI ZADACI
5. Kombinator Q3 je sledeci iz ove familije. On zadovoljava sledeci uslov:
Q3xyz = z(xy).
Lako je pokazati da je Q3 derivat kombinatora B i T
z(xy) = T(xy)z = BTxyz.
Dakle, mozemo ga definisati kao BT, ali ako iskoristimo:
z(xy) = Bzxy = VBxyz,
onda ga mozemo definisati i kao VB.
6. Kombinator Q4 je poslednji iz ove familije kojeg cemo spomenuti. On
zadovoljava sledeci uslov:
Q4xyz = z(yx).
Ukoliko hocemo da ga dobijem kao derivat kombinatora B i T iskoristicemo:
z(yx) = Bzyx = FBxyz,
pa ga mozemo definisati kao FB.
7. Ukoliko u svetu programa postoji kombinator C, tada ne mozemo imati
kombinator Q3 ako nemamo kombinatora Q4 i obrnuto.
Resenje:
Ako pretpostavimo da kombinator C postoji i:
(a) ako je kombinator Q3 postoji, tada CQ3 ima svojstva kobinatora Q4:
CQ3xyz = Q3yxz = z(yx).
(b) ako je kombinator Q4 postoji, tada CQ4 ima svojstva kobinatora Q3:
CQ4xyz = Q4yxz = z(xy).
8. Da li se kombinator Q4 moze zapisati pomocu kombinatora Q1 i T?
Resenje:
Da, moguce je jer imamo
Q1Txyz = T(yx)z = z(yx).
Dakle, Q4 mozemo zapisati kao Q1T.
-
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 definisati kao BBC.
2.9. Razlicite baze programaMilos 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 moze izraziti preko baze B, T i M. U dokazuse moze koristiti pomocni program M2xy = xy(xy), za koji se zna da je
M2 = BM.
Resenje:
Lakse nam je da dokazemo da se W moze izraziti preko baze R, M i B, azatim koristeci R = BBT, lako prelazimo na bazu B, M i T. Postupkom
unazad polazimo od Wxy = yxx. Mozemo da primetimo da je yxx =Rxyx. Posmatrajuci Rx kao jedan argument mozemo da zakljucimo da
je (Rx)yx = RxRxy a na osnovu definicije M2 mozemo da vidimo da je
RxRxy = M2Rxy. Kada zamenimo M2 dobijamo W = BMR, odnosno
kada zamenimo R dobijamo W = BM(BBT).
5. Dokazati da se uz pomoc programa R, M, B i C moze izraziti program W.
-
2.9. Razlicite baze programa 45
Resenje:
Postupkom unazad polazimo od Wxy = xyy. Koristeci pomocni program
W, mozemo da primetimo da je xyy = Wyx, a zatim da je Wyx =CWxy. Odavde vidimo da je W = CW, odnosno na osnovu prethodnogprimera W = C(BMR).
6. Dokazati da se program W moze izraziti uz pomoc baze B, T i M.
Resenje:
Iz prethodnog primera smo videli da je W = CW. Koristeci jednakostCx = B(Tx)R kada x zamenimo sa W dobijamo Cx = B(TW)R. Izprethodnih 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 imajuistu funkciju kao i W, da udvostruce krajnji argument. Jedina razlika je u tome
sto imaju vise argumenata. Za W vazi Wxyz = xyzz, a Wxyzw = 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 = Cxyyz(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 i njim delovati na prva tri argumenta. Znaci,Cxyyz = WCxyz. Od ranije znamo da je W = BW i C = BC, pacemo to primeniti u nasem dokazu. Dakle, H = BW(BC).
9. Treba pokazati da se W moze izraziti pomocu baze H, C, odnosno pomocu
baze H, R.
-
46 ODELjAK 2. SMALIJANOVI ZADACI
Resenje:
Kako bismo ovo lakse pokazali, koristicemo Wxy = yxx. Postupkomunazad yxx = Rxyx = HRxy, pa je W = HR. Kako je W = CW,dobijamo da je W = C(HR). Slicno, W = RWR, 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 G dobijamo
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 daje Gxyzz = WGxyz. Kako je W = B(BW) i G = BBC, dobijamoda je S = B(BW)(BBC).
11. Treba pokazati da pomocu S i R mozemo dobiti H.
Resenje:
Kako je Hxyz = xyzy, pocinjemo sa xyzy = (xy)zy = Ry(xy)z. Prime-
timo da je y na drugom i cetvrtom mestu, sto nam govori da Ry(xy)
mozemo dobiti primenom S na sledeci nacin Ry(xy) = SRxy. Time smo
pokazali da je H = SR.
12. Pokazati da pomocu S i R odnosno pomocu S i C mozemo izraziti W.
Resenje:
Pokazali smo da je W = R(HR)R i u prethodnom zadatku H = SR.
Zamenom H dobijamo W = R(SRR)R. Ovim smo pokazali da W moze
da se izrazi pomocu S i R.
Da bismo pokazali da se W moze dobiti pomocu S i C koristicemo da
je W = C(HR), sto smo ranije pokazali. Prvo cemo zameniti H, cime
dobijamo W = C(SRR). Kako je R = CC, zamenom u prethodnom
izrazu dobijamo C(SRR) = C(S(CC)(CC)).
13. Pokazali smo da je W izraziv pomocu S i C, a C je izraziv pomocu B i T.
-
right-head 47
Dakle, W je izraziv pomocu B, T i S. Pokazati da B tu nije neophodan,
to jest da se W moze izraziti pomocu T i S.
Resenje:
Dokaz da se W moze izraziti pomocu B, T i S mozemo dobiti kada u W =
C(S(CC)(CC)), zamenimo C sa B(T(BBT))(BBT). Ovim dobijamo
izraz od cetrdeset jednog slova.
Neocekivano, pokazacemo da se W moze izraziti pomocu samo T i S na
jednostavniji nacin. Kako je Wxy = xyy krenucemo od xyy. Pomocu T
imamo da je xyy = Ty(xy) a pomocu S imamo da je Ty(xy) = STxy.
Dakle, mozemo uzeti da je W = ST.
14. Imamo T i S, treba pokazati da M mozemo izvesti pomocu njih.
Resenje:
Ranije smo pokazali da je M = WT, a u prethodnom zadatku smo dobili
da je W = ST, zamenom dobijamo da je M = STT.
-
3. Fiksna tacka3.1. Kombinatorni programiNemanja Subotic
Pre no sto se osvrnemo na mudre programe, recicemo nesto o kombinatornim
programima uopste. Pod programom reda 1 podrazumevamo program A takav
da se za svaki program x, program Ax moze izraziti samo preko programa x.
Na primer, program M je reda 1 posto je Mx = xx. Drugi primer je program
I, posto je Ix = x. Programi M i I su jedini programi reda 1 koje smo do sada
radili.
Naravno, mogli bismo izgraditi od programa koje smo do sada radili mnogo
programa reda 1. Na primer, ako bismo hteli da napravimo program A takav
da je Ax = x(xx), onda bi to bio program WL. Takode, mozemo napraviti
program A takav da je Ax = (x(xx))((xxx)x) i on bi takodje bio reda 1.
Pod programom reda 2 podrazumevamo program A takav da se Axy moze
izraziti samo preko programa x i y. Primeri program drugog reda su W, T i L.
Program reda 3 je program A cija definicija ukljucuje tri promenjivex, y i
z. Tako da se program Axyz moze izraziti samo preko programa x, y i z. Vecina
programa koje smo do sada radili su reda 3, na primer programi B, C, R, F,
V i Q. Na slican nacin definisemo programe reda 4, 5, 6, 7, 8 i tako dalje.
Program koji ima neki red naziva se pravi kombinatorni program ili krace,
pravi kombinator. Pod kombinatornim programom ili samo kombinatorom po-
drazumeva se program koji se moze izraziti preko pravih kombinatora. Nije
svaki kombinatorni program pravi kombinator. Na primer programi T i I su
pravi kombinatori, stoga je TI je kombinator, ali nije pravi. Ako bi bio pravi,
kog reda bi bio? Nije reda 1, jer TIx mozemo svesti na xI, ali ne mozemo dalje.
Program TIxy mozemo izraziti kao xIy, ali se nismo oslobodili prisustva I, tako
da TI nije reda 2. Najbolje sto mozemo uciniti s TIxyz je da ga izrazimo kao
xIyz. Dakle, bez obzira koliko promenljivih dodajemo zdesna uz TI, nikako se
ne mozemo otarasiti I, pa program TI nije nijednog reda. Sledi da to nije pravi
kombinator. S druge strane, program IT jeste pravi kombinator jer je IT = T,
pa je on drugog reda kao i kombinator T.
3.2. Jos o programu O programu smo govorili u odeljku 2.4. On je takav da za bilo koji program
x, ako x primenimo na x dobijamo x. Znaci da on pronalazi program
koji x voli. Programi nije pravi kombinator! Medutim, on se na razlicite
nacine moze izraziti pomocu pravih kombinatora. U odeljku 2.4 nismo napravili
program , vec smo samo pokazali da pod odredenim uslovima on mora da
48
-
3.2. Jos o programu 49
postoji. Sada cemo videti kako ga mozemo definisati u odnosu na razlicite baze
pravih kombinatora.
1. Izvesti program pomocu programa B, M i R.
Resenje:
U resenju zadatka iz odeljka 2.4 smo videli da ako je program y kompozicija
programa x i M, onda program x voli yy. Posto je BxM kompozicija x sa
M, jer je BxMy = x(My), to znamo da x voli BxM(BxM), odnosno x
voli M(BxM). Dakle, ako nademo tako da je x = M(BxM), zadatak
je resen.
Posto je
M(BxM) = M(RMBx) = BM(RMB)x,
to za mozemo uzeti BM(RMB).
2. Mozete li pronaci jednostavnu definiciju programa pomocu programa
B,M i L?
Resenje:
U sesnaestom zadatku iz odeljka 2.3 smo pokazali da za svako x vazi da x
voli Lx(Lx). Posto je
Lx(Lx) = M(Lx) = BMLx,
to se moze definisati kao BML.
3. Pokazati da se program moze izvesti pomocu programa Q, W i L.
Resenje:
Opet koristimo cinjenicu da x voli Lx(Lx). Sada imamo
Lx(Lx) = QL(Lx)x = QL(QL)xx = W(QL(QL))x,
pa mozemo definisati kao W(QL(QL)).
4. Posebno uredna konstrukcija programa koristi samo programe Q i M.
Diskusija: Pod regularnim kombinatorom podrazumevamo pravi kombi-
nator takav da, po svojoj definiciji, najlevlja promenljiva, recimo x, na
levoj strani jednakosti je takode najlevlja na desnoj strani, i pojavljuje
se samo jednom na desnoj strani. Na primer, program C je regularan;
Cxyz = xyz, i x je najlevlja promenljiva i javlja se samo jednom u izrazu
xyz. S druge strane, program R nije regularan; Rxyz = yzx, i x nije
najlevlja promenljiva izraza yzx. Takode M nije regularan, zato sto se
x pojavljuje dvaput u xx. Kombinatori B, C, W, L, S, I i K su svi
regularni; kombinatori T, R, F, V, i Q nisu.
-
50 ODELjAK 3. FIKSNA TACKA
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 definisati kao QLM. Po trecem
zadatku iz odeljka 2.9 imamo da se L moze definisati kao QM pa dobijamo
izraz Q(QM)M koji definise kombinator .
5. Pokazati da program moze biti izveden iz programa S i L.
Resenje:
Posto je Lx(Lx) = SLLx, to mozemo definisati kao SLL.
6. Pokazati da program moze biti izveden iz programa B, W i S.
Resenje:
Pokazali smo da SLL definise program . Takode vazi SLL = WSL,
pa i WSL definise . Po drugom zad