簡體   English   中英

z3獲取符號變量C ++ API的大小

[英]z3 getting the size of a symbolic variable C++ API

我正在使用Z3_parse_smtlib2_string解析smtlib2公式。 公式看起來像:

(set-logic QF_AUFBV)(declare-fun SymVar_0 () (_ BitVec 32))(declare-fun SymVar_1 () (_ BitVec 8))...

我使用以下方法解析它:

Z3_ast ast = Z3_parse_smtlib2_string(ctx, (Z3_string)formula, 0, 0, 0, 0, 0, 0);

假設我現在要獲取SymVar_0的大小(應該返回32)。 我該怎么辦?

謝謝

名為Z3_get_bv_sort_size的函數應該可以完成這項工作。 請注意,這是一個C(不是C ++)函數,因此您還必須提供上下文。

為了其他面臨類似問題的用戶的利益:Z3中沒有符號表可讓您查找名稱的類型。 您可以通過運行所有子表達式並記錄在執行過程中遇到的所有符號及其類型來創建自己。 有關Python中的示例,請參見Z3py:如何從公式中獲取變量列表?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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