Report Open Access
One concern of theoretical computer science is to prove the correctness of algorithms, for example the implementation of datastructures that are at the core of almost all programs. This becomes especially complicated when concurrency is involved in a non-trivial way, such that multiple parts of memory that logically belong together are modified in parallel.
Proof Assistants are computer programs that enable logical reasoning in a strict formal proof system. Developing proofs inside a such a proof assistant requires extreme rigour. As long as your definitions are not flawed, it is practically impossible to miss edge cases. The proof assistant we use is called Coq.
Coq is not readily usable to reason about programs that use mutable resources, but the Iris project has built a framework inside Coq that offers a convenient language and toolbox for this. Iris uses separation logic and modal logic to reason about memory, concurrency, and potentially non-terminating recursion.