【发布时间】:2021-10-04 21:05:43
【问题描述】:
考虑下面的 dafny 函数:
function method unpair(n: nat): (nat, nat)
{
var x,y :| n == (x+y)*(x+y+1)/2 + y;
return (x,y)
}
给定一个自然数 n,我想确定 2 个满足方程 (x+y)*(x+y+1)/2 + y 的自然数 x 和 y。使用 Cantor 的配对函数可以做到这一点,但不确定我是否有正确的语法,因为 dafny 抛出错误:返回行上的“无效 LogicalExpression”。我该如何解决这个错误?
【问题讨论】: