【发布时间】:2020-07-15 20:27:10
【问题描述】:
过去我编写了一些 Z3Py 代码,现在我想将其转换为 C# .NetCore。我检查了很多例子,但我有一些问题:-)
我已经定义了名为 MyFun 的函数,它接受参数并根据值返回变量。简单例子:
H0 = BitVec('H0', 8)
H1 = BitVec('H1', 8)
H2 = BitVec('H2', 8)
H3 = BitVec('H3', 8)
I1 = BitVec('I1', 8)
T1 = BitVec('T1', 8)
def MyFun(N):
return z3.If(N == 0x00, H0,
z3.If(N == 0x01, H1,
z3.If(N == 0x02, H2, H3)))
s.add(T1 == z3.If(MyFun(I1) == 0x33, 0x11, 0x12) )
“函数定义”有问题,“z3.If”也有问题。我认为 MkFuncDecl 是为了别的。也许解决方案是用经典的 C# If 创建普通的 C# Function 然后直接调用它?我认为它必须在 Z3 中以某种方式定义...(由于速度,Z3 C#)或者它在 Z3Py 中也以相同的方式工作(Python 函数 与,Python如果包装)?
【问题讨论】: