Artificial Intelligence
CADE-10 Proceedings of the tenth international conference on Automated deduction
On proving the termination of algorithms by machine
Artificial Intelligence
Partial functions and logics: a warning
Information Processing Letters
Specification of abstract data types
Specification of abstract data types
Constructors can be partial, too
Automated reasoning and its applications
Partial Functions in a Total Setting
Journal of Automated Reasoning
Induction Proofs with Partial Functions
Journal of Automated Reasoning
System Description: inka 5.0 - A Logic Voyager
CADE-16 Proceedings of the 16th International Conference on Automated Deduction: Automated Deduction
Journal of Automated Reasoning
Journal of Automated Reasoning
Context Dependent Procedures and Computed Types in √eriFun
Electronic Notes in Theoretical Computer Science (ENTCS)
Improvements in Formula Generalization
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Second-order programs with preconditions
Verification, induction termination analysis
Second-order programs with preconditions
Verification, induction termination analysis
A Two-Valued Logic for Properties of Strict Functional Programs Allowing Partial Functions
Journal of Automated Reasoning
Hi-index | 0.00 |
We consider automated reasoning about recursive partial functions with decidable domain, i.e. functions computed by incompletely defined but terminating functional programs. Incomplete definitions provide an elegant and easy way to write and to reason about programs which may halt with a run time error by throwing an exception or printing an error message, e.g. when attempting to divide by zero. We investigate the semantics of incompletely defined programs, define an interpreter for those programs and discuss the termination of incompletely defined procedures. We then analyze which problems need to be solved if a theorem prover designed for verification of completely defined programs is modified to work for incompletely defined programs as well. We also discuss how to reason about stuck computations which arise when calling incompletely defined procedures with invalid arguments. Our method of automated reasoning about incompletely defined programs has been implemented in the verification tool $\surd{\rm eriFun}$. We conclude by discussing experiences obtained in several case studies with this implementation and also compare and relate our proposal to other work.