Introduction to higher order categorical logic
Introduction to higher order categorical logic
Computational lambda-calculus and monads
Proceedings of the Fourth Annual Symposium on Logic in computer science
Type systems for programming languages
Handbook of theoretical computer science (vol. B)
Correctness of data representations in Algol-like languages
A classical mind
A characterization of lambda definability in categorical models of implicit polymorphism
Theoretical Computer Science
Foundations of programming languages
Foundations of programming languages
Types, Abstractions, and Parametric Polymorphism, Part 2
Proceedings of the 7th International Conference on Mathematical Foundations of Programming Semantics
An Axiomatic Approach to Binary Logical Relations with Applications to Data Refinement
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
A New Characterization of Lambda Definability
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
ICALP '00 Proceedings of the 27th International Colloquium on Automata, Languages and Programming
CSL '99 Proceedings of the 13th International Workshop and 8th Annual Conference of the EACSL on Computer Science Logic
Forward Simulation for Data Refinement of Classes
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
Hi-index | 0.00 |
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.