Z3 求解器 Z3_parse_smtlib2_file - Z3 C API 推弹出
Z3 Solver Z3_parse_smtlib2_file - Z3 C API push pop
如何在使用 Z3_parse_smtlib2_file API 读取基准时使用 (push) 和 (pop)。如何使用 [=15 获得 (assert(not(= o2_s o2_i ))) 和 (assert(not(= o1_s o1_i ))) 约束的结果=] API。我得到结果 (assert(not(= o1_s o1_i ))) 只有在阅读基准时使用 Z3_parse_smtlib2_file API 在 C.
(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 )))
目前不支持。 Z3_parse_smtlib2_file
仅从文件中提取断言并忽略大多数其他 SMT2 命令。 Z3目前不支持提取一组SMT2命令,以后可以修改。
如何在使用 Z3_parse_smtlib2_file API 读取基准时使用 (push) 和 (pop)。如何使用 [=15 获得 (assert(not(= o2_s o2_i ))) 和 (assert(not(= o1_s o1_i ))) 约束的结果=] API。我得到结果 (assert(not(= o1_s o1_i ))) 只有在阅读基准时使用 Z3_parse_smtlib2_file API 在 C.
(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 )))
目前不支持。 Z3_parse_smtlib2_file
仅从文件中提取断言并忽略大多数其他 SMT2 命令。 Z3目前不支持提取一组SMT2命令,以后可以修改。