Slicing is a widely-used technique with applications in e.g. compiler technology and software security. Thus verification of algorithms in these areas is often based on the correc...
We introduce a lightweight approach for reasoning about programs involving imperative data structures using the proof assistant Isabelle/HOL. It is based on shallow embedding of pr...
Lukas Bulwahn, Alexander Krauss, Florian Haftmann,...
In this paper, we present an approach to describe uniformly iterated “big” operations, like Pn i=0 f(i) or maxi∈I f(i) and to provide lemmas that encapsulate all the commonly...
Yves Bertot, Georges Gonthier, Sidi Ould Biha, Ioa...
We describe a new method to represent (partial) recursive functions in type theory. For every recursive definition, we define a co-inductive type of prophecies that characterises...
When reasoning about inductively defined predicates, such as typing judgements or reduction relations, proofs are often done by inversion, that is by a case analysis on the last r...