問題は非常に単純です。C API インターフェイスを使用して、Z3 で次のステートメントをアサートします。
(assert(>= (xA 1) (- (yB 0) period))))
ここで、どのような種類のアサーションが供給され、SatSolver で結果が得られたかを確認する必要がある場合があります。これを行うには、ast_to_string() API を使用してテキスト ファイルを生成します。この API は、上記のステートメントを次のように返します -
(assert(>= (xA 1) (+ (yB 0) (* -1 period))))
このファイルを Sat Solver にフィードすると、次のエラーが表示されます -
(エラー「エラー: 行 150 列 56: ID -1 が見つかりませんでした。」)
そのため、コード内のすべての -1 を手動で修正し、sat ソルバーを実行する必要があります。これを回避できる他の方法はありますか?