Section: Application Domains
Implementing trusted proof checkers
Traditionally, theorem provers—whether interactive or automatic—are usually monolithic: if any part of a formal development was to be done in a particular theorem prover, then the whole of it would need to be done in that prover. Increasingly, however, formal systems are being developed to integrate the results returned from several, independent and high-performance, specialized provers: see, for example, the integration of Isabelle with an SMT solver [55] as well as the Why3 and ESC/Java systems.
Within the Parsifal team, we have been working on foundational aspects
of this multi-prover integration problem. As we have
described above, we have been developing a formal framework for
defining the semantics of proof evidence. We have also been working
on prototype checkers of proof evidence which are capable of
executing such formal definitions. The proof definition language
described in the papers [52], [51] is
currently given an implementation in the
Using