Asynchronous User Interaction and Tool Integration in Isabelle/PIDE
Author: Makarius Wenzel
Paper Information
| Title: | Asynchronous User Interaction and Tool Integration in Isabelle/PIDE |
| Authors: | Makarius Wenzel |
| Proceedings: | ITP 2014 LNCS Proceedings |
| Editors: | Gerwin Klein and Ruben Gamboa |
| Keywords: | user interfaces for interactive theorem provers, improvements in theorem prover technology, Isabelle/PIDE and Isabelle/jEdit |
| Abstract: | ABSTRACT. Historically, the LCF tradition of interactive theorem proving was tied to the read-eval-print loop, with sequential and synchronous evaluation of prover commands given on the command-line. This user-interface technology was adequate when R. Milner introduced his LCF proof assistant in the 1970-ies, but it severely limits the potential of current multicore hardware and advanced IDE front-ends. Isabelle/PIDE breaks this loop and retrofits the read-eval-print phases into an asynchronous model of document-oriented proof processing. Instead of feeding a sequence of individual commands into the prover process, the primary interface works via edits over a family of document versions. Execution is implicit and managed by the prover on its own account in a timeless and stateless manner. Various aspects of interactive proof checking are scheduled according to requirements determined by the front-end perspective on the proof document, while making adequate use of the CPU resources on multicore hardware on the back-end. Recent refinements of Isabelle/PIDE provide an explicit concept of asynchronous print functions over existing proof states. This allows to integrate long-running or potentially non-terminating tools into the document-model. Applications range from traditional proof state output (which may consume substantial time in interactive development) to automated provers and dis-provers that report on existing proof document content (e.g. Sledgehammer, Nitpick, Quickcheck in Isabelle/HOL). Moreover, it is possible to integrate query operations via additional GUI panels with separate input and output (e.g. for Sledgehammer or find-theorems). Thus the Prover IDE provides continuous proof processing, augmented by add-on tools that help the user to continue writing proofs. |
| Pages: | 16 |
| Talk: | Jul 15 17:00 |
| Paper: | ![]() |
