У меня есть набор символических переменных:Существует ли теория для неинтерпретируемых функций (анализ конгруэнтности)?
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?
Можно ли смешивать его с другими теориями, например, с линейной арифметикой?