【发布时间】:2021-06-26 03:45:57
【问题描述】:
我正在尝试在 python 中使用 Z3 求解器来创建谓词 path(list),如果 list 是给定图 G 上的有效路径,则返回 true
我想用 Z3 构造一个元组列表来表示图中存在的所有边,这是我的第一次尝试:
from z3 import *
IntPair = TupleSort("IntPair", [IntSort(), IntSort()])
List = Datatype('List')
List.declare('list', ('head', IntPair), ('tail', List))
List.declare('empty')
List = List.create()
但是我得到一个错误:
Z3Exception:预期访问器的有效列表。访问器是一对形式 (String, Datatype|Sort)
从这一行开始:
List.declare('list', ('head', IntPair), ('tail', List))
我不确定哪个访问者违反并导致此错误。如果我们考虑一个整数列表:
List.declare('list', ('head', IntSort()), ('tail', List))
上面将运行没有错误。
谢谢。
【问题讨论】:
-
IntPair的定义是什么? -
@ChristophWintersteiger 道歉,
IntPairSort应该是IntPair