我在版本4.40的python上运行muZ。 对于一个查询,当我设置
时,我会得到不同的结果fp.set( "engine", "datalog" )
当我设置
fp.set( "engine", "pdr" )
以下程序对带有数据记录的查询和使用pdr
的查询返回不满sortTest, lList = EnumSort( "TestSort", ["1","2","3","4"] )
fp = Fixedpoint()
fp.set( "engine", "datalog" )
funcRel = Function( "TestFunc", sortTest, BoolSort() )
fp.register_relation( funcRel )
fp.fact( funcRel( lList[ 0 ] ) )
fp.rule( funcRel( lList[ 1 ] ), funcRel( lList[ 0 ] ) )
fp.rule( funcRel( lList[ 2 ] ), funcRel( lList[ 1 ] ) )
print fp.query( funcRel( lList[ 1 ] ) )
print fp.query( funcRel( lList[ 2 ] ) )
当我删除定义seconed规则的行时,即: fp.rule(funcRel(lList [2]),funcRel(lList [1])) 然后第一个查询返回sat with datalog
更新:当我用位向量替换枚举排序时,一切似乎都有效。 你能否确认这是问题?