Z3 如何确定给定实例的解的数量:代数生物学中的应用 请考虑以下问题 (declare-fun x1 () Bool) (declare-fun x2 () Bool) (declare-fun x3 () Bool) (declare-fun x4 () Bool) (define-fun conjecture () Bool (and (= (and x2 x3) x1) (= (and x1 (not x4)) x2) (= x2 x3) (= (not x3) x4))) (assert conjecture) (check-sat) (get-model) (assert (= x4 false)) (check-sat) (get-model)

Z3 如何确定给定实例的解的数量:代数生物学中的应用 请考虑以下问题 (declare-fun x1 () Bool) (declare-fun x2 () Bool) (declare-fun x3 () Bool) (declare-fun x4 () Bool) (define-fun conjecture () Bool (and (= (and x2 x3) x1) (= (and x1 (not x4)) x2) (= x2 x3) (= (not x3) x4))) (assert conjecture) (check-sat) (get-model) (assert (= x4 false)) (check-sat) (get-model),z3,Z3,相应的输出是 sat (model (define-fun x2 () Bool false) (define-fun x4 () Bool true) (define-fun x1 () Bool false) (define-fun x3 () Bool false) ) sat (model (define-fun x3 () Bool true) (define-fun x2 () Bool true)

相应的输出是

sat 
  (model 
    (define-fun x2 () Bool false) 
    (define-fun x4 () Bool true) 
    (define-fun x1 () Bool false) 
    (define-fun x3 () Bool false) ) 

sat 
  (model 
    (define-fun x3 () Bool true) 
    (define-fun x2 () Bool true) 
    (define-fun x1 () Bool true) 
    (define-fun x4 () Bool false) )
这个问题有两种解决办法。但是,请让我知道如何自动确定可能的解决方案的数量

其他例子:

(declare-fun x1 () Bool)
(declare-fun x2 () Bool)
(declare-fun x3 () Bool)
(declare-fun x4 () Bool)
(declare-fun x5 () Bool)
(define-fun conjecture () Bool
   (and (= (and x2 x3 (not x4)) x1) (= (and x1 (not x4) (not x5)) x2) 
   (= (and x2 (not x5)) x3) (= (and (not x3) x1) x4) (= (and x2 x3 (not x4)) x5)))
(assert conjecture)
(check-sat)
(get-model)
输出为:

sat 
(model 
  (define-fun x3 () Bool false) 
  (define-fun x1 () Bool false) 
  (define-fun x4 () Bool false) 
  (define-fun x5 () Bool false) 
  (define-fun x2 () Bool false) )
我如何知道这个解决方案是否是唯一的解决方案

其他在线示例

我正在尝试应用在会议上提出的方法。该方法在以下示例中表现良好:

代码:

输出:

[x = True]
x ≠ True
1
在线运行此示例

但在下面的示例中,该方法在线失败

def add_constraints(s, model):

x = Bool('x')
s.add(Or(x, True) == True)

notAgain = []
i = 0
for val in model:
  notAgain.append(x != model[val])

  i = i + 1
if len(notAgain) > 0:
  s.add(Or(notAgain))
  print Or(notAgain)
return s

s = Solver()
i = 0
add_constraints(s, [])
while s.check() == sat:
print s.model()
i = i + 1
add_constraints(s, s.model())
print i # solutions
输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14
在线运行此示例

最后一个例子的正确答案是2。你能告诉我为什么这种方法在这种情况下失败吗

修改后的泰勒代码的其他示例:

def add_constraints(s, model):
X = BoolVector('x', 4)
s.add(Or(X[0], False) == X[1])
s.add(Or(X[1], False) == X[0])
s.add(Or(Not(X[2]), False) == Or(X[0],X[1]))
s.add(Or(Not(X[3]), False) == Or(Not(X[0]),Not(X[1]),Not(X[2])))
notAgain = []
i = 0
for val in model:
  notAgain.append(X[i] != model[X[i]])
  i = i + 1
if len(notAgain) > 0:
  s.add(Or(notAgain))
  print Or(notAgain)
return s


s = Solver()
i = 0
add_constraints(s, [])
while s.check() == sat:
print s.model()
i = i + 1
add_constraints(s, s.model())
print i # solutions
输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14
在线运行此示例


非常感谢。

请参见以下相关问题:


见以下相关问题:


看起来你的问题纯粹是命题。如果这不是偶然发生的,您可能想看看SAT解算器sharpSAT、Dsharp、c2d等等。

看起来您的问题纯粹是命题问题。如果这不是偶然发生的,您可能希望查看SAT解算器sharpSAT、Dsharp、c2d等等。

第一个示例的解决方案是,将修改后的泰勒代码与Z3Py online一起使用:

代码:

输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14
在线运行此示例

第二个例子的解决方案是,在Z3Py online上使用修改后的泰勒代码:

代码:

输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14
在线运行此示例

其他例子:

(declare-fun x1 () Bool)
(declare-fun x2 () Bool)
(declare-fun x3 () Bool)
(declare-fun x4 () Bool)
(declare-fun x5 () Bool)
(define-fun conjecture () Bool
   (and (= (and x2 x3 (not x4)) x1) (= (and x1 (not x4) (not x5)) x2) 
   (= (and x2 (not x5)) x3) (= (and (not x3) x1) x4) (= (and x2 x3 (not x4)) x5)))
(assert conjecture)
(check-sat)
(get-model)
代码:

输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14
在线运行此示例

其他例子:

(declare-fun x1 () Bool)
(declare-fun x2 () Bool)
(declare-fun x3 () Bool)
(declare-fun x4 () Bool)
(declare-fun x5 () Bool)
(define-fun conjecture () Bool
   (and (= (and x2 x3 (not x4)) x1) (= (and x1 (not x4) (not x5)) x2) 
   (= (and x2 (not x5)) x3) (= (and (not x3) x1) x4) (= (and x2 x3 (not x4)) x5)))
(assert conjecture)
(check-sat)
(get-model)
代码:

输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14
在线运行此示例


非常感谢Taylor。

第一个示例的解决方案是,在Z3Py online上使用修改后的Taylor代码:

代码:

输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14
在线运行此示例

第二个例子的解决方案是,在Z3Py online上使用修改后的泰勒代码:

代码:

输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14
在线运行此示例

其他例子:

(declare-fun x1 () Bool)
(declare-fun x2 () Bool)
(declare-fun x3 () Bool)
(declare-fun x4 () Bool)
(declare-fun x5 () Bool)
(define-fun conjecture () Bool
   (and (= (and x2 x3 (not x4)) x1) (= (and x1 (not x4) (not x5)) x2) 
   (= (and x2 (not x5)) x3) (= (and (not x3) x1) x4) (= (and x2 x3 (not x4)) x5)))
(assert conjecture)
(check-sat)
(get-model)
代码:

输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14
在线运行此示例

其他例子:

(declare-fun x1 () Bool)
(declare-fun x2 () Bool)
(declare-fun x3 () Bool)
(declare-fun x4 () Bool)
(declare-fun x5 () Bool)
(define-fun conjecture () Bool
   (and (= (and x2 x3 (not x4)) x1) (= (and x1 (not x4) (not x5)) x2) 
   (= (and x2 (not x5)) x3) (= (and (not x3) x1) x4) (= (and x2 x3 (not x4)) x5)))
(assert conjecture)
(check-sat)
(get-model)
代码:

输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14
在线运行此示例

非常感谢泰勒。

其他示例:

(declare-fun x1 () Bool)
(declare-fun x2 () Bool)
(declare-fun x3 () Bool)
(declare-fun x4 () Bool)
(declare-fun x5 () Bool)
(define-fun conjecture () Bool
   (and (= (and x2 x3 (not x4)) x1) (= (and x1 (not x4) (not x5)) x2) 
   (= (and x2 (not x5)) x3) (= (and (not x3) x1) x4) (= (and x2 x3 (not x4)) x5)))
(assert conjecture)
(check-sat)
(get-model)
代码:

输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14
联机运行此示例

其他示例:

(declare-fun x1 () Bool)
(declare-fun x2 () Bool)
(declare-fun x3 () Bool)
(declare-fun x4 () Bool)
(declare-fun x5 () Bool)
(define-fun conjecture () Bool
   (and (= (and x2 x3 (not x4)) x1) (= (and x1 (not x4) (not x5)) x2) 
   (= (and x2 (not x5)) x3) (= (and (not x3) x1) x4) (= (and x2 x3 (not x4)) x5)))
(assert conjecture)
(check-sat)
(get-model)
代码:

输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14

在线运行此示例

其他示例:控制拟南芥花形态发生的布尔网络模型

代码:

输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14

在线运行此示例

其他示例:控制拟南芥花形态发生的布尔网络模型

代码:

输出:

F:\Applications\Rise4fun\Tools\Z3Py timed out
[x1 = False, x0 = False, x3 = False, x2 = True]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ True ∨ x3 ≠ False
[x1 = True, x0 = True, x3 = False, x2 = False]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ False ∨ x3 ≠ False
2
[x1 = False, x3 = True, x0 = False, x2 = False]
x0 ≠ False ∨ x1 ≠ False ∨ x2 ≠ False ∨ x3 ≠ True
[x1 = True, x0 = True, x3 = False, x2 = True]
x0 ≠ True ∨ x1 ≠ True ∨ x2 ≠ True ∨ x3 ≠ False
2
[x0 = False, x3 = False, x4 = False, x2 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
1
[x0 = False, x4 = False, x2 = False, x3 = False, x1 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False
[x1 = True, x0 = True, x4 = True, x3 = True, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ True ∨
x4 ≠ True
[x1 = True, x0 = True, x4 = False, x3 = False, x2 = True]
x0 ≠ True ∨
x1 ≠ True ∨
x2 ≠ True ∨
x3 ≠ False ∨
x4 ≠ False
3
[x11 = True,
x6 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = True,
x5 = False,
x4 = True,
x3 = False,
x2 = False,
x1 = True,
x0 = False]
x0 ≠ False ∨
x1 ≠ True ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ True ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ True ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ True
[x11 = False,
x1 = False,
x5 = False,
x0 = False,
x10 = False,
x9 = False,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ False ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ False ∨
x10 ≠ False ∨
x11 ≠ False
[x11 = False,
x1 = False,
x5 = False,
x0 = True,
x10 = True,
x9 = True,
x4 = False,
x8 = False,
x6 = False,
x7 = False,
x3 = False,
x2 = False]
x0 ≠ True ∨
x1 ≠ False ∨
x2 ≠ False ∨
x3 ≠ False ∨
x4 ≠ False ∨
x5 ≠ False ∨
x6 ≠ False ∨
x7 ≠ False ∨
x8 ≠ False ∨
x9 ≠ True ∨
x10 ≠ True ∨
x11 ≠ False
3  
State  1
[x17 = False,
x0 = False,
x16 = True,
x21 = True,
x22 = False,
x20 = False,
x19 = False,
x15 = False,
x14 = False,
x13 = False,
x12 = False,
x11 = False,
x10 = False,
x9 = False,
x8 = False,
x7 = False,
x4 = True,
x3 = True,
x18 = False,
x6 = False,
x5 = False,
x2 = False,
x1 = False]
State  2
[x11 = False,
x22 = False,
x0 = False,
x10 = False,
x12 = False,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = False,
x13 = False,
x20 = False,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = False,
x6 = False,
x7 = False,
x8 = False,
x16 = False]
State  3
[x11 = True,
x22 = False,
x0 = True,
x10 = False,
x12 = True,
x3 = False,
x14 = False,
x21 = False,
x2 = False,
x1 = False,
x17 = False,
x5 = True,
x13 = False,
x20 = True,
x4 = False,
x9 = False,
x15 = False,
x19 = False,
x18 = True,
x6 = True,
x7 = False,
x8 = False,
x16 = False]
Number of States= 3
Number of States= 14

第二个例子中的问题是没有生成模型,因为约束Orx的可满足性,True==True与对x的赋值无关。如果您启用模型完成功能,其他人可能会通过z3py告诉我们如何完成,这可能会给x分配一个任务。但是,这仍然不能解决问题,因为x是否为真不会导致约束变得不可满足,因此它将永远运行。在第一个例子中,Orx,False==True要求将x赋值为True才能满足要求,因此生成了一个模型来说明这一点。非常感谢您的回答。请让我知道下面的例子会发生什么:在这个例子中,解决方案的数量只有一个,但代码是2。这是错误的。代码假定列表模型上有一个顺序:replace notAgain.appendX[i]!=带notAgain的模型[val]。附录[i]!=型号[X[i]]。如果您在模型上的循环中打印val,您可以看到问题。非常感谢,现在代码执行得非常好。第二个示例中的问题是,没有生成任何模型,因为约束Orx,True==True的可满足性独立于对x的赋值。如果您启用模型完成功能,其他人可能会通过z3py告诉我们如何完成,这可能会给x分配一个任务。但是,这仍然不能解决问题,因为x是否为真不会导致约束变得不可满足,因此它将永远运行。在第一个例子中,Orx,False==True要求将x赋值为True才能满足要求,因此生成了一个模型来说明这一点。非常感谢您的回答。请让我知道下面的例子会发生什么:在这个例子中,解决方案的数量只有一个,但代码是2。这是错误的。代码假定列表模型上有一个顺序:replace notAgain.appendX[i]!=带notAgain的模型[val]。附录[i]!=型号[X[i]]。如果您在model上的循环中打印val,您就会看到问题。非常感谢,现在代码执行得非常好。