Я хочу разработать функцию для вычисления длины в Z3 для списка, но я думаю, что я делаю это неправильно. Я новичок в использовании Z3, и понятия не имею. Я сделал это:
def length(numbers):
cont = 0
x, length = Ints('x length')
s = Solver()
for x in numbers:
cont +=1
dato = Implies(cont >0 , length == cont), Or(Implies(cont == 0, length == cont))
s.add(dato)
n = Solver()
solve(dato)
if s.check() == unsat:
print(cont)
else:
# print("true")
print(s.model())
if __name__ == '__main__':
my_list = [1, 2,"p", 3,6,503]
length([])
length(my_list)
Но я думаю, что мне следует использовать функцию Z3, потому что, если я хочу создать больше методов (isNull, isEmpty ...) и вызывать их одновременно, Длина для создания аксиом, но я не могу для текущей реализации.