达夫尼。无法确定 LHS 的存在...对于序列

Dafny. Cannot establish the existence of LHS ... for sequences

对于下面的代码,我得到它无法确定满足 such-that 谓词的 LHS 值的存在。我怎样才能证明右边成立并且这样的 x 存在?

method Main() {
  var n : int := 10;
  var x : seq<int> :| n == |x| && forall i :: 0 <= i < |x| ==> -1 <= x[i] <= 1; 
}

https://rise4fun.com/Dafny/TiO5

你需要提供一个证人。以下断言可以解决问题:

method Main() {
  var n : int := 10;
  assert |[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]| == 10;
  var x : seq<int> :| n == |x| && forall i :: 0 <= i < |x| ==> -1 <= x[i] <= 1; 
}

但是,这将带您进入下一点,即

现在好像连这种小事都不支持了:

method Main() {
  var n : int := 10;
  var y : seq<int> :|  y  == [3];
  var x : seq<int> :|  x  ==  y;
  var z : seq<int> :| |z| == |y|;
}

Dafny 设法实例化了 x,但没有实例化 z。 也许 post 在他们的 GitHub/Issues?