私はシンボリック変数のセットを持っています:
int a, b, c, d, e;
いくつかの公理によって制約される一連の未知の関数:
f1(a, b) = f2(c, b)
f1(d, e) = f1(e, d)
f3(b, c, e) = f1(b, e)
c = f1(a, b)
b = d
ここで関数f1
、f2
、f3
は不明ですが、修正されています。したがって、それは の理論ではありませんuninterpreted functions
。
次の主張の妥当性を証明したい:
c = f2(f1(a, b), b)
f3(d, f2(c, b), e) = f1(e, b)
上記の公理的等式に基づく置換を使用します。
関数の解釈を考え出すのではなく、提供された等式のみを使用して答えを結合しようとするような定理の理論はありますか?
もしそうなら、その理論の名前は何ですか? また、どの SMT ソルバーがそれをサポートしていますか?
線形算術のような他の理論と混合できますか?