简化z3中的含义

时间:2013-06-27 13:53:58

标签: z3

是否可以使用z3来简化此表达式

enter image description here

到这个

enter image description here

?如果是,我们应该如何实现呢?

1 个答案:

答案 0 :(得分:1)

这两个表达式并不相同。特别地,第一个公式暗示t_FC< 1。 您可以使用称为ctx-solver-simplified的策略来简化与您类似的公式,以利用上下文约束,例如t_FC< 1。

您的示例的编码在:http://rise4fun.com/Z3Py/xCN2

 tFb, tFc, tFt = Reals('tFb tFc tFt')

 g = Goal()
 g.add(And([Not(tFb >= 1),
   Implies(tFb <= 1, tFb + tFc <= 5),
   Implies(tFb <= 1, tFb + tFc + tFt <= 5),
   Implies(tFb <= 1, tFb + tFc + tFt <= 5),
   ]))

 print g
 print Tactic('ctx-solver-simplify')(g)

结果是:

¬(tFb ≥ 1), tFb + tFc ≤ 5, tFb ≤ 1 ⇒ tFb + tFc + tFt ≤ 5

教程http://rise4fun.com/Z3Py/tutorial/strategies解释了使用Z3中的策略(在python接口的上下文中)