Obliczenia i wnioskowanie w systemie Coq

Język wykładowy Angielski
Semestr Letni
Status W ofercie
Opiekun Małgorzata Biernacka
Liczba godzin 16 (wyk.) 30 (prac.) 12 (sem.)
Rodzaj I2.Z - zastosowania inf.
ECTS 6
Polecany dla I roku Nie
Egzamin Tak
Tagi JP (języki programowania i logika)

Opis przedmiotu:

W ciągu ostatnich 30 lat rozwoju informatyki pojawiło się wiele narzędzi umożliwiających formalizację i mechaniczną (a dla pewnych klas problemów automatyczną) weryfikację twierdzeń dotyczących zarówno teorii matematycznych, jak i np. programów komputerowych. Jednym z powszechnie używanych obecnie systemów wspomagających dowodzenie twierdzeń jest system Coq (<http://coq.inria.fr/>), oparty na rachunku konstrukcji z definicjami indukcyjnymi. Coq pozwala na definiowanie funkcji i predykatów, wyrażanie twierdzeń matematycznych i specyfikacji oprogramowania, a także na interakcyjne przeprowadzanie formalnych, weryfikowanych przez system dowodów takich twierdzeń oraz generowanie certyfikowanego kodu. Celem wykładu jest wyposażenie studentów w umiejętność praktycznego wykorzystania narzędzi wspierających dowodzenie - takich jak Coq - do modelowania i weryfikacji zagadnień z różnych obszarów informatyki. Plan: 1\. Podstawy systemu Coq i interaktywnego dowodzenia twierdzeń. 2\. Omówienie wybranych formalizacji (np. certyfikowany kompilator C, dowód twierdzenia o 4 kolorach, protokoły kryptograficzne) - przewidywane są prezentacje wybranych zagadnień przez studentów. 3\. Projekty studenckie. Wymagania **:** Logika dla informatyków, przyda się znajomość jakiegoś języka funkcyjnego