Eiffel: the language
Functional instantiation in first-order logic
Artificial intelligence and mathematical theory of computation
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
Introduction to Mathematical Logic and Type Theory: To Truth through Proof
Introduction to Mathematical Logic and Type Theory: To Truth through Proof
Journal of Automated Reasoning
Context Dependent Procedures and Computed Types in √eriFun
Electronic Notes in Theoretical Computer Science (ENTCS)
Static contract checking for Haskell
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Reasoning about incompletely defined programs
LPAR'05 Proceedings of the 12th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
Automated synthesis of induction axioms for programs with second-order recursion
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
Hi-index | 0.00 |
In the implementation of procedures, developers often assume that the input satisfies certain properties; for example, binary search assumes the array to be sorted. Such requirements on the input can be formally expressed as preconditions of procedures. If a second-order procedure p (e.g., map or foldl) is called with a first-order procedure f that has a precondition, the question arises whether p will call f only with arguments that satisfy the precondition of f. In this paper, we propose a method to statically analyze if all procedure calls in a given second-order program satisfy the respective preconditions. In particular, we consider indirect calls of procedures that are passed as an argument to a second-order procedure.