dafny 不支持设置操作
Set operations unsupported in dafny
我是 dafny 的新手,在使用像这样的集合时遇到了一个问题:
var myset : set<(int, int)> := {(1, 10), (2, 20), (3, 20)};
- 如何将第一对放入变量中?然后如何访问这对中的每个值?
- 如何将一对添加到我的集合中?
数组以这种方式工作:myarray[i].0
和 myarray[i].1
。
集合是不可变的、无序的集合。
集合中没有“第一个”元素这样的东西。您可以像这样选择一个任意元素:
var x :| x in myset; // get an arbitrary element
x
肯定是集合中的 一个 元素,但你不知道是哪一个。例如,Dafny 验证了以下关于 x
的断言:
assert x == (1,10) || x == (2, 20) || x == (3, 20);
要添加元素,可以使用+
(和变量赋值):
myset := myset + {(4, 0)}; // add an element
我是 dafny 的新手,在使用像这样的集合时遇到了一个问题:
var myset : set<(int, int)> := {(1, 10), (2, 20), (3, 20)};
- 如何将第一对放入变量中?然后如何访问这对中的每个值?
- 如何将一对添加到我的集合中?
数组以这种方式工作:myarray[i].0
和 myarray[i].1
。
集合是不可变的、无序的集合。
集合中没有“第一个”元素这样的东西。您可以像这样选择一个任意元素:
var x :| x in myset; // get an arbitrary element
x
肯定是集合中的 一个 元素,但你不知道是哪一个。例如,Dafny 验证了以下关于x
的断言:assert x == (1,10) || x == (2, 20) || x == (3, 20);
要添加元素,可以使用
+
(和变量赋值):myset := myset + {(4, 0)}; // add an element