Jedit console plugin5/3/2023 ![]() Université Paris-Sud 11, LRI Orsay, France Available online at SciVerse ScienceDirectĮlectronic Notes in Theoretical Computer Science 285 (2012) 101-114Īsynchronous Proof Processing with Isabelle/Scala and Isabelle/jEdit Thanks to the Isabelle/ Scala layer, the Isabelle/ jEdit implementation is very small and simple. Our plugins are written again in Scala for our convenience, and to leverage the Scala actor library for parallel and interactive programming. To avoid getting side-tracked by IDE platform complexity, our current experiments are focused on jEdit, which is a powerful editor framework written in Java that can be easily extended by plugin modules. By building more and more external system wrapping for Isabelle in Scala, we eventually reach the point where we can integrate the prover seamlessly into existing IDEs (say Netbeans). The Scala language (by Martin Odersky) is sufficiently close to ML in order to model well-known prover concepts conveniently, but Scala also runs on the JVM and can access existing Java libraries directly. This is the point where we introduce the new Isabelle/ Scala layer, which is meant to expose certain aspects of Isabelle/ML to the outside world. The remaining problem is how to do that systematically, without having to specify and implement complex protocols for prover interaction. Isabelle versions from 2009 or later already provide some support for interactive proof documents with asynchronous checking, which awaits to be connected to a suitable editor framework or full-scale IDE. After some recent reworking of Isabelle internals, to support parallel processing of theories and proofs, the original idea of structured document processing has surfaced again. Ten years ago, the Isabelle/Isar proof language already emphasized the idea of proof document (structured text) instead of proof script (sequence of commands), although the implementation was still emulating TTY interaction in order to be able to work with the then emerging Proof General interface. There have been some attempts to re-implement prover interfaces in big IDE frameworks, while keeping the old interaction model. ![]() Even well-known Emacs modes for such provers follow this synchronous model based on single commands with immediate response, meaning that the editor waits for the prover after each command. ![]() Abstract of research paper on Computer and information sciences, author of scientific article - Makarius WenzelĪfter several decades, most proof assistants are still centered around TTY-based interaction in a tight read-eval-print loop.
0 Comments
Leave a Reply. |