我希望为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文档特别感兴趣。)
答案 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浏览器及其怪癖。