某些程序分析可以编码为Chain程序(对应于无上下文语言),属于Datalog程序的受限形式。链式程序中的每个规则都具有以下格式:
p(X,Y): - q0(X,Z1),q1(Z1,Z2),q2(Z2,Z3)...,qn(Zn,Y)
我的问题是,与评估任意数据记录程序相比,Z3是否可以利用链式程序的结构并更有效地评估链式程序。
答案 0 :(得分:2)
Z3的有限状态数据记录引擎使用自下而上的评估。 它包括一个可以启用魔术集转换的选项。 在某些涉及连锁计划的案例中,这种转变确实存在奇迹 您可以通过将“:magic-sets-for-queries”设置为“true”来启用该选项。 希望这有帮助