7 research outputs found
Introduction to Iltis: An Interactive, Web-Based System for Teaching Logic
Logic is a foundation for many modern areas of computer science. In
artificial intelligence, as a basis of database query languages, as well as in
formal software and hardware verification --- modelling scenarios using logical
formalisms and inferring new knowledge are important skills for going-to-be
computer scientists. The Iltis project aims at providing a web-based,
interactive system that supports teaching logical methods. In particular the
system shall (a) support to learn to model knowledge and to infer new knowledge
using propositional logic, modal logic and first-order logic, and (b) provide
immediate feedback and support to students. This article presents a
prototypical system that currently supports the above tasks for propositional
logic. First impressions on its use in a second year logic course for computer
science students are reported
Leveraging Large Language Models to Boost Dafny's Developers Productivity
This research idea paper proposes leveraging Large Language Models (LLMs) to
enhance the productivity of Dafny developers. Although the use of
verification-aware languages, such as Dafny, has increased considerably in the
last decade, these are still not widely adopted. Often the cost of using such
languages is too high, due to the level of expertise required from the
developers and challenges that they often face when trying to prove a program
correct. Even though Dafny automates a lot of the verification process,
sometimes there are steps that are too complex for Dafny to perform on its own.
One such case is that of missing lemmas, i.e. Dafny is unable to prove a result
without being given further help in the form of a theorem that can assist it in
the proof of the step.
In this paper, we describe preliminary work on a new Dafny plugin that
leverages LLMs to assist developers by generating suggestions for relevant
lemmas that Dafny is unable to discover and use. Moreover, for the lemmas that
cannot be proved automatically, the plugin also attempts to provide
accompanying calculational proofs. We also discuss ideas for future work by
describing a research agenda on using LLMs to increase the adoption of
verification-aware languages in general, by increasing developers productivity
and by reducing the level of expertise required for crafting formal
specifications and proving program properties