![]() |
1
2
我觉得不错。在风格上,我会这样写:
这就清楚了你在检查什么。您可以放心,您的优化是很好的去! 关于distinct的注释
这个
如果你把它精确地传递给两个参数,它本质上等同于否定的等价。但是,对于>2参数,其行为是不同的:如果传递更多参数,它将确保成对不等式。(也就是说,所有的问题都必须是不同的。)它在许多问题上都非常有用。
将2个参数传递给
关于溢出/下溢检查的说明Patrick提出了溢出检查和使用机器整数的问题,他认为应该担心这些情况是正确的。我认为Nikita已经通过确保明确的界限来处理特定的用例了。然而,一个人不能太小心!出于这些目的,Z3实际上内置了溢出检查原语。详情请参见Nikolaj的这篇精彩论文: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/z3prefix.pdf Z3提供的原语有:
但是,请参阅有关可以用于检测其他操作溢出的逻辑公式的文章。(上面三个相当复杂,所以它们是原始支持的。对于其他情况,用户可以直接进行检查。) |