我正在学习合金,并试图使它找到两个二元关系r和s,这样s等于r的传递闭包,并且s不等于r。我想我可以通过执行以下命令来让合金做到这一点:{ s : Vassert F { not ( some (s-r) and s=^r ) }现在合金4.2无法找到反例,尽管简单的三元素结构将是r = {(V0,V1), (V1,V2)}和s = r + {(V0,V2)}明显的结构。
我正在学习合金,并尝试为关系创建谓词injective和surjective。我使用以下模型在合金中尝试了这一点:sig B {}
all disj a, a': r.B | no (a.r &) no r: A -> B | injective[r]但是,我在no r上得到了这个错误
分析不能执行,因为它需要更高层次的量化我读过关于s