Results 21 - 30
of
115
Syntactic considerations on recursive types
- In Proceedings of the 11th Annual Symposium on Logic in Computer Science
, 1996
"... Abstract We study recursive types from a syntactic perspective. In particular, we compare the formulations of recursive types that are used in programming languages and formal systems. Our main tool is a new syntactic explanation of type expressions as functors. We also introduce a simple logic for ..."
Abstract
-
Cited by 27 (0 self)
- Add to MetaCart
Abstract We study recursive types from a syntactic perspective. In particular, we compare the formulations of recursive types that are used in programming languages and formal systems. Our main tool is a new syntactic explanation of type expressions as functors. We also introduce a simple logic for programs with recursive types in which we carry out our proofs. 1 Introduction Recursive types are common in both programming languages and formal systems. By now, there is a deep and well-developed semantic theory of recursive types. The syntactic aspects of recursive types are also well understood in some special cases. In particular, there is an important body of knowledge about covariant recursive types, which include datatypes like natural numbers, lists, and trees. Beyond the covariant case, however, the syntactic understanding of recursive types becomes rather spotty. Consequently, the relations between various alternative formulations of recursive types are generally unclear. Furthermore, the syntactic counterparts to some of the most basic semantic results are unknown.
A Theory of Recursive Domains with Applications to Concurrency
- In Proc. of LICS ’98
, 1997
"... Marcelo Fiore , Glynn Winskel (1) BRICS , University of Aarhus, Denmark (2) LFCS, University of Edinburgh, Scotland December 1997 Abstract We develop a 2-categorical theory for recursively defined domains. ..."
Abstract
-
Cited by 23 (14 self)
- Add to MetaCart
Marcelo Fiore , Glynn Winskel (1) BRICS , University of Aarhus, Denmark (2) LFCS, University of Edinburgh, Scotland December 1997 Abstract We develop a 2-categorical theory for recursively defined domains.
Power Domain Constructions
- SCIENCE OF COMPUTER PROGRAMMING
, 1998
"... The variety of power domain constructions proposed in the literature is put into a general algebraic framework. Power constructions are considered algebras on a higher level: for every ground domain, there is a power domain whose algebraic structure is specified by means of axioms concerning the alg ..."
Abstract
-
Cited by 22 (9 self)
- Add to MetaCart
The variety of power domain constructions proposed in the literature is put into a general algebraic framework. Power constructions are considered algebras on a higher level: for every ground domain, there is a power domain whose algebraic structure is specified by means of axioms concerning the algebraic properties of the basic operations empty set, union, singleton, and extension of functions. A host of derived operations is introduced and investigated algebraically. Every power construction is shown to be equipped with a characteristic semiring such that the resulting power domains become semiring modules. Power homomorphisms are introduced as a means to relate different power constructions. They also allow to define the notion of initial and final constructions for a fixed characteristic semiring. Such initial and final constructions are shown to exist for every semiring, and their basic properties are derived. Finally, the known power constructions are put into the general framewo...
Parametricity and Unboxing with Unpointed Types
, 1996
"... . In lazy functional languages, ? is typically an element of every type. While this provides great flexibility, it also comes at a cost. In this paper we explore the consequences of allowing unpointed types in a lazy functional language like Haskell. We use the type (and class) system to keep tr ..."
Abstract
-
Cited by 22 (2 self)
- Add to MetaCart
. In lazy functional languages, ? is typically an element of every type. While this provides great flexibility, it also comes at a cost. In this paper we explore the consequences of allowing unpointed types in a lazy functional language like Haskell. We use the type (and class) system to keep track of pointedness, and show the consequences for parametricity and for controlling evaluation order and unboxing. 1 Introduction Ever since Scott and others showed how to use pointed CPOs (i.e. with bottoms) to give meaning to general recursion, both over values (including functions), and over types themselves, functional languages seem to have been wedded to the concept. Languages like Haskell [5] model types by appropriate CPOs and, because non-terminating computations can happen at any type, all the CPOs are pointed. This gives significant flexibility. In particular, values of any type may be defined using recursion. 1.1 Parametricity There are associated costs, however. When reason...
A Categorical Axiomatics for Bisimulation
- In Proc. of CONCUR’98, LNCS 1466
, 1998
"... We give an axiomatic category theoretic account of bisimulation in process algebras based on the idea of functional bisimulations as open maps. We work with 2-monads, T , on Cat. Operations on processes, such as nondeterministic sum, prefixing and parallel composition are modelled using functors in ..."
Abstract
-
Cited by 18 (8 self)
- Add to MetaCart
We give an axiomatic category theoretic account of bisimulation in process algebras based on the idea of functional bisimulations as open maps. We work with 2-monads, T , on Cat. Operations on processes, such as nondeterministic sum, prefixing and parallel composition are modelled using functors in the Kleisli category for the 2-monad T .
Nested Hoare triples and frame rules for higher-order store
- In Proceedings of the 18th EACSL Annual Conference on Computer Science Logic
, 2009
"... Abstract. Separation logic is a Hoare-style logic for reasoning about programs with heap-allocated mutable data structures. As a step toward extending separation logic to high-level languages with ML-style general (higher-order) storage, we investigate the compatibility of nested Hoare triples with ..."
Abstract
-
Cited by 18 (9 self)
- Add to MetaCart
Abstract. Separation logic is a Hoare-style logic for reasoning about programs with heap-allocated mutable data structures. As a step toward extending separation logic to high-level languages with ML-style general (higher-order) storage, we investigate the compatibility of nested Hoare triples with several variations of higher-order frame rules. The interaction of nested triples and frame rules can be subtle, and the inclusion of certain frame rules is in fact unsound. A particular combination of rules can be shown consistent by means of a Kripke model where worlds live in a recursively defined ultrametric space. The resulting logic allows us to elegantly prove programs involving stored code. In particular, it leads to natural specifications and proofs of invariants required for dealing with recursion through the store. Keywords. Higher-order store, Hoare logic, separation logic, semantics. 1
The Impact of the Lambda Calculus in Logic and Computer Science
- Bulletin of Symbolic Logic
, 1997
"... One of the most important contributions of A. Church to logic is his invention of the lambda calculus. We present the genesis of this theory and its two major areas of application: the representation of computations and the resulting functional programming languages on the one hand and the represent ..."
Abstract
-
Cited by 17 (0 self)
- Add to MetaCart
One of the most important contributions of A. Church to logic is his invention of the lambda calculus. We present the genesis of this theory and its two major areas of application: the representation of computations and the resulting functional programming languages on the one hand and the representation of reasoning and the resulting systems of computer mathematics on the other hand. Acknowledgement. The following persons provided help in various ways. Erik Barendsen, Jon Barwise, Johan van Benthem, Andreas Blass, Olivier Danvy, Wil Dekkers, Marko van Eekelen, Sol Feferman, Andrzej Filinski, Twan Laan, Jan Kuper, Pierre Lescanne, Hans Mooij, Robert Maron, Rinus Plasmeijer, Randy Pollack, Kristoffer Rose, Richard Shore, Rick Statman and Simon Thompson. Partial support came from the European HCM project Typed lambda calculus (CHRXCT-92-0046), the Esprit Working Group Types (21900) and the Dutch NWO project WINST (612-316-607). 1. Introduction This paper is written to honor Church's gr...

