我发现在Yices中对匿名函数(lambda表达式)的支持非常有用。我现在正在尝试使用Z3来实现一个工具,但我无法弄清楚是否支持此功能。我正在使用-smt2标志调用该工具。谢谢你的帮助。
答案 0 :(得分:2)
AFAIK,Z3既不支持lambda表达式(参见主要Z3开发人员之一的Nikolaj Bjorner的this answer),也不是SMTLib2标准的一部分。支持lambda表达式的求解器,例如Yices或veriT,支持它们作为SMTLib2标准的自定义扩展。
根据您的需求(您可能希望通过在问题中添加示例来说明),您可以尝试使用Z3宏(define-fun
)或类似Z3Py的前端,与之比较手动编写SMTLib代码,简化了Z3的使用。