特定の線形方程式/不等式のセット (A) が別の線形方程式/不等式のセット (B) を伴うかどうかを判断するためのツールを探しています。戻り値は「true」または「false」のいずれかです。
説明のために、A と B の可能なインスタンスと、アルゴリズムの期待される戻り値を見てみましょう。
A: {Z=3,Y=Z+2, X < Y} ;
B: {X<5} ;
Expected result: true
A: {Z=3,Y=Z+2, X < Y} ;
B: {X<10} ;
Expected result: true
A: {Z=3,Y=Z+2, X < Y} ;
B: {X=3} ;
Expected result: false
A: {X<=Y,X>=Y} ;
B: {X=Y} ;
Expected result: true
A: {X<=Y,X>=Y} ;
B: {X=Y, X>Z+2} ;
Expected result: false
通常、A には最大 10 の方程式/不等式が含まれ、B には 1 つまたは 2 つのものが含まれます。それらはすべて線形で比較的単純です。すべての変数が整数であると仮定することさえできます。
AがBを伴うかどうかを判断するこのタスクは、より大きなシステムの一部であるため、そのようなものをすでに実装していて使用できるツール/ソースコード/パッケージを探しています。
私が見始めたもの:
- 代数による定理証明 - Otter、EQP、Z3 (Vampire は現在ダウンロードできません)。
- Coq 形式証明管理システム。
- 線形計画。
ただし、これらのツールに関する私の経験は非常に限られており、これまでのところ有望な方向性は見つかりませんでした。私よりも経験豊富な人々からのガイドラインやアイデアは、高く評価されます。
お時間をいただきありがとうございます!