2
Может ли кто-то любезно указать, почему окончательный запрос не имеет выхода?фиксированные точки в Z3
В основном я говорю Z3, если vs-) vd и vs-> ss и vd-> sd, то sd получается из ss.
(set-option :fixedpoint.engine datalog)
(define-sort site() (_ BitVec 3))
(declare-rel pointsto (Int site))
(declare-rel dcall (Int Int))
(declare-rel derived (site site))
(declare-var vs Int)
(declare-var vd Int)
(declare-var ss site)
(declare-var sd site)
;;;;; definition of derived ;;
(rule (=> (and (dcall vs vd) (pointsto vs ss) (pointsto vd sd)) (derived ss sd)))
(rule (dcall 11 12))
(rule (pointsto 11 #b001))
(rule (pointsto 12 #b010))
(query (derived #b001 #b010))
Синтаксис кажется неправильным. Почему вы пишете pointsto (против сс) вместо (pointsto против сс) ? –
Извините. Опечатка. теперь исправлено. Но результатов пока нет. – Tim
Запустив на локальном Z3 вместо boost4fun, я нашел «libC++ abi.dylib: завершение с неперехваченным исключением типа std :: bad_cast: std :: bad_cast» – Tim