与えられたいくつかの結果/ xペアに対して、単純な「result = x * t + c」式でcおよびt係数を見つけたいと思います。
from z3 import *
x=Int('x')
c=Int('c')
t=Int('t')
s=Solver()
f = Function('f', IntSort(), IntSort())
# x*t+c = result
# x, result = [(1,55), (12,34), (13,300)]
s.add (f(x)==(x*t+c))
s.add (f(1)==55, f(12)==34, f(13)==300)
t=s.check()
if t==sat:
print s.model()
else:
print t
...しかし、結果は明らかに間違っています。おそらく、関数の引数をマップする方法を見つける必要があります。
関数を正しく定義するにはどうすればよいですか?