10,035 research outputs found

    Proving theorems by program transformation

    Get PDF
    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

    Full text link
    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

    Get PDF
    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
    • 

    corecore