我的理解是,以下代码行有效地将r12 = r0添加到“环境”中,在该环境下Z3将在类型检查期间尝试满足约束:
prval()= is_fun(pf12,pf0)
认为这实际上减少了约束的数量是不正确的,因为应用r12 = r0可能允许求解器证明两个先前唯一的约束现在是等价的?而且,一旦我们充分减少了约束的数量,归纳假设和我们的基本情况将提供解决方案的其余部分?
我试图大致了解幕后发生的事情,以帮助理解如何在函数式编程中构建证明。
答案 0 :(得分:1)
我想说它增加了一条额外的信息,约束求解器可以使用它来解决约束(在这个新信息可用的适当范围内生成)。