Weryfikacja programów w systemie Coq 2

Język wykładowy Polski
Semestr Letni
Status Poddana pod głosowanie
Opiekun Dariusz Biernacki
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj I2.T - teoria inf.
ECTS 6
Polecany dla I roku Nie
Egzamin Tak
Tagi JP (języki programowania i logika)

Opis przedmiotu:

Kontynuacja przedmiotu [Weryfikacja programów w systemie Coq](https://zapisy.ii.uni.wroc.pl/offer/3475-weryfikacja-programow-w-systemie-coq/), która również jest realizowana w oparciu o podręcznik [Software Foundations](https://softwarefoundations.cis.upenn.edu). Tematy poruszane w ramach przedmiotu: - formalizacja wybranych zagadnień teorii języków programowania opartych na rachunku lambda ([Programming Language Foundations](https://softwarefoundations.cis.upenn.edu/plf-current/index.html)), - weryfikacja wybranych funkcyjnych algorytmów i struktur danych ([Verified Functional Algorithms](https://softwarefoundations.cis.upenn.edu/vfa-current/index.html)), - weryfikacja wybranych programów w języku C z wykorzystaniem Verified Software Toolchain ([Verifiable C](https://softwarefoundations.cis.upenn.edu/vc-current/index.html)), - jeśli czas pozwoli, spojrzenie na zastosowania współbieżnej logiki separacyjnej wyższego rzędu ([Iris Project](https://iris-project.org)). Wymagania wstępne: znajomość Coqa na poziomie podręcznika [Logical Foundations](https://softwarefoundations.cis.upenn.edu/lf-current/index.html), logiki Hoare'a na poziomie [Programming Language Foundations](https://softwarefoundations.cis.upenn.edu/plf-current/index.html), a także logiki separacyjnej na poziomie [Separation Logic Foundations](https://softwarefoundations.cis.upenn.edu/slf-current/index.html). Jest to przedmiot zaawansowany, wymagający czynnego udziału od uczestników. W szczególności, część wykładów może zostać zrealizowana w formie prezentacji studenckich.