[Club2] Mi. 11.01.06: 15.00 Uhr
Norbert Schirmer
schirmer@in.tum.de
Mon, 9 Jan 2006 11:48:36 +0100
Diese Woche:
Mi. 11.01.06: 15.00 Uhr, in Alan Turing (00.09.055).
Steven Obua:
Conservative Overloading in Higher-Order Logic ---
Theory and practice of checking overloaded definitions in Isabelle
Abstract:
Overloading in the context of higher-order logic has been used for some time
now. Isabelle is the only proof-assistant that actually implements
overloading within the logic instead of merely instrumenting the
pretty-printing machinery on top of the logic.
So far there existed no satisfying theory that could explain why it is safe
to add a mechanism of certain kinds of possibly overloaded constant
definitions to ordinary higher-order logic. This is not only of theoretical
interest but also of practical importance; until now it was easy to introduce
inconsistencies in Isabelle by abusing overloaded definitions.
This paper addresses both the theoretical and the practical aspects of
adding overloading to higher-order logic. We first define what we mean by
Higher-Order Logic with Conservative Overloading (HOLCO). HOLCO captures how
overloading is actually applied by the users of Isabelle; for example it
allows to freely mix type definitions with overloaded constant definitions.
We then show the consistency of HOLCO by reducing it to ordinary higher-order
logic with only type definitions and no constant definitions.
Having so established our playground we show that this playground is too
big for any proof-assistant implementing HOLCO; checking if definitions obey
the rules of HOLCO is not even semi-decidable. We prove this by connecting
this problem with the problem of deciding the termination of certain kinds of
term rewriting systems (TRSs) which we call overloading TRSs and showing that
Post's Correspondence Problem for Prefix Morphisms can be reduced to it.
The undecidability proof reveals strong ties between our problem and the
dependency pair method by Arts and Giesl for proving termination of TRSs. The
dependency graph of overloaded TRSs can be computed exactly (for general TRSs
it is not computable and must be approximated). We exploit this by providing
an algorithm that checks the conservativity of definitions based on the
dependency pair method and a restricted form of linear polynomial
interpretation; the algorithm also uses the strategy of Hirokawa and
Middeldorp of recursively calculating the strongly connected components of
the dependency graph. Of course the algorithm cannot successfully check all
valid conservative definitions; but it is sufficiently powerful to deal with
all overloaded definitions that the author has encountered so far in
practice. An implementation of this algorithm is available as part of a
package that adds conservative overloading to Isabelle. This package also
allows to delegate the conservativity check to external tools like the
Tyrolean Termination Tool or the Automated Program Verification Environment.
Norbert