muZ使用数据记录和pdr引擎返回不同的答案

时间:2015-06-06 20:00:29

标签: z3py

我在版本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

更新:当我用位向量替换枚举排序时,一切似乎都有效。 你能否确认这是问题?

0 个答案:

没有答案