我们如何证明如果对于所有输入,f
并且g
返回相同的输出,那么这两个函数是等价的?
lemma func_ext(f: int -> int, g: int -> int)
requires forall x :: f(x) == g(x)
ensures f == g
我认为这是一个公理,但它不起作用。Dafny 中的函数外延性不成立吗?
我们如何证明如果对于所有输入,f
并且g
返回相同的输出,那么这两个函数是等价的?
lemma func_ext(f: int -> int, g: int -> int)
requires forall x :: f(x) == g(x)
ensures f == g
我认为这是一个公理,但它不起作用。Dafny 中的函数外延性不成立吗?
我认为 dafny 不支持函数外延性。我在官方文档中没有找到任何内容,但这里有评论链接,证实了这一点https://github.com/dafny-lang/dafny/issues/2308#issuecomment-1169553777