簡體   English   中英

在Z3Py中檢索枚舉類型的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM