(獲取分配)命令應該返回符號列表以及它們的真/假值,如果它們是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