Z3のC/C++ APIを使用して、SMTLib2形式の固定小数点制約(特にSeaHorn製ファイル)を解析しようとしています。しかし、文字列の解析時に私のアプリケーションがクラッシュする(私はZ3_fixedpoint_from_string
メソッドを使用しています)。私が扱っているZ3バージョンはバージョン4.5.1 64ビットです。Z3 API:固定小数点SMTLib文字列の解析時にクラッシュする
私がソースからコンパイルしたZ3バイナリを使って作品を解析しようとしましたが、Z3_fixedpoint_from_string
を呼び出すとセグメンテーションフォルトが発生します。私は問題点を、固定小数点コンテキストに関係を追加することに関連していると考えています。私のマシン上でワンセグ障害を作り出す簡単な例は以下の通りです:無効の読み取りと書き込みの
#include "z3.h"
int main()
{
Z3_context c = Z3_mk_context(Z3_mk_config());
Z3_fixedpoint f = Z3_mk_fixedpoint(c);
Z3_fixedpoint_from_string (c, f, "(declare-rel R())");
Z3_del_context(c);
}
valgrindのと、このコードを実行する多くのことを報告します。したがって、これはAPIの使用方法ではなく、どこかに問題があります。残念ながら、プログラムで固定小数点エンジンを使用する方法の例は見つかりませんでした。しかし、例えばZ3_fixedpoint_from_string (c, f, "(declare-var x Int)");
を呼び出すとうまく動作します。
ところで、Z3_del_fixedpoint()
はどこですか?
C/C++言語のようなものはありません。どの言語を使用していますか? – 2501
この例ではC APIを使用していますが、CとC++のAPI呼び出しを混在させる予定です。私はg ++ 4.9でこの例をコンパイルしました。 – Dan
あなたと他の人がそれを使用できるようにするために、これを追加しました。 https://github.com/Z3Prover/z3/commit/509f7409badc0e7834968511ca3c6b6f97fdaed6 –