The expressive theory of stacks
Acta Informatica
Journal of Symbolic Computation
Complexity analysis of term-rewriting systems
Theoretical Computer Science - Second Conference on Rewriting Techniques and Applications, Bordeaux, May 1987
A parallel object-oriented language with inheritance and subtyping
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Debugging Larch Shared Language Specifications
IEEE Transactions on Software Engineering
Handbook of theoretical computer science (vol. B)
Handbook of logic in computer science (vol. 2)
A New Incompleteness Result for Hoare's System
Journal of the ACM (JACM)
Abstract data types and software validation
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Mathematical Theory of Program Correctness
Mathematical Theory of Program Correctness
A Discipline of Programming
Fundamentals of Algebraic Specification I
Fundamentals of Algebraic Specification I
Operational Semantics for Order-Sorted Algebra
Proceedings of the 12th Colloquium on Automata, Languages and Programming
Design Strategies for Rewrite Rules
Proceedings of the 2nd International CTRS Workshop on Conditional and Typed Rewriting Systems
Family Values: A Semantic Notion of Subtyping
Family Values: A Semantic Notion of Subtyping
Automatically Checking an Implementation against Its Formal Specification
IEEE Transactions on Software Engineering
Rewriting of imperative programs into logical equations
Science of Computer Programming
IEEE Transactions on Computers
Checking formal specifications by testing
IW-FM'99 Proceedings of the 3rd Irish conference on Formal Methods
Hi-index | 0.01 |
This paper describes a uniform approach to the automation of verification tasks associated with while statements, representation functions for abstract data types, generic program units, and abstract base classes. Program units are annotated with equations containing symbols defined by algebraic axioms. An operation's axioms are developed by using strategies that guarantee crucial properties such as convergence and sufficient completeness. Sets of axioms are developed by stepwise extensions that preserve these properties. Verifications are performed with the aid of a program that incorporates term rewriting, structural induction, and heuristics based on ideas used in the Boyer-Moore prover. The program provides valuable mechanical assistance: managing inductive arguments and providing hints for necessary lemmas, without which formal proofs would be impossible. The successes and limitations of our approaches are illustrated with examples from each domain.