Z3解算器Z3_解析_smtlib2_文件-Z3 C API推送pop

Z3解算器Z3_解析_smtlib2_文件-Z3 C API推送pop,z3,Z3,如何在使用Z3_parse_smtlib2_文件API读取基准时使用(push)和(pop)。如何使用Z3_parse_smtlib2_文件API获得(assert(not(=o2_s o2_I))和(assert(not(=o1_s o1_I))约束的结果。我仅在使用C中的Z3_parse_smtlib2_文件API读取基准测试时才获得(assert(not(=o1_s o1_I))的结果 (declare-fun i_s () Int) (declare-fun t_s () Int) (d

如何在使用Z3_parse_smtlib2_文件API读取基准时使用(push)和(pop)。如何使用Z3_parse_smtlib2_文件API获得(assert(not(=o2_s o2_I))和(assert(not(=o1_s o1_I))约束的结果。我仅在使用C中的Z3_parse_smtlib2_文件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 )))
(声明乐趣)
(声明funttus()Int)
(声明乐趣o1_s()Int)
(声明不完整)
(声明乐趣i_i()Int)
(声明fun t_i()Int)
(声明乐趣o1_i()Int)
(声明不完整)
(断言(=i_s 10))
(断言(>=(+(-5)(*1 i_s))0)
(断言(=t_s(+1(*1 i_s)))
(断言(<(+(-20)(*1 t_s))0)
(断言(=o1_s(+1(*1 t_s)))
(断言(=o2_s(+0(*1 t_s)))
(断言(=i_i 10))
(断言(>=(+(-5)(*1 i_i))0)
(断言(=t_i(+2(*1 i)))
(断言(<(+(-21)(*1 t_i))0)
(断言(=o1_i(+0(*1 t_i)))
(断言(=o2_i(+0(*1 t_i)))
(推)
(断言(不是(=o2_s o2_i)))
(流行音乐)
(断言(不是(=o1_s o1_i)))

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

目前不支持此操作
Z3_parse_smtlib2_文件
仅从文件中提取断言,并忽略大多数其他SMT2命令。Z3目前不支持提取一组SMT2命令,以后可以修改这些命令。

一旦从公式堆栈中弹出某个命令,它就消失了。如果可以增量地将多个文件解析到同一上下文中,那么您应该将文件分为3部分:一个
通用
文件部分、一个
第一推
部分和一个
第二推
部分;然后解析
common
部分,手动推送,解析
1st-push
部分,检查可满足性,手动弹出+手动推送,解析
2nd-push
部分,检查可满足性,手动弹出。一旦从公式堆栈中弹出某个内容,它就消失了。如果可以增量地将多个文件解析到同一上下文中,那么您应该将文件分为3部分:一个
通用
文件部分、一个
第一推
部分和一个
第二推
部分;然后解析
common
部分,手动推送,解析
1st-push
部分,检查可满足性,手动弹出+手动推送,解析
2nd-push
部分,检查可满足性,手动弹出。