SMT求解器与精化计划在形式化设计中的应用
1 SMT求解器基础
1.1 SMT-LIB输入示例
SMT(Satisfiability Modulo Theories)求解器在形式化验证中发挥着重要作用,下面是使用λ - 基于方法和ppTrans方法生成的SMT - LIB输入示例。
λ - 基于方法:
1 (set-logic AUFLIA)
2 (declare-sort STATUS 0)
3 (declare-sort JOBS 0)
4 (declare-fun RUN () STATUS)
5 (declare-fun IDLE () STATUS)
6 (declare-fun proc () STATUS)
7 (declare-fun active () JOBS)
8 (declare-fun j () JOBS)
9 (declare-fun queue (JOBS) Bool)
10 (define-fun (par (X) (in ((x X) (s (X Bool))) Bool (s x))))
11 (define-fun (par (X)
12
(setminus ((s1 (X Bool)) (s2 (X Bool))) (X Bool)
13
(lambda ((x X)) (and (s1 x) (not (s2 x)))))))
14 (define-fun set1 ((x JOBS)) Bool (= x j))
15 (assert (and (forall ((x STATUS)) (or (= x RUN) (= x IDLE)))
16
(not (= RUN IDLE))
17
(=&g
SMT求解器与精化计划应用
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



