Dafny压扁套装

时间:2017-11-29 18:32:48

标签: dafny

所以我试图从一组集中获取所有元素,但是我收到了错误:

"集合理解必须产生一个有限的集合,但是Dafny的启发式算法无法弄清楚如何为' x'生成一组有限的值。 "

我认为这可能与您无法获得一组基数的事实有关。

感谢所有帮助。

function flatten(nested: set<set<int>>) : set<int>
    { set x | forall y :: y in nested && x in y :: x }

1 个答案:

答案 0 :(得分:1)

以下可能会做你想做的事:

function flatten(nested: set<set<int>>) : set<int>
{
    set x, y | y in nested && x in y :: x
}

你的定义完全不同。它说的是“所有y set<int>类型ynested位于xy的所有元素集合。在nested。“这通常是错误的(因此无用),因为它要求set<int>是包含所有类型S的集合的有限集。

最后,还要注意,可以使用表达式|S|获取集合btn.find('span').text('SHOW LESS'); 的基数。