2
想想看,我有一個簡單的SMT-lib的公式:如何從SAT模型中獲取「真實」變量?
(declare-const a Bool)
(declare-const b Bool)
(declare-const c Bool)
(declare-const d Bool)
(assert (or a b))
(assert (or d c))
(check-sat)
(get-model)
當SAT求解器給出了一個模型。它提供了有真/假值的所有變量。但我只想要「真」價值分配變量。這可能與Z3?
謝謝,您的及時答覆..但我不想遍歷整個變量。可能是我有大量的變量,然後我在線性時間檢查他們的任務。我以爲Z3知道變量賦值是否有任何配置只會給出「真實」值的變量。 – user1770051
泰勒的解決方案以線性時間打印「真實」值變量。請記住,這比's.check()'快。 –
感謝Leonardo de Moura,我的意思是,如果我遵循泰勒的解決方案,那麼我必須在線性時間檢查所有變量賦值。但我不想這樣做。我問 - Z3是否有任何配置,以便它始終只爲模型提供「真正的」有價值的變量? – user1770051