我有一个关系不充分的关系称为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定理。>
如何像上述情况那样限制函数的域?