Microsoft Z3命名断言

时间:2013-04-22 13:53:59

标签: assert z3 named

我需要在我的z3模型中命名一些断言,以便它能够生成不满的核心。

我可以像这样手动执行此操作:

(assert (! (assertion) :named x))

我只需要直接使用.NET API。

任何帮助?

1 个答案:

答案 0 :(得分:2)

Z3不直接通过.NET API支持此功能。相反,应该创建一个布尔常量(名称,例如x),然后可以用它来断言条件约束,例如,

solver.AssertAndTrack(constraint, x);

然后将约束命名为x,并使用此常量在不良核心中引用它。 有关Python中的示例,另请参阅此其他question; .NET API中的策略是相同的,只有函数名略有不同。