有没有办法让z3求解器发出“符号”解决方案?例如,对于等式:
1 + X = C
解决方案是x = c-1,但z3始终发出特定模型,如[c = 0, x = -1]
。如何“定义”c作为符号变量?
答案 0 :(得分:2)
不幸的是,Z3没有公开这种功能。虽然我们在内部使用求解器,但它们不会在API中公开。在将来的版本中,我们希望公开内部组件,例如:solver,Grobner基础程序等。在当前版本中,我们有一个名为solve-eqs
的策略(参见http://rise4fun.com/Z3Py/tutorial/strategies)。它使用高斯消元的推广来消除变量。但是,这是一个预处理步骤,您无法控制哪些变量被消除。