Я пытаюсь найти решение для функции penta (n) = (n * (3n -1))/2 и где penta (z) = penta (a) + penta (b) для всех положительных чисел. Это работает до тех пор, пока целочисленное деление (div) не будет частью определения, но когда оно добавлено в определение, я либо получил тайм-аут, либо неизвестный. Я ожидал бы получить 8, 7, 4. Любая идея о том, что я сделал неправильно?неизвестно при использовании целочисленного деления в z3 smt2
(declare-const a Int)
(declare-const b Int)
(declare-const z Int)
(define-fun penta ((n Int)) Int (div (* (- (* 3 n) 1) n) 2))
(assert (= (penta z) (+ (penta a) (penta b)) ))
(assert (> a 1))
(assert (> b 1))
(assert (> z 1))
(check-sat)
(get-model)
Я использую версию на http://rise4fun.com/Z3 сайте и версии 4.1 (x64).