首页> 外文期刊>Electronic Notes in Theoretical Computer Science >Asynchronous Proof Processing with Isabelle/Scala and Isabelle/jEdit
【24h】

Asynchronous Proof Processing with Isabelle/Scala and Isabelle/jEdit

机译:Isabelle / Scala和Isabelle / jEdit的异步证明处理

获取原文
           

摘要

After several decades, most proof assistants are still centered around TTY-based interaction in a tight read-eval-print loop. 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. There have been some attempts to re-implement prover interfaces in big IDE frameworks, while keeping the old interaction model. Can we do better than that?Ten years ago, the Isabelle/Isar proof language already emphasized the idea ofproof document(structured text) instead ofproof 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. 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.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. The remaining problem is how to do that systematically, without having to specify and implement complex protocols for prover interaction.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 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. 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). 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. Our plugins are written again in Scala for our convenience, and to leverage the Scalaactor libraryfor parallel and interactive programming. Thanks to the Isabelle/Scala layer, the Isabelle/jEdit implementation is very small and simple.
机译:几十年之后,大多数校对助手仍然围绕着基于TTY的交互作用,紧密地围绕着“阅读-评估-打印”循环。甚至众所周知的用于此类证明的Emacs模式都遵循基于具有立即响应的单个命令的同步模型,这意味着编辑器在每个命令之后都等待证明者。在保留旧的交互模型的同时,已经进行了一些尝试在大型IDE框架中重新实现证明者接口。我们可以做得更好吗?十年前,Isabelle / Isar证明语言已经强调证明文档(结构化文本)而不是证明脚本(命令序列)的想法,尽管该实现仍在模拟TTY交互以便能够使用当时出现的Proof General界面。在最近对Isabelle内部构件进行一些修改以支持理论和证明的并行处理之后,结构化文档处理的原始思想再次浮出水面.2009年或之后的Isabelle版本已经为具有异步检查功能的交互式证明文档提供了一些支持,有待进一步研究连接到合适的编辑器框架或全面的IDE。剩下的问题是如何系统地执行此操作,而不必为证明者交互指定和实现复杂的协议。这是我们引入新的Isabelle / Scala层的目的,该层旨在将Isabelle / ML的某些方面暴露给外部世界。为了方便地对著名的证明者概念进行建模,Scala语言(由Martin Odersky设计)非常接近ML,但是Scala也运行在JVM上并且可以直接访问现有的Java库。通过在Scala中为Isabelle构建越来越多的外部系统包装,我们最终达到了将证明者无缝集成到现有IDE(例如Netbeans)的地步。为了避免被IDE平台的复杂性所困扰,我们目前的实验集中在jEdit上,它是一个用Java编写的功能强大的编辑器框架,可以通过插件模块轻松地进行扩展。为了方便起见,我们再次使用Scala编写了我们的插件,并利用Scalaactor库进行并行和交互式编程。感谢Isabelle / Scala层,Isabelle / jEdit实现非常小而简单。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号