[lochbihler09tphols] | Andreas Lochbihler, Formalising FinFuns - Generating Code for Functions as Data from
Isabelle/HOL, Stefan Berghofer and Tobias Nipkow and Chrsitian Urban and Makarius
Wenzel (Ed.), Proceedings of the 22nd International Conference of Theorem Proving
in Higher Order Logics, pp. 310--326, Springer, August 2009.
|
Abstract
FinFuns are total functions that are constant except for a finite
set of points, i.e. a generalisation of finite maps. We formalise
them in Isabelle/HOL and present how to safely set up Isabelle's
code generator such that operations like equality testing and quantification
on FinFuns become executable. On the code output level, FinFuns are
explicitly represented by constant functions and pointwise updates,
similarly to associative lists. Inside the logic, they behave like
ordinary functions with extensionality. Via the update/constant pattern,
a recursion combinator and an induction rule for FinFuns allow for
defining and reasoning about operators on FinFuns that directly become
executable. We apply the approach to an executable formalisation
of sets and use it for the semantics for a subset of concurrent Java.
Download
Original article available at springerlink.com.
BibTeX
Authors at the institute
Projects