Скажем, я хочу ограничить каждый символ строки набором символов: [a-zA-Z0-9_] используя ограничения Z3, могу ли я использовать логический оператор, чтобы указать это?
Какпример:
input = [BitVec("input%s" % i, 8) for i in range(10)]
for i in range(10):
s.add(input[i] >= 0x30 and input[i] <= 0x39)
s.add(input[i] >= 0x41 and input[i] <= 0x5A)
s.add(input[i] >= 0x61 and input[i] <= 0x7A)
Это правильно?Любой другой эффективный способ определения ограничений?
Обычно в Python я могу сделать что-то вроде:
import string
charset = string.uppercase + string.lowercase + string.digits + "_"
for i in charset:
...
Можно ли сделать что-то подобное для определения ограничений в Z3?
Спасибо.