[英]retrieving value of an enumerated type in Z3Py
如何檢索枚舉變量v
的值? 例如,
vTyp, (val1,val2,val3) = EnumSort('vTyp',['val1','val2','val3'])
v = Const('my variable',vTyp)
現在, 只給定上述變量v
,我將如何檢索值的列表[val1,val2,val3]
的v
(其中val1,val3,val3
是表達如上)?
我試過[v.sort().constructor(0), ...(1), ...(2)]
但是構造函數方法沒有返回表達式。
表達式v.sort().constructor(0)
返回Z3函數聲明。 在Z3中,常量是具有0個參數的函數。 要在常量表達式中轉換聲明,我們應該使用v.sort().constructor(0)()
。
順便說一句,函數is_func_decl
可用於測試對象是否是Z3函數聲明。 函數is_expr
與Z3表達式等效。
print is_func_decl(v.sort().constructor(0))
print is_expr(v.sort().constructor(0))
print is_expr(v.sort().constructor(0)())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.