Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在输入文件上调用Z3_Z3 - Fatal编程技术网

如何在输入文件上调用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格式的示例。