如何在输入文件上调用Z3
我有一个文件包含:如何在输入文件上调用Z3,z3,Z3,我有一个文件包含: (declare-const a Int) (declare-const b Int) (declare-const c Int) (declare-const d Real) (declare-const e Real) (assert (> a (+ b 2))) (assert (= a (+ (* 2 c) 10))) (assert (<= (+ c b) 1000)) (assert (>= d e)) (check-sat) (get-mode
(declare-const a Int)
(declare-const b Int)
(declare-const c Int)
(declare-const d Real)
(declare-const e Real)
(assert (> a (+ b 2)))
(assert (= a (+ (* 2 c) 10)))
(assert (<= (+ c b) 1000))
(assert (>= d e))
(check-sat)
(get-model)
所以我知道这是合法的Z3输入。然而,每当我运行“z3[option]”时,无论我选择什么选项,我都会收到错误消息——包括“无”。有人能告诉我如何正确调用输入文件上的Z3吗
关于。Z3支持多种输入格式。它使用文件扩展名猜测将使用哪个解析器。如果扩展名为
.smt2
。它将使用SMT2.0解析器。您还可以指定应该使用哪个解析器。选项-smt2
将强制Z3使用smt2.0解析器。最后,Z3默认情况下不启用模型构建。因此,您应该使用选项MODEL=true
,或者在脚本开头添加命令(set选项:product models true)
如果您想使用非常旧的Z3版本,则必须使用SMT1.0格式。
有关此格式的说明,请参见:
尽管如此,我强烈建议您升级。SMT 1.0对用户不是很友好,大多数SMT文档/教程都是SMT 2.0格式
以下是此格式的示例:
(benchmark file
:extrafuns ((a Int) (b Int) (c Int) (d Real) (e Real))
:assumption (> a (+ b 2))
:assumption (= a (+ (* 2 c) 10))
:assumption (<= (+ c b) 1000)
:assumption (>= d e)
:formula true)
(基准文件
:额外费用((a Int)(b Int)(c Int)(d Real)(e Real))
:假设(>a(+b 2))
:假设(=a(+(*2C)10))
:假设
:公式(真)
Z3支持多种输入格式。它使用文件扩展名猜测将使用哪个解析器。如果扩展名为.smt2
。它将使用SMT2.0解析器。您还可以指定应该使用哪个解析器。选项-smt2
将强制Z3使用smt2.0解析器。最后,Z3默认情况下不启用模型构建。因此,您应该使用选项MODEL=true
,或者在脚本开头添加命令(set选项:product models true)
如果您想使用非常旧的Z3版本,则必须使用SMT1.0格式。
有关此格式的说明,请参见:
尽管如此,我强烈建议您升级。SMT 1.0对用户不是很友好,大多数SMT文档/教程都是SMT 2.0格式
以下是此格式的示例:
(benchmark file
:extrafuns ((a Int) (b Int) (c Int) (d Real) (e Real))
:assumption (> a (+ b 2))
:assumption (= a (+ (* 2 c) 10))
:assumption (<= (+ c b) 1000)
:assumption (>= d e)
:formula true)
(基准文件
:额外费用((a Int)(b Int)(c Int)(d Real)(e Real))
:假设(>a(+b 2))
:假设(=a(+(*2C)10))
:假设
:公式(真)
我在脚本开头添加了(set选项:product models true),但所有解析选项仍然只生成错误消息。特别是-smt2是一个无法识别的选项(如果有帮助的话,我使用的是2.3版)。什么解析器适合我所展示的输入文件?这个文件是SMT2.0格式的。Z32.3是一个非常旧的版本。它甚至不支持SMT2.0。你应该在下载最新版本3.2。不幸的是,这是一项学校作业,我被迫使用大学实验室安装的任何版本。我更新了答案。我添加了SMT1.0格式的示例。我在脚本开头添加了(set选项:product models true),但所有解析选项仍然只生成错误消息。特别是-smt2是一个无法识别的选项(如果有帮助的话,我使用的是2.3版)。什么解析器适合我所展示的输入文件?这个文件是SMT2.0格式的。Z32.3是一个非常旧的版本。它甚至不支持SMT2.0。你应该在下载最新版本3.2。不幸的是,这是一项学校作业,我被迫使用大学实验室安装的任何版本。我更新了答案。我添加了SMT1.0格式的示例。