限制Isabelle关系中的域

时间:2018-11-24 19:14:38

标签: isabelle

我有一个关系不充分的关系称为r1。它被(隐式地)定义为一个函数:

r1: a' => a' => bool

但是,我注意到如果将类型限制为:

r2: b' => b' => bool

其中b'被定义为类型a',它具有取决于r的附加约束,这种关系实际上是有充分根据的,我可以将此良好属性与标准库的定理一起使用。

我的示例

更确切地说,我使用谓词finite_runs r s声明从状态s起我只能进行有限数量的转换(即,从s开始的关系是终止)。当然,如果一个人采用所有状态的集合,那么从finite_runs r s的事实来看,我无法推断出对于s'的所有状态我都有finite_runs r s'。但是,我需要最后一个属性来说明关系r在所有状态的集合中都有充分的依据。

但是后来,我意识到如果将r限制为在某些状态下连接到s的一组状态,则确实是有充分根据的。这很容易显示,因为finite_runs的归纳定义是

inductive finite_runs for r where
  "(⋀ s'. r s s' ⟹ finite_runs r s') ⟹ finite_runs r s"

因此,在某些证明中,我想使用r在集合{s'. r** s s'}上的充分根据给我的信息。但是,理论基础无法帮助我。对于这种情况,我希望可以说上述类型b'是类型a',并附加了{s'. r** s s'}的限制,然后针对该关系实例化Wellfoundedness定理。

如何像上述情况那样限制函数的域?

0 个答案:

没有答案