<?xml version="1.0" encoding="utf-8"?>
<Gradivo ID="29468" NadgradivoID="0" NRID="8739376" OceID="0" DomainUrl="https://repozitorij.uni-lj.si/" IzpisPolniUrl="https://repozitorij.uni-lj.si/IzpisGradiva.php?lang=slv&amp;id=29468" StOgledov="2917" StPrenosov="623" StOcen="0" VsotaOcen="0" DatumIzvoza="2026-09-15 22:53:33" OcenaSkupna="0" StPodgradiv="0" StudijskiProgramEvsID="1000468" JeIndeksirano="0" JeVecAvtorjev="0" DovoliZahtevkeZaDostop="0">
  <PID Url="http://hdl.handle.net/20.500.12556/RUL-29468">20.500.12556/RUL-29468</PID>
  <Naslov>Preverjenje pravilnosti programov z odvisnimi tipi v programskem jeziku Idris</Naslov>
  <Podnaslov></Podnaslov>
  <TujJezik_Naslov>Verifying correctness of programs with dependent types in Idris programming language</TujJezik_Naslov>
  <TujJezik_Podnaslov></TujJezik_Podnaslov>
  <Opis>Formalno dokazovanje pravilnosti programov se v ključnih primerih izvaja ročno.  Programski jeziki z odvisnimi tipi kot logična ogrodja predstavljajo  avtomatizirano alternativo ročnemu preverjanju pravilnosti. V tem diplomskem delu obravnavamo sisteme tipov ter programske jezike  z odvisnimi tipi. Predstavimo programski jezik Idris, ki podpira poljubno kompleksne odvisne tipe. Pokažemo, kako izjave pretvoriti v tipe funkcij in jih z implementacijo funkcij dokazati, pravilnost pa avtomatsko preverja prevajalnik. S pomočjo odvisnih tipov podamo avtomatsko preverjene implementacije podatkovnih struktur seznam, sklad in vrsta. Poglobimo se v algoritem urejanja z vstavljanjem.  Z dokazom linearne urejenosti naravnih števil dokažemo, da je njegov izhod urejen seznam, z dokazom permutiranosti  pa pokažemo, da je izhodni seznam permutacija vhodnega.</Opis>
  <TujJezik_Opis>Formal verification of program correctness in mission critical applications is still done manually. Programming languages with dependent types used as logical frameworks present an alternative to manual verification of correctness. In this thesis we deal with type systems and programming languages with dependent types. We introduce the Idris programming language which supports arbitrarily complex dependent types. We show how to translate propositions into function types and how to prove them by implementing the functions. Correctness is then automatically verified by the compiler. With use of dependent types we provide automatically  verified implementations of data structures like list, stack and queue. To demonstrate usefulness of dependent types we provide automatically verified implementation of insertion sort algorithm.  We prove sortedness with linear order of natural numbers and also that the output list is a permutation of the input list.</TujJezik_Opis>
  <KljucneBesede>
    <Beseda>odvisni tipi</Beseda>
    <Beseda>pravilnost programov</Beseda>
    <Beseda>programski jezik Idris</Beseda>
  </KljucneBesede>
  <TujJezik_KljucneBesede>
    <Beseda>dependent types</Beseda>
    <Beseda>program correctness</Beseda>
    <Beseda>Idris programming language</Beseda>
  </TujJezik_KljucneBesede>
  <Potrjeno>true</Potrjeno>
  <JeZaklenjeno>false</JeZaklenjeno>
  <JeRecenzirano>false</JeRecenzirano>
  <Zaloznik></Zaloznik>
  <Izvor></Izvor>
  <Jezik ID="1060" ISO639-3="slv">Slovenski jezik</Jezik>
  <TujJezik ID="1033" ISO639-3="eng">Angleški jezik</TujJezik>
  <Povezave></Povezave>
  <Pokrivanje></Pokrivanje>
  <CasovnoPokritje></CasovnoPokritje>
  <AvtorskePravice></AvtorskePravice>
  <VrstaGradiva ID="mb11" DRIVER="info:eu-repo/semantics/bachelorThesis">Diplomsko delo/naloga</VrstaGradiva>
  <DatumVstavljanja>2014-09-16 15:45:01</DatumVstavljanja>
  <DatumObjave>2014-09-16 15:45:01</DatumObjave>
  <DatumSpremembe>2022-08-01 10:42:18</DatumSpremembe>
  <DatumTrajnegaHranjenja>0000-00-00 00:00:00</DatumTrajnegaHranjenja>
  <LetoIzida>2014</LetoIzida>
  <LetoIzidaDo>0</LetoIzidaDo>
  <KrajIzida></KrajIzida>
  <LetoIzvedbe>0</LetoIzvedbe>
  <KrajIzvedbe></KrajIzvedbe>
  <Opomba></Opomba>
  <StStrani></StStrani>
  <StevilcenjeNivo1></StevilcenjeNivo1>
  <StevilcenjeNivo2></StevilcenjeNivo2>
  <Kronologija></Kronologija>
  <Patent_Stevilka></Patent_Stevilka>
  <Patent_DatumVeljavnosti>0000-00-00</Patent_DatumVeljavnosti>
  <VerzijaDokumenta>NiDoloceno</VerzijaDokumenta>
  <StatusObjaveDrugje>NiDoloceno</StatusObjaveDrugje>
  <VrstaStroskaObjave>NiDoloceno</VrstaStroskaObjave>
  <DatumPoslanoVRecenzijo>0000-00-00</DatumPoslanoVRecenzijo>
  <DatumSprejetjaClanka>0000-00-00</DatumSprejetjaClanka>
  <DatumObjaveClanka>0000-00-00</DatumObjaveClanka>
  <EmbargoDo></EmbargoDo>
  <VrstaEmbarga ID="1" Naziv="Takojšnja javna objava" OpenAIREDostop="openAccess"></VrstaEmbarga>
  <Osebe>
    <Oseba ID="28215" Ime="Blaž" Priimek="Repas" AltIme="" VlogaID="70" VlogaNaziv="Avtor" ConorID="" Afiliacija="" ArrsID="0" ORCID=""></Oseba>
    <Oseba ID="23619" Ime="Jurij" Priimek="Mihelič" AltIme="Jurij Mihelic; Jurij Mihellič; Jurij Mihehič" VlogaID="991" VlogaNaziv="Mentor" ConorID="22912099" Afiliacija="" ArrsID="22475" ORCID=""></Oseba>
  </Osebe>
  <Identifikatorji>
    <Identifikator ID="16" Sifra="VisID" Naziv="VisID" URL="">14461</Identifikator>
  </Identifikatorji>
  <Datoteke>
    <Datoteka ID="29464" DatotekaNRID="8395396" NamenDatotekeID="2" NamenDatoteke="Predstavitvena datoteka" FormatDatotekeID="2" FormatDatoteke=".pdf" MIME="application/pdf" IkonaFormata="pdf.png" IkonaFormataPolniUrl="https://repozitorij.uni-lj.si/teme/rulDev/img/fileTypes/pdf.png" VelikostDatoteke="429715" VelikostDatotekeKratko="419,64 KB" DatumVstavljanja="2014-09-16 15:45:01" JeZbrisana="false" JeJavnoVidna="true" JeIndeksirana="true" JeVidno="true" VidnoOd="01.01.1970" Zaporedje="0">
      <Naziv>63110341-20140908153452-diploma_Repar.pdf</Naziv>
      <OrgNaziv>63110341-20140908153452-diploma_Repar.pdf</OrgNaziv>
      <URL></URL>
      <Opis></Opis>
      <OpisTujJezik></OpisTujJezik>
      <UrlObdelave></UrlObdelave>
      <FrekvencaAzuriranjaID>1</FrekvencaAzuriranjaID>
      <Verzija></Verzija>
      <MD5>3755D6CF290C4A0B7B2A48786EBF280B</MD5>
      <SHA256>eb39a5d09cf25abc15021412afa859a5d5418f56d980636412c09ecbf67b386d</SHA256>
      <UUID>4a4cd3d9-a1a8-11eb-a523-00155dcfd717</UUID>
      <PID>20.500.12556/rul/4ad7598e-6bd2-483a-a97e-042b2e3c1bee</PID>
      <PrenosPolniUrl>https://repozitorij.uni-lj.si/Dokument.php?lang=slv&amp;id=29464</PrenosPolniUrl>
      <Vsebine>
        <Vsebina TipVsebine="GoloBesedilo" JezikID="1060" Oznaka="" Dolzina="125976"></Vsebina>
      </Vsebine>
    </Datoteka>
  </Datoteke>
  <Organizacije>
    <Organizacija OrganizacijaID="25" Kratica="FRI" ZavodEvsID="0000066" Logo="" LogoPolniUrl="https://repozitorij.uni-lj.si/teme/rulDev/img/logo/">Fakulteta za računalništvo in informatiko</Organizacija>
  </Organizacije>
  <OrganizacijeVira>
  </OrganizacijeVira>
  <MetodeZbiranjaPodatkov>
  </MetodeZbiranjaPodatkov>
  <TipologijaDela ID="0" Koda="0" Naziv="Ni določena" SchemaOrg="CreativeWork"></TipologijaDela>
  <Ostalo>
    <StIrodsDatotek>0</StIrodsDatotek>
    <StDatotekPodTrajnimEmbargom>0</StDatotekPodTrajnimEmbargom>
    <StDatotekZOmejenimDostopom>0</StDatotekZOmejenimDostopom>
  </Ostalo>
</Gradivo>
