生成无证据的Isabelle HTML文档**

生成无证据的Isabelle HTML文档**,isabelle,theorem-proving,Isabelle,Theorem Proving,我希望为Isabelle Theory生成HTML文档(例如HOL会话),但不包括证明 也就是说,我想生产像这样的网页 但不是,例如 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) prefe

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

也就是说,我想生产像这样的网页 但不是,例如

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文档特别感兴趣。)

不幸的是,目前在Isabelle中没有内置的方法来实现这一点(多年前,HTML生成通常包括摘要,但现在不再提供)

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

目前,您最好的选择是大纲PDF,正如Chris所建议的,可以使用如下命令

find_theorems name: "MyThy."

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

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

在Isabelle中,HTML表示曾经非常重要,然后其他工具,如在线<代码>查找定理<代码>或离线PDF文档变得更加强大和有用,现在还有Isabelle/jEdit,其显示质量与最初实现Isabelle HTML输出时的HTML浏览器相当

我不知道有什么简单的方法可以让你在《当代伊莎贝尔2013》中得到你想要的东西,但这不是不可能的,主要是需要对旧东西进行一些翻新,以适应新概念。由于现在使用静态网页浏览HTML有点过时,所以到目前为止它还没有得到最高优先级


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

在Isabelle的上下文中,这个问题是完全可以理解和有效的。你可以让你的归纳引理更强大:
(!!x.px0)=>(!!y.(!!x.pxy)=>p0(sucy))=>(!!y。(!!x.P x y)=>(!!x.P(Suc x)(Suc y))==>P x y
。使用
apply(导入y任意:x,自动)apply(case\u tac x,auto)
。但这不是你要求的…查看哪些定理可用
查找定理(使用适当的搜索条件)可能是一个比阅读大量HTML文件更好的解决方案。@chris:
查找定理
当然是一个重要的工具。但有时我发现通读整个理论以找出可用的内容非常有用。