Algebraic laws for nondeterminism and concurrency
Journal of the ACM (JACM)
Systematic software development using VDM
Systematic software development using VDM
Introduction to mathematical logic (3rd ed.)
Introduction to mathematical logic (3rd ed.)
Towards fully abstract semantics for local variables
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantical analysis of specification logic
Information and Computation
Semantics of programming languages: structures and techniques
Semantics of programming languages: structures and techniques
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
Formal parametric polymorphism
Theoretical Computer Science - A collection of contributions in honour of Corrado Bo¨hm on the occasion of his 70th birthday
Using Z: specification, refinement, and proof
Using Z: specification, refinement, and proof
A first order logic of effects
Theoretical Computer Science - Special issue: theoretical computer science in Australia and New Zealand
Game-theoretic analysis of call-by-value computation
Theoretical Computer Science
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Even Simple Programs Are Hard To Analyze
Journal of the ACM (JACM)
The Complexity of Finite Memory Programs with Recursion
Journal of the ACM (JACM)
Programming Language Constructs for Which It Is Impossible To Obtain Good Hoare Axiom Systems
Journal of the ACM (JACM)
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
On full abstraction for PCF: I, II, and III
Information and Computation
Information and Computation
An axiomatic basis for computer programming
Communications of the ACM
Correspondence between ALGOL 60 and Church's Lambda-notation: part I
Communications of the ACM
Theoretical Computer Science
Types and programming languages
Types and programming languages
The Craft of Programming
Dynamic Logic
Soundness of data refinement for a higher-order imperative language
Theoretical Computer Science
The Definition of Standard ML
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
A Logic for Parametric Polymorphism
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Concurrency and Automata on Infinite Sequences
Proceedings of the 5th GI-Conference on Theoretical Computer Science
Enhancing the Pre- and Postcondition Technique for More Expressive Specifications
FM '99 Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume II
Reasoning About Procedures as Parameters
Proceedings of the Carnegie Mellon Workshop on Logic of Programs
From Denotational to Operational and Axiomatic Semantics for ALGOL-like Languages: an Overview
Proceedings of the Carnegie Mellon Workshop on Logic of Programs
A good Hoare axiom system for an ALGOL-like language
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Guarded commands, non-determinacy and a calculus for the derivation of programs
Proceedings of the international conference on Reliable software
A characterization of Hoare's logic for programs with Pascal-like procedures
STOC '83 Proceedings of the fifteenth annual ACM symposium on Theory of computing
Proof of correctness of data representations
Software pioneers
Separation and information hiding
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A compositional logic for polymorphic higher-order functions
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
From process logic to program logic
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
An Observationally Complete Program Logic for Imperative Higher-Order Frame Rules
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
A logical analysis of aliasing in imperative higher-order functions
Journal of Functional Programming
Completeness and Logical Full Abstraction in Modal Logics for Typed Mobile Processes
ICALP '08 Proceedings of the 35th international colloquium on Automata, Languages and Programming, Part II
Program logics for homogeneous meta-programming
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Descriptive and relative completeness of logics for higher-order functions
ICALP'06 Proceedings of the 33rd international conference on Automata, Languages and Programming - Volume Part II
Program logics for sequential higher-order control
FSEN'09 Proceedings of the Third IPM international conference on Fundamentals of Software Engineering
Hi-index | 5.23 |
We establish a strong completeness property called observational completeness of the program logic for imperative, higher-order functions introduced in [1]. Observational completeness states that valid assertions characterise program behaviour up to observational congruence, giving a precise correspondence between operational and axiomatic semantics. The proof layout for the observational completeness which uses a restricted syntactic structure called finite canonical forms originally introduced in game-based semantics, and characteristic formulae originally introduced in the process calculi, is generally applicable for a precise axiomatic characterisation of more complex program behaviour, such as aliasing and local state.