Rippling: a heuristic for guiding inductive proofs
Artificial Intelligence
Forward and backward simulations II.: timing-based systems
Information and Computation
Automatic generation of invariants and intermediate assertions
Theoretical Computer Science - Special issue: principles and practice of constraint programming
Automatic generation of state invariants from requirements specifications
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
An axiomatic basis for computer programming
Communications of the ACM
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
TAME: Using PVS strategies for special-purpose theorem proving
Annals of Mathematics and Artificial Intelligence
Proving Invariants of I/O Automata with TAME
Automated Software Engineering
Integrating Computer Algebra into Proof Planning
Journal of Automated Reasoning
Counterexample-Guided Abstraction Refinement
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
SCR: A Practical Approach to Building a High Assurance COMSEC Syste
ACSAC '99 Proceedings of the 15th Annual Computer Security Applications Conference
Dynamically discovering likely program invariants
Dynamically discovering likely program invariants
Timed I/O Automata: A Mathematical Framework for Modeling and Analyzing Real-Time Systems
RTSS '03 Proceedings of the 24th IEEE International Real-Time Systems Symposium
PVS Strategies for Proving Abstraction Properties of Automata
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
This paper reviews some common knowledge about establishing correctness of programs and the current status of program specification and verification. While doing so, it identifies several challenges related to the grand challenge of building a verifying compiler. The paper argues that invariants are central to establishing correctness of programs and that thus, a major part of an automatic program verifier must be automated support for verifying invariants, a significant problem in itself. The paper discusses where the invariants come from, what can be involved in establishing that they hold, and the extent to which the process of finding and proving invariants can be automated. The paper also discusses several of the related challenges identified, argues that addressing them would make the significance to global program behavior of feedback from a verifying compiler clearer, and recommends that many of them should be included within the scope of the grand challenge.