达芙妮与布尔对不相等

时间:2019-06-06 13:26:18

标签: dafny

为什么这两个在达夫尼失败了?

lemma test(x : (int, bool)) {
  assert x == (x.0, true) || x == (x.0, false);
}

lemma test''(v : int, x : (int, bool))
  requires x.0 == v; 
{
  assert x == (v, true) || x == (v, false);
}

https://rise4fun.com/Dafny/DtDMdm

1 个答案:

答案 0 :(得分:2)

我猜想这与元组可以包含的泛型类型的内部布尔装箱有关。无论如何,这是一个简单的解决方法:

lemma test(x : (int, bool)) {
  var (i, b) := x;
  assert x == (x.0, true) || x == (x.0, false);
}

Rustan