考虑到(a : Z)和(a >= 0),我希望有(n : N)这样的n = a。当然,这有点麻烦,因为n = a是异构的等式。
我找到了nat_abs,它做了类似的事情,除了它也处理负整数时的情况,而我知道我不这样做。
在精益公司如何处理这种情况?
发布于 2018-02-12 10:37:34
n = a不是一个异构的等式,因为您(希望)不能证明N = Z。您可以期望的最好的是int.of_nat n = a,您应该能够从a >= 0中证明int.of_nat (nat_abs a) = a。
请注意,您可以编写a = n,它将键入check,因为精益将强制n到int.of_nat n。这不是一个异构的等式,而是Z中的一个正常的等式。
https://stackoverflow.com/questions/48584559
复制相似问题