Results 1  10
of
13
Prelogical Relations
, 1999
"... this paper but which have some intriguing connections to some of our results and techniques, are [32] and [20]. We believe that the concept of prelogical relation would have a beneficial impact on the presentation and understanding of their results ..."
Abstract

Cited by 26 (5 self)
 Add to MetaCart
(Show Context)
this paper but which have some intriguing connections to some of our results and techniques, are [32] and [20]. We believe that the concept of prelogical relation would have a beneficial impact on the presentation and understanding of their results
Correctness of Data Representations involving Heap Data Structures
 Science of Computer Programming
, 2003
"... While the semantics of local variables in programming languages is by now wellunderstood, the semantics of pointeraddressed heap variables is still an outstanding issue. In particular, the commonly assumed relational reasoning principles for data representations have not been validated in a se ..."
Abstract

Cited by 22 (7 self)
 Add to MetaCart
(Show Context)
While the semantics of local variables in programming languages is by now wellunderstood, the semantics of pointeraddressed heap variables is still an outstanding issue. In particular, the commonly assumed relational reasoning principles for data representations have not been validated in a semantic model of heap variables. In this paper, we de ne a parametricity semantics for a Pascallike language with pointers and heap variables which gives such reasoning principles. It is found that the correspondences between data representations are not simply relations between states, but more intricate correspondences that also need to keep track of visible locations whose pointers can be stored and leaked.
Constructive Data Refinement in Typed Lambda Calculus
, 2000
"... . A new treatment of data refinement in typed lambda calculus is proposed, based on prelogical relations [HS99] rather than logical relations as in [Ten94], and incorporating a constructive element. Constructive data refinement is shown to have desirable properties, and a substantial example of ..."
Abstract

Cited by 12 (7 self)
 Add to MetaCart
(Show Context)
. A new treatment of data refinement in typed lambda calculus is proposed, based on prelogical relations [HS99] rather than logical relations as in [Ten94], and incorporating a constructive element. Constructive data refinement is shown to have desirable properties, and a substantial example of refinement is presented. 1 Introduction Various treatments of data refinement in the context of typed lambda calculus, beginning with Tennent's in [Ten94], have used logical relations to formalize the intuitive notion of refinement. This work has its roots in [Hoa72], which proposes that the correctness of a concrete version of an abstract program be verified using an invariant on the domain of concrete values together with a function mapping concrete values (that satisfy the invariant) to abstract values. In algebraic terms, what is required is a homomorphism from a subalgebra of the concrete algebra to the abstract algebra. A strictly more general method is to take a homomorphic relatio...
State based encapsulation and generics
, 2004
"... A properly encapsulated data representation can be revised without affecting the correctness of client programs and extensions but encapsulation is difficult to achieve for heap based structures and objectoriented (OO) programs with reentrant callbacks. Building on a discipline that uses assertion ..."
Abstract

Cited by 7 (7 self)
 Add to MetaCart
A properly encapsulated data representation can be revised without affecting the correctness of client programs and extensions but encapsulation is difficult to achieve for heap based structures and objectoriented (OO) programs with reentrant callbacks. Building on a discipline that uses assertions and auxiliary fields to manage invariants and transferrable ownership, we give a rule for modular reasoning based on simulations. This representation independence result is proved for a sequential OO language with recursive, generic classes.
Logical Relations and Data Abstraction
 Proc. Computer Science Logic, CSL 2000, Fischbachau. Springer LNCS 1862
, 1996
"... We prove, in the context of simple type theory, that logical relations are sound and complete for data abstraction as given by equational specifications. Specifically, we show that two implementations of an equationally specified abstract type are equivalent if and only if they are linked by a suita ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
(Show Context)
We prove, in the context of simple type theory, that logical relations are sound and complete for data abstraction as given by equational specifications. Specifically, we show that two implementations of an equationally specified abstract type are equivalent if and only if they are linked by a suitable logical relation. This allows us to introduce new types and operations of any order on those types, and to impose equations between terms of any order. Implementations are required to respect these equations up to a general form of contextual equivalence, and two implementations are equivalent if they produce the same contextual equivalence on terms of the enlarged language. Logical relations are introduced abstractly, soundness is almost automatic, but completeness is more difficult, achieved using a variant of Jung and Tiuryn's logical relations of varying arity. The results are expressed and proved categorically.
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 simpl ..."
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 ...
Axiomatics for Data Refinement in Call By Value Programming Languages
"... We give a systematic category theoretic axiomatics for modelling data refinement in call by value programming languages. Our leading examples of call by value languages are extensions of the computational calculus, such as FPC and languages for modelling nondeterminism, and extensions of the first ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We give a systematic category theoretic axiomatics for modelling data refinement in call by value programming languages. Our leading examples of call by value languages are extensions of the computational calculus, such as FPC and languages for modelling nondeterminism, and extensions of the first order fragment of the computational calculus, such as a CPS language. We give a category theoretic account of the basic setting, then show how to model contexts, then arbitrary type and term constructors, then signatures, and finally data refinement. This extends and clarifies Kinoshita and Power's work on lax logical relations for call by value languages.
Semantics of Parametric Polymorphism in Imperative Programming Languages
"... Ada and Modula3 have included facilities for parametric polymorphism and, more recently, C++ and Java have also added similar facilities. In this paper, we examine the issues of defining denotational semantics for imperative programming languages with polymorphism. We use the framework of reflexive ..."
Abstract
 Add to MetaCart
(Show Context)
Ada and Modula3 have included facilities for parametric polymorphism and, more recently, C++ and Java have also added similar facilities. In this paper, we examine the issues of defining denotational semantics for imperative programming languages with polymorphism. We use the framework of reflexive graphs of categories previously developed for a general axiomatization of relational parametricity constraints implicit in polymorphic functions. We specialize it to the context of imperative programming languages, which in turn involve parametricity constraints implicit in local variables. The two levels of parametricity inherent in such languages can be captured in a pleasing way in ”higherorder ” reflexive graphs. 1
Correctness of Data Representations involving Heap Data Structures
, 2004
"... Abstract While the semantics of local variables in programming languages is by now wellunderstood, the semantics of pointeraddressed heap variables is still an outstanding issue. In particular, the commonly assumed relational reasoning principles for data representations have not been validated in ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract While the semantics of local variables in programming languages is by now wellunderstood, the semantics of pointeraddressed heap variables is still an outstanding issue. In particular, the commonly assumed relational reasoning principles for data representations have not been validated in a semantic model of heap variables. In this paper, we define a parametricity semantics for a Pascallike language with pointers and heap variables which gives such reasoning principles. It turns out that the correspondences between data representations cannot simply be relations between states, but more intricate correspondences that also need to keep track of visible locations whose pointers can be stored and leaked.
A Generalisation of PreLogical Predicates and Its Applications
, 2004
"... This thesis proposes a generalisation of prelogical predicates to simply typed formal systems and their categorical models. We analyse the three elements involved in prelogical predicates — syntax, semantics and predicates — within a categorical framework for typed binding syntax and semantics. W ..."
Abstract
 Add to MetaCart
(Show Context)
This thesis proposes a generalisation of prelogical predicates to simply typed formal systems and their categorical models. We analyse the three elements involved in prelogical predicates — syntax, semantics and predicates — within a categorical framework for typed binding syntax and semantics. We then formulate generalised prelogical predicates and show two distinguishing properties: a) equivalence with the basic lemma and b) closure of binary prelogical relations under relational composition. To test the adequacy of this generalisation, we derive prelogical predicates for various calculi and their categorical models including variations of lambda calculi and nonlambda calculi such as manysorted algebras as well as firstorder logic. We then apply generalised prelogical predicates to characterising behavioural equivalence. Examples of constructive data refinement of typed formal systems are shown, where behavioural equivalence plays a crucial role in achieving data abstraction. iii Acknowledgements First of all, I thank my supervisor Don Sannella for all aspects of my Ph.D. study. This thesis would not be here without his continuous support and encouragement. His careful reading and comments are always valuable for improving my thesis. I thank Atsushi Ohori who encouraged me to study abroad, and Masahito Hasegawa who helped me to start a new life in Edinburgh. During my Ph.D. study in Edinburgh, I had a lot of opportunities to discuss various topics in computer science. Many thanks to John Longley, Furio Honsell, John Power, Ian Stark, Alex Simpson, Miki Tanaka, Misao Nagayama and Samuel Lindley for intellectual stimulation and guidance. Daniel Turi’s insightful comments contributed to improve this thesis. I would like to thank Martin Dicks and Nanako Dicks for the best friendship in Edinburgh. Particularly, I am very grateful to them and Jon Cook for offering temporary accomodaion when I had a difficulty in finding a new flat after leaving Mylnes Court. Finally, special thanks to Louise for her support and endurance during the final stages of writing. My Ph.D. study was funded for three years by LFCS studentship and Nihon Ikueikai studentship. iv To my parents