Z3 Solver Z3_parse_smtlib2_file - Z3 C API push pop

时间:2017-09-01 06:52:24

标签: z3

如何在使用Z3_parse_smtlib2_file API读取基准时使用(推送)和(弹出)。如何使用Z3_parse_smtlib2_file API获取(assert(not(= o2_s o2_i)))和(assert(not(= o1_s o1_i)))约束的结果。我只在使用C中的Z3_parse_smtlib2_file API读取基准时获得(assert(not(= o1_s o1_i)))的结果。

(declare-fun i_s () Int)
(declare-fun t_s () Int)
(declare-fun o1_s () Int)
(declare-fun o2_s () Int)
(declare-fun i_i () Int)
(declare-fun t_i () Int)
(declare-fun o1_i () Int)
(declare-fun o2_i () Int)

(assert(= i_s 10) )
(assert(>= (+ (- 5) (* 1 i_s)) 0))
(assert(= t_s (+ 1 (* 1 i_s))) )
(assert(< (+ (- 20) (* 1 t_s)) 0))
(assert(= o1_s (+ 1 (* 1 t_s))) )
(assert(= o2_s (+ 0 (* 1 t_s))) )

(assert(= i_i 10) )
(assert(>= (+ (- 5) (* 1 i_i)) 0))
(assert(= t_i (+ 2 (* 1 i_i))) )
(assert(< (+ (- 21) (* 1 t_i)) 0))
(assert(= o1_i (+ 0 (* 1 t_i))) )
(assert(= o2_i (+ 0 (* 1 t_i))) )

(push)

(assert(not(= o2_s o2_i )))
(pop)
(assert(not(= o1_s o1_i )))

1 个答案:

答案 0 :(得分:0)

目前不支持此功能。 Z3_parse_smtlib2_file仅从文件中提取断言,并忽略大多数其他SMT2命令。 Z3目前不支持提取一组可以在以后修改的SMT2命令。