2
我正在使用Z3 C++ API(版本4.3.1),我想提取公式的變量(expr
類型的對象)。我找到了similar question,但它在Z3py中。我想知道Z3 C/C++ API中是否有方法從expr
對象中提取變量。謝謝!Z3 - 如何從給定公式中提取變量?
例如(一些細節省略):
expr fs = implies(x + y == 0, z * x < 15);
std::vector<expr> varlist = get_vars(fs);
varlist
然後應包含X,Y,Z。
非常感謝,我還有一個問題。我注意到'e.is_app()'和'e.is_var()'是兩個不同的分支。但是,變量也是一個應用程序。那麼什麼樣的表達式'e'可以進入'e.is_var()'分支而不是'e.is_app()'分支? – cxcfan 2014-09-28 06:42:19
表達式可以是應用程序,量詞或綁定變量。 e.is_var()檢查僅對綁定變量成功。 Z3使用綁定變量的索引。所以e.is_app和e.is_var的情況從不重疊。 – 2016-11-28 17:36:25