463 research outputs found

    Full abstraction and limiting completeness in equational languages

    Get PDF
    This paper introduces a notion of full abstraction for equational languages under which each language has a unique fully abstract model which can also be characterized as the final object in a category of coherent computable models for the language. We describe two potentially different approaches to limiting completeness with respect to the fully abstract model--a traditional one based on normal forms and a new one based on the usable data content of terms. The former is used to prove limiting completeness for the language of regular systems [5] which includes as subsets and restrictions the equational parts of many other languages. The latter is used to define an abstract version of limiting completeness based on information systems [17] which allows us to derive a set of sufficient conditions for an equational language to be limiting complete for its fully abstract semantics. We discuss cases where the two notions coincide--as they do for regular systems--and cases where they do not. We believe that limiting completeness based on observable data content accurately reflects programming intuition. If this thesis is accepted, the appropriateness of the corresponding definition of approximant can be seen as a design principle to test the mutual suitability of the parameters defining a language.Peer Reviewedhttp://deepblue.lib.umich.edu/bitstream/2027.42/27882/1/0000296.pd

    A Case Study on Logical Relations using Contextual Types

    Full text link
    Proofs by logical relations play a key role to establish rich properties such as normalization or contextual equivalence. They are also challenging to mechanize. In this paper, we describe the completeness proof of algorithmic equality for simply typed lambda-terms by Crary where we reason about logically equivalent terms in the proof environment Beluga. There are three key aspects we rely upon: 1) we encode lambda-terms together with their operational semantics and algorithmic equality using higher-order abstract syntax 2) we directly encode the corresponding logical equivalence of well-typed lambda-terms using recursive types and higher-order functions 3) we exploit Beluga's support for contexts and the equational theory of simultaneous substitutions. This leads to a direct and compact mechanization, demonstrating Beluga's strength at formalizing logical relations proofs.Comment: In Proceedings LFMTP 2015, arXiv:1507.0759

    Framework for binding operators

    Get PDF

    Verification in ASL and related specification languages

    Get PDF

    A categorical foundation for structured reversible flowchart languages: Soundness and adequacy

    Full text link
    Structured reversible flowchart languages is a class of imperative reversible programming languages allowing for a simple diagrammatic representation of control flow built from a limited set of control flow structures. This class includes the reversible programming language Janus (without recursion), as well as more recently developed reversible programming languages such as R-CORE and R-WHILE. In the present paper, we develop a categorical foundation for this class of languages based on inverse categories with joins. We generalize the notion of extensivity of restriction categories to one that may be accommodated by inverse categories, and use the resulting decisions to give a reversible representation of predicates and assertions. This leads to a categorical semantics for structured reversible flowcharts, which we show to be computationally sound and adequate, as well as equationally fully abstract with respect to the operational semantics under certain conditions

    Coeffects: Unified static analysis of context-dependence

    Get PDF
    Monadic effect systems provide a unified way of tracking effects of computations, but there is no unified mechanism for tracking how computations rely on the environment in which they are executed. This is becoming an important problem for modern software – we need to track where distributed computations run, which resources a program uses and how they use other capabilities of the environment. We consider three examples of context-dependence analysis: liveness analysis, tracking the use of implicit parameters (similar to tracking of resource usage in distributed computation), and calculating caching requirements for dataflow programs. Informed by these cases, we present a unified calculus for tracking context dependence in functional languages together with a categorical semantics based on indexed comonads. We believe that indexed comonads are the right foundation for constructing context-aware languages and type systems and that following an approach akin to monads can lead to a widespread use of the concept

    A Theory of Structured Propositions

    Get PDF
    This paper argues that the theory of structured propositions is not undermined by the Russell-Myhill paradox. I develop a theory of structured propositions in which the Russell-Myhill paradox doesn't arise: the theory does not involve ramification or compromises to the underlying logic, but rather rejects common assumptions, encoded in the notation of the λ\lambda-calculus, about what properties and relations can be built. I argue that the structuralist had independent reasons to reject these underlying assumptions. The theory is given both a diagrammatic representation, and a logical representation in a novel language. In the latter half of the paper I turn to some technical questions concerning the treatment of quantification, and demonstrate various equivalences between the diagrammatic and logical representations, and a fragment of the λ\lambda-calculus
    • …
    corecore