Z3整数的子范围

Z3整数的子范围,z3,modulo,Z3,Modulo,似乎Z3中没有对整数子范围的良好支持。必须限制所有的“常量”和结果 `(assert (and (<= 0 x) (<= x nMax )))`. `(assert)和(我不知道有哪种解算器本机支持模块运算。 你可以使用位向量+参见Levent Erkok对的回答。底线:使用SMT-LIB没有一个好的方法。我发现,约束可以像我发现的那样公式化,约束也可以公式化为(assert(然后他们应该学习它。毕竟,约束求解器试图从给定的约束中学习越来越多的限制,以切割搜索空间并找到结果的值组

似乎Z3中没有对整数子范围的良好支持。必须限制所有的“常量”和结果

 `(assert (and (<= 0 x) (<= x nMax )))`.

`(assert)和(我不知道有哪种解算器本机支持模块运算。

你可以使用位向量+参见Levent Erkok对的回答。底线:使用SMT-LIB没有一个好的方法。我发现,约束可以像我发现的那样公式化,约束也可以公式化为
(assert(然后他们应该学习它。毕竟,约束求解器试图从给定的约束中学习越来越多的限制,以切割搜索空间并找到结果的值组合。模块化整数算法将从一开始就限制搜索空间。