Závislé typy a specifikace v teorii typů
Dependent Types and Specification in Type Theory
Typ dokumentu
bakalářská prácebachelor thesis
Autor
Marika Slouková
Vedoucí práce
Dostál Matěj
Oponent práce
Horčík Rostislav
Studijní obor
Základy umělé inteligence a počítačových vědStudijní program
Otevřená informatikaInstituce přidělující hodnost
katedra kybernetikyPráva
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Zobrazit celý záznamAbstrakt
Vývoj softwaru, který je nejen funkční, ale i formálně prokazatelně korektní, je klíčovou výzvou v informatice. V této bakalářská práce se zaměřujeme na formální dokazování korektnosti algoritmů pomocí důkazového asistenta Coq a jazyka Gallina. Po úvodním zkoumání teoretických základů a významu silných typových systémů implementujeme dva třídicí algoritmy, Insertion sort a Merge sort, v jazyce Coq. Provádíme formální důkaz jejich korektnosti a porovnáváme tento proces s klasickými metodami dokazování. Použití Coqu poskytuje vysokou míru jistoty ohledně správnosti implementace, což je zásadní pro kritické aplikace. Oproti tomu klasické metody dokazování poskytují hlubší vhled do algoritmických principů. Práce přispívá k lepšímu pochopení formálních metod v softwarovém inženýrství a ilustruje jejich praktické použití. The development of software that is not only functional but also formally provably correct is a key challenge in computer science. This bachelor's thesis focuses on the formal verification of algorithm correctness using the Coq proof assistant and the Gallina language. After an initial examination of theoretical foundations and the significance of strong type systems, two sorting algorithms, Insertion sort and Merge sort, are implemented in Coq. Formal proofs of their correctness are conducted and compared with classical methods of verification. The use of Coq provides a high level of certainty regarding the correctness of implementation, which is crucial for critical applications. On the other hand, classical methods of verification offer a deeper insight into algorithmic principles. This work contributes to a better understanding of formal methods in software engineering and demonstrates their practical application.
Kolekce
- Bakalářské práce - 13133 [777]