Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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-fun f (Int) Int) (assert (= (f 10) 1)) (check-sat) (get-model) 按预期生成f的解释。但是,将常数更改为除10以外的任何值,Z3只需旋转箭头几次,然后什么也不打印 ---------------------------------------原始问题----------------------------- 我在下面的输入上尝试了Z3,箭头旋转了几次并

我最初发布的问题如下面的虚线所示,但此后我有了一个更简单的示例:

(declare-fun f (Int) Int)
(assert (= (f 10) 1))
(check-sat)
(get-model)
按预期生成f的解释。但是,将常数更改为除10以外的任何值,Z3只需旋转箭头几次,然后什么也不打印

---------------------------------------原始问题-----------------------------

我在下面的输入上尝试了Z3,箭头旋转了几次并停止了,但Z3打印或什么也没说。为什么?

(declare-fun f (Int Int) Int)
(assert (>= (f 1 1) 1)) 
(assert (>= (f 1 2) 2))
(assert (>= (f 2 1) 2))
(assert (>= (f 2 2) 2))
(assert (= (f 1 1) 1))
(assert (= (f 2 2) 2))
(assert (or (= (f 1 2) 1)  (= (f 1 2) 2)))
(assert (or (= (f 2 1) 1)  (= (f 2 1) 2)))
(check-sat)
(get-model)
我觉得我错过了一些非常明显的东西。

我正在获得(使用iZ3、Z3不稳定分支)


在线运行此示例

我猜您正在rise4fun上使用Z3?在那里运行的版本可能有点过时。我们必须手动更新那里的二进制文件。如果它没有回复,要么是因为超时,要么是因为存在其他问题(例如segfault)。rise4fun上的版本很可能会出现其他版本的Z3(例如,不稳定、iZ3等)中已经修复的错误。

你是对的,本文中的示例由不稳定的Z3和iZ3正确执行。好的,很高兴知道。修复rise4fun不是更好吗?对于很多Z3的新手来说,这是他们的切入点,我可以想象他们在Z3中看到这种行为时的困惑!
sat 
(model 
  (define-fun f ((x!1 Int) (x!2 Int)) Int 
    (ite (and (= x!1 1) (= x!2 1)) 1 
    (ite (and (= x!1 2) (= x!2 2)) 2 
    (ite (and (= x!1 1) (= x!2 2)) 2 
    (ite (and (= x!1 2) (= x!2 1)) 2 2))))) 
 )