Algebraic laws for nondeterminism and concurrency
Journal of the ACM (JACM)
Introduction to mathematical logic (3rd ed.)
Introduction to mathematical logic (3rd ed.)
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
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
A calculus of mobile processes, I
Information and Computation
Formal parametric polymorphism
Theoretical Computer Science - A collection of contributions in honour of Corrado Bo¨hm on the occasion of his 70th birthday
Intersection and union types: syntax and semantics
Information and Computation
An axiomatic basis for computer programming
Communications of the ACM
Types and programming languages
Types and programming languages
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
Existential Types: Logical Relations and Operational Equivalence
ICALP '98 Proceedings of the 25th International Colloquium on Automata, Languages and Programming
Proving Pointer Programs in Hoare Logic
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
Program logic and equivalence in the presence of garbage collection
Theoretical Computer Science - Foundations of software science and computation structures
Separation and information hiding
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
⊤⊤-closed relations and admissibility
Mathematical Structures in Computer Science
Parametric polymorphism and operational equivalence
Mathematical Structures in Computer Science
A filter model for mobile processes
Mathematical Structures in Computer Science
Strong normalisation in the π-calculus
Information and Computation
Sequentiality and the π-calculus
TLCA'01 Proceedings of the 5th international conference on Typed lambda calculi and applications
Characterizing convergent terms in object calculi via intersection types
TLCA'01 Proceedings of the 5th international conference on Typed lambda calculi and applications
FOSSACS'03/ETAPS'03 Proceedings of the 6th International conference on Foundations of Software Science and Computation Structures and joint European conference on Theory and practice of software
Type assignment for intersections and unions in call-by-value languages
FOSSACS'03/ETAPS'03 Proceedings of the 6th International conference on Foundations of Software Science and Computation Structures and joint European conference on Theory and practice of software
From process logic to program logic
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
A logical analysis of aliasing in imperative higher-order functions
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Certified assembly programming with embedded code pointers
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extended static checking for haskell
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
A logical analysis of aliasing in imperative higher-order functions
Journal of Functional Programming
A Hoare Logic for Call-by-Value Functional Programs
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Static contract checking for Haskell
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Logical reasoning for higher-order functions with local state
FOSSACS'07 Proceedings of the 10th international conference on Foundations of software science and computational structures
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
Hybrid contract checking via symbolic simplification
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Program logics for sequential higher-order control
FSEN'09 Proceedings of the Third IPM international conference on Fundamentals of Software Engineering
Time Bounds for General Function Pointers
Electronic Notes in Theoretical Computer Science (ENTCS)
An observationally complete program logic for imperative higher-order functions
Theoretical Computer Science
Hi-index | 0.00 |
This paper introduces a compositional program logic for higher-order polymorphic functions and standard data types. The logic enables us to reason about observable properties of polymorphic programs starting from those of their constituents. Just as types attached to programs offer information on their composability so as to guarantee basic safety of composite programs, formulae of the proposed logic attached to programs offer information on their composability so as to guarantee fine-grained behavioural properties of polymorphic programs. The central feature of the logic is a systematic usage of names and operations on them, whose origin is in the logics for typed π-calculi. The paper introduces the program logic and its proof rules and illustrates their usage by non-trivial reasoning examples, taking a prototypical call-by-value functional language with impredicative polymorphism and recursive types as a target language.