crosshair未找到反例时,是否使用Z3求解器证明我的合同成立?
docs表示缺少反例并不能保证该属性成立,而仅仅是因为翻译或建模可能不正确?
免责声明:我是CrossHair的主要贡献者(我只是使用堆栈溢出作为记录我以前被问到的问题的答案的公共方式)
除了不完善的建模可能存在的许多问题之外,CrossHair不提供此保证。
CrossHair是一个疯狂的incomplete系统。在内部,对于每个后置条件,它将生成三个可能的结果:“已确认”,“已拒绝”和“未知”。它仅针对“被拒绝”情况产生输出;因此,没有输出并不表示对该语句的验证。
为什么CrossHair这样工作?两个原因:
所有这些,如果您仍然想查看可以确认的属性,可以使用特殊的“全部报告”选项来请求此输出:crosshair check --report_all [TARGET]
。