2014-03-25 79 views

回答

1

是的,有一種選擇;你可以使用Z3_mk_forall,它使用de-Brujin variable indexes。您可以使用 Z3_mk_bound創建索引變量,而不是常量,然後將它們的排序(排序)和名稱(decl_names)的數組傳遞給mk_forall或mk_exists。

+0

謝謝,克里斯多弗。我瞭解_'Z3_mk_forall'_可用於創建具有de-Brujin索引作爲綁定變量的通用量化公式。但是,對於嵌套量詞來說,這種方法非常麻煩,因爲它需要「移動」索引。另一方面,具有唯一約束變量的量化公式可以平凡地組成。所以,我最好在不創建全局聲明的情況下使用_'Z3_mk_forall_const'_。 –

+0

恐怕沒有直接的做法。然而,用於創建量詞的常量僅僅是爲了便於使用;內部任何東西無論如何都會被轉化爲de-Brujin指數。所以,一旦你創建了量詞,在其他地方重新使用常量應該是安全的。 –