Isabelle 在《伊莎贝尔》中使用“发现定理”

Isabelle 在《伊莎贝尔》中使用“发现定理”,isabelle,Isabelle,我想找到定理。我已经阅读了以下章节中关于查找定理的部分: 寻找新的标准 从匹配所有给定搜索的理论或证明上下文中检索事实 标准标准名称:p选择其完全限定的所有定理 名称与模式p匹配,模式p可能包含*通配符。标准简介, elim和dest选择符合当前目标的定理作为介绍, 消除或销毁规则。该准则解决了收益问题 直接解决当前目标的所有规则。标准simp:t 选择左侧与给定术语匹配的所有重写规则。这个 标准项t选择包含模式t的所有定理-与通常一样, 模式可能包含虚拟变量、原理图变量和 类型约束 标准前面可

我想找到定理。我已经阅读了以下章节中关于查找定理的部分:

寻找新的标准

从匹配所有给定搜索的理论或证明上下文中检索事实 标准标准名称:p选择其完全限定的所有定理 名称与模式p匹配,模式p可能包含*通配符。标准简介, elim和dest选择符合当前目标的定理作为介绍, 消除或销毁规则。该准则解决了收益问题 直接解决当前目标的所有规则。标准simp:t 选择左侧与给定术语匹配的所有重写规则。这个 标准项t选择包含模式t的所有定理-与通常一样, 模式可能包含虚拟变量、原理图变量和 类型约束

标准前面可以有-来选择不匹配的定理。笔记 给出空的标准列表会产生所有当前已知的事实。一 可给出印刷事实数量的可选限制;默认值为40。 默认情况下,将从搜索结果中删除重复项。与_dups一起使用,以 显示重复项

据我所知,在Isabelle/jEdit的查找窗口中使用了查找定理。以上并不能帮助我找到以下情况的相关定理:Lambda是一个推广理论。柏油球是:

当我尝试搜索表达式时,Lam Isabelle/jedit说

Inner syntax error: unexpected end of input
Failed to parse term
我怎样才能找到所有包含常数Lam的定理呢?

因为Lam和普通lambda%一样,不是一个单独的项,所以应该添加其余部分以得到一个合适的项,它可能包含通配符。在你的例子中,我会执行

find_theorems "Lam [_]. _"

这给出了很多答案。

通常,只要为某个常量定义了特殊语法,就会出现这种情况。但几乎总是有一个潜在的原始常数。找出哪个常数提供Lam[\uu]。\u语法。您可以在Isabelle/jEdit中的适当术语内按住Ctrl键并单击Lam。这将跳转到基础常量的定义

对于Lam,还有一个额外的复杂性,即绑定器语法使用与基础常量完全相同的字符串,即Lam,如定义处所示:

nominal_datatype lam =
  Var "name"
| App "lam" "lam"
| Lam x::"name" l::"lam"  binds x in l ("Lam [_]. _" [100, 100] 100)
在这种情况下,可以使用常量的长名称,方法是在其前面加上理论名称,即Lambda.Lam

注:与所有x一样,这同样适用于活页夹。具有基础常量All的px,但不适用于内置的%x。十,

nominal_datatype lam =
  Var "name"
| App "lam" "lam"
| Lam x::"name" l::"lam"  binds x in l ("Lam [_]. _" [100, 100] 100)