Lambda Uvod

download Lambda Uvod

of 87

  • date post

    16-Oct-2015
  • Category

    Documents

  • view

    101
  • download

    0

Embed Size (px)

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 of Lambda Uvod

  • 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