【发布时间】:2022-01-16 08:48:33
【问题描述】:
我有一个 Python 函数,它接受一个实数并返回一个字符串,例如
def fun(x):
if x == 0.5:
return "Hello"
else:
return "Bye"
我启动了一个 z3 求解器:
from z3 import *
r = Real('r')
s = Solver()
现在我想告诉求解器find a value of r, such that fun(r) returns "Hello"。我面临以下问题:
- 如果
r = Real('r'),那么我不能调用fun(r),因为r是一个z3变量 - 我不能说
s.add(StringVal("Hello") == StringVal(fun(r)))是一个约束,因为1)r是一个z3 变量,2)r的解释尚不清楚。因此,我没有可以从中提取值并将其传递给fun的模型。
有没有可能实现我想要的?
【问题讨论】: