문제

I would like to know how iZ3 can be used to extract symmetric interpolants. Internally iZ3 uses FOCI and FOCI does have symmetric interpolant extraction. FOCI does not accept smt format So i wanted to know if there is any method of extracting symmetric interpolants from iz3 itself

Thanks in advance

도움이 되었습니까?

해결책

You can get symmetric interpolants as a special case of tree interpolants. Here's an example:

(declare-const a Int)
(declare-const b Int)
(declare-const c Int)
(declare-const d Int)
(compute-interpolant
  (and
    (interp (<= 0 a))
    (interp (and (= a b) (= b c)))
    (interp (and (= c d) (<= d -1)))))

Here is z3's output:

unsat
(>= a 0)
(= a c)
(<= c (- 1))

Have a look at the tutorial at http://rise4fun.com/iZ3/tutorial/guide under "Tree interpolants".

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top