Peter Aczel的经典论文“归纳定义导论”
https://www.sciencedirect.com/science/article/pii/S0049237X08711200
在归纳定义中说,
规则是一对(X,x),其中X是一个集合,称为 premisses 的集合,x是结论。规则通常写成X-> x。
现在,这并没有说明集合X的有限性。
直到我的记忆,实际的验证任务只涉及有限前提集Xs,如
的反身和传递闭包。https://isabelle.in.tum.de/dist/Isabelle2017/doc/tutorial.pdf#page=124
我有两个相关的问题:
Isabelle有可能使用无限的前提吗?
如果是,是否有实际的例子?
答案 0 :(得分:3)
是的,它必须是有限的。你怎么会写下一套无限的规则?
当然,你拥有HOL的所有表现力,所以你可以写出像'∀x这样的东西。 fx≤f(x + 1)',它在某种意义上对应于无限多个子句'f0≤f1','f1≤f2'等,但这仍然只是一个假设。
编辑:在回复你的评论时,你可以像这样在Isabelle中捕获这个例子(如果我理解正确的话)
inductive acc :: "('a ⇒ 'a ⇒ bool) ⇒ 'a ⇒ bool" for lt where
"(⋀x. lt x a ⟹ acc lt x) ⟹ acc lt a"
此处,lt
代表“小于”并代表某种关系。这实际上与Isabelle / HOL中的Wellfounded.acc
理论中的Wellfounded
(如“可访问部分”中所做的那样)以及如何定义。这可能是一个稍微好一点的演示:
context
fixes lt :: "'a ⇒ 'a ⇒ bool" (infix "≺" 50)
begin
inductive acc :: "'a ⇒ bool" where
"(⋀x. x ≺ a ⟹ acc x) ⟹ acc a"
end
我只浏览了你所链接的文章,但在我看来,他所讨论的内容并不比伊莎贝尔的归纳谓词更为普遍。在我看来,他提供了一种定义归纳谓词P
的方法,它采用单个参数,并且所有生产规则必须采用(∀x∈A(a). P(x)) ⟹ P(a)
形式。这可以很容易地在Isabelle中建模,如上所示。