ReferencesTop3 Examples4 Future Work

4 Future Work

The RISC ProofNavigator has shown its usefulness in several small and not-so-small system verifications (some of which are contained in the software distribution). However, there are several issues that require further work:

Decision Procedures
The system is currently bound to the decision procedure CVCL Version 2.0 and does neither work with more recent versions of CVCL nor with other decision procedures. This is not a fundamental problem but a question of a mapping of the higher-order specification language used by the RISC ProofNavigator to the first-order languages supported by most provers and of corresponding software interfaces. A diploma thesis has recently started corresponding investigations.
Specification Language
The specification language of the system is very simple and does not support various features than can be found in other languages. For instance, it lacks the definition of recursive algebraic datatypes with structural induction as a proof principle and also a module system analogous to that of PVS. The introduction of corresponding features will be triggered by the integration of the system into a larger program reasoning framework.
Rewriting Proofs
The system is weak when it comes to proofs that essentially depend on applying universally quantified equalities (or equivalences or implications) as rewrite rules. For instance, the software distribution contains an example specification arrays.pn with an axiomatic characterization of arrays; based on this specification, the proof of the extensionality principle corresponding to the one presented in Section 3.2 becomes quite cumbersome. The system should be extended to allow to mark formulas of a certain form as "rewrite rules" that are automatically applied in proof state simplifications (such features can be e.g. found in PVS and Isabelle).
Proof Checking
The system stores the individual commands invoked in a proof for later replay; it does not generate proof objects that describe the individual low-level reasoning steps performed by the commands and that can be used for independent verification of a proof by an external proof checker. Some decision procedures (e.g. CVCL) optionally generate such objects as well as several interactive theorem provers (e.g. CoQ or Isabelle). It would be worthwhile to investigate similar features for the RISC ProofNavigator.

While some of above issues will be most probably tackled in the future, we will mainly concentrate on the development of an program exploration environment that integrates the RISC ProofNavigator as a reasoning component. The demands of this environment will drive the further elaboration of the software.


Wolfgang Schreiner

ReferencesTop3 Examples4 Future Work