Z3 如何将SAT解算器的解(假设“SAT”结果)转换回问题域?

Z3 如何将SAT解算器的解(假设“SAT”结果)转换回问题域?,z3,solver,sat,Z3,Solver,Sat,比如说,我在CryptoMiniat或z3中有一个问题的SAT结果。如何将其转换回问题域?这可以用一个小例子来解释 like需要作为输入。 要创建这样的子句,可以使用类似的工具 输入到: 产生的输出由: 解决方案“SAT”的第一行表示找到了解决方案。 第二行列出了产生真值输出的输入值。 在这种情况下:变量4[A]=true,变量5[B]=false 变量1表示输出变量f。变量2和3是辅助变量 可以用作。但它也包含其他解算器,并被微软命名为定理证明器 BC1.0 f := A & ~B |

比如说,我在CryptoMiniat或z3中有一个问题的SAT结果。如何将其转换回问题域?

这可以用一个小例子来解释

like需要作为输入。 要创建这样的子句,可以使用类似的工具

输入到:

产生的输出由:

解决方案“SAT”的第一行表示找到了解决方案。 第二行列出了产生真值输出的输入值。 在这种情况下:
变量4[A]=true,变量5[B]=false
变量
1
表示输出变量
f
。变量
2
3
是辅助变量

可以用作。但它也包含其他解算器,并被微软命名为定理证明器

BC1.0
f := A & ~B | ~A & B;
ASSIGN f;
c This is a CNF SAT formula in the DIMACS CNF format,
c produced with the bc2cnf translator by Tommi Junttila;
c see http://users.ics.aalto.fi/tjunttil/circuits/index.html
c Modified and compiled by Axel Kemper: Jun 18 2017
c
c Commandline:
c .\bc2cnf -v test6.bc.txt test6.dimacs.txt
c CNF file created: Sat Dec 12 18:56:36 2020
c
c f <-> 1
c B <-> 4
c A <-> 5
p cnf 5 10
1 -2 0
1 -3 0
-1 3 2 0
1 0
-2 -5 0
-2 4 0
2 -4 5 0
-3 -4 0
-3 5 0
3 -5 4 0
SAT
1 2 -3 4 -5 0