【发布时间】:2018-05-06 13:13:31
【问题描述】:
我正在尝试验证一个哈希集,但我的插入方法遇到了问题。
我不明白为什么我在取消注释 main 中的插入时收到“调用可能违反上下文的修改子句”错误。我认为这与使用新鲜有关,但我不清楚如何/在哪里这样做。
【问题讨论】:
标签: dafny
我正在尝试验证一个哈希集,但我的插入方法遇到了问题。
我不明白为什么我在取消注释 main 中的插入时收到“调用可能违反上下文的修改子句”错误。我认为这与使用新鲜有关,但我不清楚如何/在哪里这样做。
【问题讨论】:
标签: dafny
问题在于 insert 声称要修改 this 和 a,这使得第一次调用 insert 将 a 字段更改为指向任意内容,然后第二次调用insert 修改了那个任意的东西。
一个简单的解决方案是将ensures a == old(a) 添加到insert。
【讨论】: