Grants
-
Od silnych logik deskrypcyjnych do fragmentów logiki pierwszego rzędu z wieloma zmiennymi: wnioskowania w strukturach skończonych
Kierownik: dr hab. Emanuel Kieroński
Okres realizacji: 2022-2026
Projekt badawczy finansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego
-
Wnioskowanie ilościowe odporne na perturbacje
Kierownik: dr Jakub Michaliszyn
Okres realizacji: 2021-2025
Projekt badawczy finansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego
-
Automaty z wagami dla własności kwantytatywnych - Kierownik: dr Jan Otop
Okres realizacji: 2015-2018
Projekt badawczy finansowany przez Narodowe Centrum Nauki
-
Logiki do przetwarzania danych i weryfikacji - Kierownik: dr Jakub Michaliszyn
Okres realizacji: 2015-2018
Projekt badawczy finansowany przez Narodowe Centrum Nauki
-
Hipoteza BDD/FC i okolice - Kierownik: mgr Tomasz Gogacz
Okres realizacji: 2014-2017
Projekt badawczy finansowany przez Narodowe Centrum Nauki
-
Wokół logik modalnych - rozstrzygalność i złożoność - Kierownik: dr Jakub Michaliszyn
Okres realizacji: 2012-2015
Projekt badawczy finansowany przez Narodowe Centrum Nauki
-
Zagadnienia złożoności i rozstrzygalności dla teorii logicznych motywowanych informatyką - Kierownik: prof. dr hab. Jerzy Marcinkowski
Okres realizacji: 2010-2013
Projekt badawczy finansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego
-
Automatyczne wnioskowanie w teoriach równościowych (promotorski) - Kierownik: prof. dr hab. Jerzy Marcinkowski
Okres realizacji: 2009-2010
Projekt finansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego
-
Rozstrzygalność pewnych teorii logicznych motywowanych teorią informatyki - Kierownik: dr hab. Jerzy Marcinkowski
Okres realizacji: 2006-2009
Projekt finansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego
-
Jeden krok od modelu relacyjnego. Kilka podstawowych zagadek baz danych
Kierownik: prof. dr hab. Jerzy Marcinkowski
Okres realizacji: 2017-2022
Projekt finansowany przez Narodowe Centrum Nauki
-
Logiki z uogólnionymi kwantyfikatorami zliczającymi dla programów operujących na danych i systemów bazodanowych
Kierownik: Bartosz Bednarczyk
Okres realizacji: 2018-2022
Projekt finansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego
-
Specyfikacje ilościowe: uczenie się, algorytmy i zastosowania
Kierownik: dr hab. Jan Otop
Okres realizacji: 2018-2021
Projekt badawczy finansowany przez Narodowe Centrum NaukiW dzisiejszych czasach systemy informatyczne stanowią nieodłączną część życia. Mimo dużych postępów w dziedzinach inżynierii
oprogramowania i testowania, wciąż napotyka się na różnego rodzaju błędy, zarówno w sprzęcie, jak i w oprogramowaniu. Aby wyeliminować błędy zaproponowano formalną weryfikację, w której dowodzi się poprawności programów i układów cyfrowych. Formalna weryfikacja jest intensywnie badana teoretycznie oraz intensywnie rozwijana w przemyśle: Intel stosuje ją przy tworzeniu procesorów; Microsoft i Facebook stosują ją przy tworzeniu oprogramowania; Bosch stosuje ją przy projektowaniu tempomatów w samochodach. Wiodącą techniką w formalnej weryfikacji jest weryfikacja modeli, w ramach której sprzęt lub oprogramowanie abstrahuje się do uproszczonych struktur, nazywanych \emph{modelami}, celem dokonania weryfikacji ich poprawności.
Weryfikacja modeli daje odpowiedź jakościową: ,,tak'' albo ,,nie''. Pozwala to odpowiadać na pytania w stylu ,,czy serwer odpowie na każde żądanie''. Jednak odpowiedź pozytywna na takie pytanie jest często niewystarczająca, gdyż nie określa, jak szybko serwer odpowie. Dlatego ważne są również aspekty ilościowe, na przykład pytanie ,,jaki jest średni czas pomiędzy żądaniem a odpowiedzią serwera''. Aby móc wnioskować o aspektach ilościowych systemów, stosuje się ilościową weryfikację modeli, w której można zadawać wartości liczbowe oraz otrzymywać liczby jako odpowiedzi. Takie odpowiedzi niosą ze sobą więcej informacji, które lepiej oddają poprawność systemu. Pomimo swoich zalet, ilościowa weryfikacja modeli nie jest używana w praktyce z powodu licznych trudności. Opisywanie własności ilościowych jest trudne, problem weryfikacji własności ilościowych jest obliczeniowo trudny, a interpretacja ilościowych odpowiedzi jest trudna. Celem tego projektu jest zniwelowanie powyższych trudności.
W tym projekcie badawczym postaramy się usprawnić proces ilościowej weryfikacji modeli skupiając się na trzech etapach weryfikacji: specyfikacji własności ilościowych, algorytmach weryfikacji modeli względem własności ilościowych, oraz interpretacji odpowiedzi ilościowych zwracanych w procesie weryfikacji.
Aby uczynić proces tworzenia specyfikacji łatwiejszym dla użytkowników, będziemy badali obliczeniowe uczenie się specyfikacji
oraz języki zadawania specyfikacji. Będziemy badać dwa rodzaje problemów: uczenie \emph{offline}, w którym użytkownik jednorazowo podaje pewną listę przykładów i na ich podstawie generowana jest specyfikacja, oraz uczenie online, w czasie którego algorytm może zadawać użytkownikowi dodatkowe pytania dotyczące słów, a także pytać, czy dana specyfikacja jest taka, jak żądano. Podobne techniki uczenia się z powodzeniem sprawdzają się w klasycznej weryfikacji.
Zakładając, że mamy zadaną specyfikację ilościową, kolejnym krokiem w weryfikacji jest obliczenie jej wartości na danym modelu systemu. Modele często bywają bardzo duże, dlatego ważne jest znajdowanie efektywnych algorytmów do weryfikacji, a w szczególności takich, które korzystają z technik pozwalających operować na mniejszy modelach. W tym projekcie podejmiemy próbę stworzenia takich algorytmów dla weryfikacji ilościowej.
Podobnie jak w oprogramowaniu, błędy mogą się również zdarzać w specyfikacjach. Może to prowadzić do sytuacji, gdy w wyniku
weryfikacji otrzymujemy informację, że nasz system zachowuje się poprawnie, podczas gdy tak nie jest. Planujemy stworzyć narzędzia wspomagające wykrywanie tego typu przypadków. Celem takich narzędzi byłoby wskazywanie użytkownikowi, że jego specyfikacja, na przykład, jest spełniona podejrzanie łatwo lub że wynik procesu weryfikacji nie zależy od dużej części modelu.