Results 1 -
4 of
4
An Axiomatic Approach to Binary Logical Relations with Applications to Data Refinement
- Proc. TACS'97, Springer LNCS 1281
, 1997
"... We introduce an axiomatic approach to logical relations and data refinement. We consider a programming language and the monad on the category of small categories generated by it. We identify abstract data types for the language with sketches for the associated monad, and define an axiomatic notion o ..."
Abstract
-
Cited by 18 (1 self)
- Add to MetaCart
We introduce an axiomatic approach to logical relations and data refinement. We consider a programming language and the monad on the category of small categories generated by it. We identify abstract data types for the language with sketches for the associated monad, and define an axiomatic notion of "relation" between models of such a sketch in a semantic category. We then prove three results: (i) such models lift to the whole language together with the sketch; (ii) any such relation satisfies a soundness condition, and (iii) such relations compose. We do this for both equality of data representations and for an ordered version. Finally, we compare our formulation of data refinement with that of Hoare. This work has been done with the support of the MITI Cooperative Architecture Project. This author also acknowledges the support of Kaken-hi. y This author achnowledges the support of the MITI Cooperative Architecture Project. z This author acknowledges the support of EPSRC grant...
Lax Naturality Through Enrichment
, 1995
"... We develop the relationship between algebraic structure and monads enriched over the monoidal biclosed category LocOrd l of small locally ordered categories, with closed structure given by Lax(A; B). We state the theorem, give a series of examples, and incorporate an account of sketches and cont ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
We develop the relationship between algebraic structure and monads enriched over the monoidal biclosed category LocOrd l of small locally ordered categories, with closed structure given by Lax(A; B). We state the theorem, give a series of examples, and incorporate an account of sketches and contravariance into the theory. This was motivated by C.A.R. Hoare's use of category theoretic structures to model data refinement. 1 Introduction In 1987, C.A.R. Hoare wrote a draft paper, "Data refinement in a categorical setting" [10] in which he used category theory to provide an abstract formalism for his development of data refinement over the previous twenty years [9]. The notion of data refinement is central to the programming method called stepwise refinement proposed by Wirth [19], and gave rise to work on abstract data types such as the IOTA programming system developed by Nakajima, Honda and Nakahara [16]. As Hoare said in [10], there was evidently a unified body of category theo...
A Theory of Program Refinement
, 1998
"... We give a canonical program refinement calculus based on the lambda calculus and classical first-order predicate logic, and study its proof theory and semantics. The intention is to construct a metalanguage for refinement in which basic principles of program development can be studied. The idea is t ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
We give a canonical program refinement calculus based on the lambda calculus and classical first-order predicate logic, and study its proof theory and semantics. The intention is to construct a metalanguage for refinement in which basic principles of program development can be studied. The idea is that it should be possible to induce a refinement calculus in a generic manner from a programming language and a program logic. For concreteness, we adopt the simply-typed lambda calculus augmented with primitive recursion as a paradigmatic typed functional programming language, and use classical first-order logic as a simple program logic. A key feature is the construction of the refinement calculus in a modular fashion, as the combination of two orthogonal extensions to the underlying programming language (in this case, the simply-typed lambda calculus). The crucial observation is that a refinement calculus is given by extending a programming language to allow indeterminate expressions (or ‘stubs’) involving the construction ‘some program x such that P ’. Factoring this into ‘some x...’
Data Refinement and Algebraic Structure
, 1996
"... We recall Hoare's formulation of data refinement in terms of upward, downward and total simulations between locally ordered functors from the structured locally ordered category generated by a programming language with an abstract data type to a semantic locally ordered category: we use a simple imp ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
We recall Hoare's formulation of data refinement in terms of upward, downward and total simulations between locally ordered functors from the structured locally ordered category generated by a programming language with an abstract data type to a semantic locally ordered category: we use a simple imperative language with a data type for stacks as leading example. We give a unified category theoretic account of the sort of structures on a category that allow upward simulation to extend from ground types and ground programs to all types and programs of the language. This answers a question of Hoare about the category theory underlying his constructions. It involves a careful study of algebraic structure on the category of small locally ordered categories, and a new definition of sketch of such structure. This is accompanied by a range of detailed examples. We extend that analysis to total simulations for modelling constructors of mixed variance such as higher order types. 1 Introduction ...

