生成Isabelle HTML文档*无需校样*

时间:2013-08-02 14:23:27

标签: isabelle theorem-proving

我希望为Isabelle理论(例如HOL会话)生成HTML文档,但不包含证明

也就是说,我想制作像http://isabelle.in.tum.de/library/HOL/Nat.html这样的网页 但不是,例如,

lemma diff_induct: "(!!x. P x 0) ==> (!!y. P 0 (Suc y)) ==>
    (!!x y. P x y ==> P (Suc x) (Suc y)) ==> P m n"
  apply (rule_tac x = m in spec)
  apply (induct n)
  prefer 2
  apply (rule allI)
  apply (induct_tac x, iprover+)
  done

我只想看到

lemma diff_induct: "(!!x. P x 0) ==> (!!y. P 0 (Suc y)) ==>
    (!!x y. P x y ==> P (Suc x) (Suc y)) ==> P m n"

原因是我使用HTML页面来查看可用的定理,但证明只会分散注意力。 (我知道在生成PDF时可以省略证明,但我对HTML文档特别感兴趣。)

2 个答案:

答案 0 :(得分:1)

遗憾的是,目前在Isabelle中没有内置的方法(多年前用于包含摘要的HTML生成,但不再提供)。

您可以考虑对处理后生成的HTML文件进行处理,但这比听起来要复杂得多。

你最好的赌注目前是大纲PDF,正如克里斯所建议的那样,使用像

这样的命令
find_theorems name: "MyThy."

获得理论MyThy中所有定理的列表。您可以使用术语表达式或仅使用常量名称来扩充find_theorems命令,以将搜索范围缩小到特定常量。这通常比浏览很长的定理列表更有效。您可以类似地使用命令find_consts按类型,常量名称或理论名称查找常量,例如获得一个理论中定义的所有常量的列表。

答案 1 :(得分:0)

我最近遇到了coqdoc输出,并且可以从这个角度理解这个问题,尽管Coq HTML页面现在也显示了它们的年龄。

在Isabelle中,HTML演示曾经非常重要,然后其他工具(如在线find_theorems或离线PDF文档)变得更加强大和有用,现在Isabelle / jEdit的显示质量也接近于HTML浏览器Isabelle HTML输出首次实现的时间。

我不知道在当代Isabelle2013中获得你所要求的简单方法,但这并非不可能,大多需要对旧东西进行一些改造以适应新的概念。由于现在使用静态网页进行HTML浏览有点过时了,所以到目前为止它还没有成为首要任务。

无论如何,Isabelle / Scala(官方Isabelle系统编程接口)已经提供了一些公共API操作,以便从您在Isabelle / jEdit中在线查看的PIDE文档标记中获取XML树。对于那些了解这项业务的人来说,从那里开始,对于一些HTML + CSS并不是很远。但是,在Isabelle / jEdit中进行一些演示可能会更快,更有用,绕过众多的Web浏览器及其怪癖。