Z3 SMT解算器支持SMT-LIB 2.6 declare datatypes语句

Z3 SMT解算器支持SMT-LIB 2.6 declare datatypes语句,z3,smt,cvc4,Z3,Smt,Cvc4,for SMT-LIB版本2.6指定了一条(声明数据类型)语句。在该特性的示例中,提到了建议的语法与Z3和CVC4当时支持的语法不同 是否有任何支持SMT-LIB的SMT解算器当前支持SMT-LIB 2.6草案中建议的语法,或者有一个补丁将建议的语法支持添加到解算器中 我感兴趣的逻辑是QF_ABV加上简单n元组的数据类型。我不需要递归数据类型或参数化数据类型等高级数据类型功能。我在CVC4的最新开发版本(commit 594301e6f2893ebe9baba5083ff084933b1e9da

for SMT-LIB版本2.6指定了一条
(声明数据类型)
语句。在该特性的示例中,提到了建议的语法与Z3和CVC4当时支持的语法不同

是否有任何支持SMT-LIB的SMT解算器当前支持SMT-LIB 2.6草案中建议的语法,或者有一个补丁将建议的语法支持添加到解算器中


我感兴趣的逻辑是QF_ABV加上简单n元组的数据类型。我不需要递归数据类型或参数化数据类型等高级数据类型功能。

我在CVC4的最新开发版本(commit 594301e6f2893ebe9baba5083ff084933b1e9da9)中添加了对SMT LIB版本2.6数据类型的支持。默认情况下不启用2.6语法,但您可以使用:

cvc4--lang=smt2.6[输入]

希望这有帮助,
Andrew

Z3尚未实现规范草案中的语法。更重要的变化是引入了模式匹配,可以使用模式匹配编译器(或LISP程序员手工完成)来编译模式匹配。谢谢!JFYI:Yosys的write_smt2命令(因此Yosys smtbmc)现在可以使用SMT-LIB 2.6数据类型。以下是一个例子: