(获取分配)命令应该返回符号列表以及它们的真/假值,如果它们是Bool类型的。根据我的理解,这只能在以下情况下完成:produce-assignments设置为true,并且(check-sat)返回时。但是,当我运行一个小脚本在Z3上测试这个时,(get-assignment)只返回() - 空白。 这里是我的脚本:Z3中的获取任务
(set-option :produce-assignments true)
(set-logic QF_UF)
(declare-fun a() Bool)
(declare-fun b() Bool)
(assert (= a b))
(check-sat)
(get-assignment)
对于它的价值,我可以证实这种行为Z3 [4.3.2版 - 64位 - 编译哈希码96f4606a7f2d]。有趣的是,将'(set-option:produce-models true)'放入前导中并在'(check-sat)'后放置'(get-value(ab))'产生'((false)(b false)) ',所以该作业似乎可用(请参阅http://rise4fun.com/Z3/zGH7)。它看起来好像'(get-assignment)'不被支持,并且好像使用它不会引发错误。 – 2013-05-03 06:57:19