@INPROCEEDINGS{Hanus23KPS,
author    = "Hanus, M.",
title     = "Automated Verification of Fail-Free Declarative Programs",
year      = "2023",
booktitle = "Tagungsband zum 22. Kolloquium Programmiersprachen und Grundlagen der Programmierung",
pages     = "51-54",
doi       = "10.18154/RWTH-2023-10034",
number    = "AIB-2023-3",
series    = "Aachener Informatik-Berichte",
abstract = {
Unintended failures during a computation are painful but
frequent during software development.
Failures due to external reasons (e.g., missing files, no permissions)
can be caught by exception handlers.
Programming failures, such as calling a partially defined
operation with unintended arguments, are often not caught
due to the assumption that the software is correct.
This paper presents an approach to verify such assumptions.
For this purpose, non-failure conditions for operations are
inferred and then checked in all uses of partially defined operations.
In the positive case, the absence of such failures is ensured.
In the negative case, the programmer could adapt the program
to handle possibly failing situations and check the program again.
Our method is fully automatic and can be applied to larger
declarative programs.
The results of an implementation for functional logic Curry programs
are presented.
}
}
