dafny - 需要在 a 中断言 a[0]
问题描述
我目前正在学习 dafny 并遇到了一个非常奇怪的断言要求:
method M (a : seq<int>, acc : seq<int>)
requires |a| > 0
requires forall va, vacc :: va in a && vacc in acc ==> vacc <= va
{
assert forall vacc :: vacc in acc ==> vacc <= a[0];
}
上面的代码在断言上失败了,但是如果我添加assert a[0] in a
它验证?
为什么会出现这种情况,肯定在所有情况下都|a| > 0
a[0] in a
成立,因为seq
它是不可变的?
(也将不胜感激任何风格指南建议:))
解决方案
推荐阅读
- swift - 如何从 Swift 调用私有 macOS CoreFoundation 函数
- java - 我如何执行回滚插入和删除语句
- julia - Julia: How to pretty print an array?
- python-3.x - 使用 DjangoPaypal 进行订阅不起作用
- javascript - 如何修复低选择2显示
- java - 更新后无法取消通知
- ruby - 在 ruby 中使用 tap 代替 map 和 to_h
- java - java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void com.parse.ParseException.printStackTrace()”
- android - Flutter 中的动态启动画面
- c++ - 如何将物体移向以度为单位的角度?(C、C++)