10,035 research outputs found
Proving theorems by program transformation
In this paper we present an overview of the unfold/fold proof method, a method for proving theorems about programs, based on program transformation. As a metalanguage for specifying programs and program properties we adopt constraint logic programming (CLP), and we present a set of transformation rules (including the familiar unfolding and folding rules) which preserve the semantics of CLP programs. Then, we show how program transformation strategies can be used, similarly to theorem proving tactics, for guiding the application of the transformation rules and inferring the properties to be proved. We work out three examples: (i) the proof of predicate equivalences, applied to the verification of equality between CCS processes, (ii) the proof of first order formulas via an extension of the quantifier elimination method, and (iii) the proof of temporal properties of infinite state concurrent systems, by using a transformation strategy that performs program specialization
Dual Logic Concepts based on Mathematical Morphology in Stratified Institutions: Applications to Spatial Reasoning
Several logical operators are defined as dual pairs, in different types of
logics. Such dual pairs of operators also occur in other algebraic theories,
such as mathematical morphology. Based on this observation, this paper proposes
to define, at the abstract level of institutions, a pair of abstract dual and
logical operators as morphological erosion and dilation. Standard quantifiers
and modalities are then derived from these two abstract logical operators.
These operators are studied both on sets of states and sets of models. To cope
with the lack of explicit set of states in institutions, the proposed abstract
logical dual operators are defined in an extension of institutions, the
stratified institutions, which take into account the notion of open sentences,
the satisfaction of which is parametrized by sets of states. A hint on the
potential interest of the proposed framework for spatial reasoning is also
provided.Comment: 36 page
Nominal Abstraction
Recursive relational specifications are commonly used to describe the
computational structure of formal systems. Recent research in proof theory has
identified two features that facilitate direct, logic-based reasoning about
such descriptions: the interpretation of atomic judgments through recursive
definitions and an encoding of binding constructs via generic judgments.
However, logics encompassing these two features do not currently allow for the
definition of relations that embody dynamic aspects related to binding, a
capability needed in many reasoning tasks. We propose a new relation between
terms called nominal abstraction as a means for overcoming this deficiency. We
incorporate nominal abstraction into a rich logic also including definitions,
generic quantification, induction, and co-induction that we then prove to be
consistent. We present examples to show that this logic can provide elegant
treatments of binding contexts that appear in many proofs, such as those
establishing properties of typing calculi and of arbitrarily cascading
substitutions that play a role in reducibility arguments.Comment: To appear in the Journal of Information and Computatio
- âŠ