A first order logic for partial functions
Proceedings of the 6th Annual Symposium on Theoretical Aspects of Computer Science on STACS 89
Deciding Combinations of Theories
Journal of the ACM (JACM)
Simplification by Cooperating Decision Procedures
ACM Transactions on Programming Languages and Systems (TOPLAS)
Mechanising Partiality With Re-implementation
KI '97 Proceedings of the 21st Annual German Conference on Artificial Intelligence: Advances in Artificial Intelligence
A Mechanization of Strong Kleene Logic for Partial Functions
CADE-12 Proceedings of the 12th International Conference on Automated Deduction
Checking validities and proofs with cvc and flea
Checking validities and proofs with cvc and flea
An Abstract Decision Procedure for Satisfiability in the Theory of Recursive Data Types
Electronic Notes in Theoretical Computer Science (ENTCS)
Classical Logic with Partial Functions
Journal of Automated Reasoning
Classical logic with partial functions
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
Hi-index | 0.00 |
Most verification approaches assume a mathematical formalism in which functions are total, even though partial functions occur naturally in many applications. Furthermore, although there have been various proposals for logics of partial functions, there is no consensus on which is ''the right'' logic to use for verification applications. In this paper, we propose using a three-valued Kleene logic, where partial functions return the ''undefined'' value when applied outside of their domains. The particular semantics are chosen according to the principle of least surprise to the user; if there is disagreement among the various approaches on what the value of the formula should be, its evaluation is undefined. We show that the problem of checking validity in the three-valued logic can be reduced to checking validity in a standard two-valued logic, and describe how this approach has been successfully implemented in our tool, CVC Lite.