Z3 bddbddb中的非循环关系

Z3 bddbddb中的非循环关系,z3,boolean-logic,datalog,pydatalog,Z3,Boolean Logic,Datalog,Pydatalog,我使用Z3评估使用bddbddb格式()编写的数据日志程序 如何用bddbddb格式表示关系是非循环的 我指的是数据日志中的规则 :-rel(X,Y),rel(Y,X)。但您的描述并不清楚:您的示例是否循环?我认为这取决于rel的实现。如果您的意思是cyclic=recursive-bddbddb推断递归用法,因此无需在文件中指定它。或者你的意思是关系图-这是一个包含循环的关系图,但它甚至不能由bddbddb推断,因为它依赖于规则和事实。我想用数据日志规则来表示一个事实,例如,一个图不应该包含一

我使用Z3评估使用bddbddb格式()编写的数据日志程序

如何用bddbddb格式表示关系是非循环的

我指的是数据日志中的规则


:-rel(X,Y),rel(Y,X)。

但您的描述并不清楚:您的示例是否循环?我认为这取决于
rel
的实现。如果您的意思是cyclic=recursive-bddbddb推断递归用法,因此无需在文件中指定它。或者你的意思是关系图-这是一个包含循环的关系图,但它甚至不能由bddbddb推断,因为它依赖于规则和事实。我想用数据日志规则来表示一个事实,例如,一个图不应该包含一个循环::-rel(X,Y),rel(Y,X)。我的问题是如何使用bddbddb格式编写它。是否希望所有元组都满足
rel(X,Y),rel(Y,X)
?这是一个查询而不是规则,不是吗?因此,将其包含在文件中没有多大意义。定义一个派生所有这些元组的规则应该不难。你有没有尝试过
?-rel(X,Y),rel(Y,X)。
不幸的是,bddbddb的文档不是在线的,但我记得它是类似的。我尝试过?-rel(X,Y),rel(Y,X)。但它不起作用。是的,我的目标是检测满足规则rel(X,Y),rel(Y,X)的元组。这意味着元组在关系中创建了一个循环。