变量是否有最大值大小?
Is there a maximum value size for variables?
假设我有以下(故意简单的)约束子部分:
..... SOME STUFF .....
(declare-const I Int)
(assert (and (>= I 0) (<= I 1)))
(define-fun W () Int
2251799813685248
)
..... MORE STUFF .....
(maximize (* I W))
(check-sat)
(get-model)
我给W的尺码是不是太大了?或者更一般地说,是否有可以在 Z3 中分配的最大大小值(例如,如果变量存储为常规 ints/floats/longs/etc 而不是可变精度)?
一个Int
值对应于一个数学整数。它可以是任意大小。没有最大值。
对于大小版本,您应该使用 bit-vectors:(_ BV n)
是大小为 n
的 bit-vector 的类型,它遵循机器算术规则。
假设我有以下(故意简单的)约束子部分:
..... SOME STUFF .....
(declare-const I Int)
(assert (and (>= I 0) (<= I 1)))
(define-fun W () Int
2251799813685248
)
..... MORE STUFF .....
(maximize (* I W))
(check-sat)
(get-model)
我给W的尺码是不是太大了?或者更一般地说,是否有可以在 Z3 中分配的最大大小值(例如,如果变量存储为常规 ints/floats/longs/etc 而不是可变精度)?
一个Int
值对应于一个数学整数。它可以是任意大小。没有最大值。
对于大小版本,您应该使用 bit-vectors:(_ BV n)
是大小为 n
的 bit-vector 的类型,它遵循机器算术规则。