在此示例中(在此处找到:z3py),我可以将c
与例如Color.green
。z3py将数据类型/枚举与字符串进行比较
Color = Datatype('Color')
Color.declare('red')
Color.declare('green')
Color.declare('blue')
Color = Color.create()
# Let c be a constant of sort Color
c = Const('c', Color)
# Then, c must be red, green or blue
prove(Or(c == Color.green,
c == Color.blue,
c == Color.red))
在我的应用程序有比较c
为Python字符串: 我想是这样的:
c = Const('c', Color)
solve(c == "green") # this doesn't work, but it works with Color.green
的方法效果如为IntSort
(见下文),但不是我自己的数据类型。
i = Int("i")
solve(i < 10)
我想过创建名称到值的全局映射(类似于你的“简写”),但我希望有一种“官方”方式。 你认为有可能通过合理的努力来实现这样的事情吗? – stklik
请参阅下面的我的(潜在)解决方案。我没有发现任何python测试运行,所以我不想创建拉请求。 @尼古拉 - Bjorner – stklik