在z3中部分解释Const

时间:2017-11-26 15:03:54

标签: z3 smt

在z3中,可以像这样声明一个完全未解释的const

(declare-const x Int)

同样,人们可以像这样定义一个完全解释的:

(define-fun y () Int 3)
; y == 3

给定一个代数数据类型,可以有一个完全解释的元组,如下所示:

(declare-datatypes () ((Item (mk-item (size Int) (weight Int)))))
(define-fun z () Item (mk-item 3 4))
; z == Item(size=3, weight=4)

......或者是非解释性的,如下所示:

(declare-const i1 (Item Int Int))

现在可以使用部分解释的数据类型,因此,根据前面的示例,weight将针对每个项目进行修复,而size可能会有所不同吗?

; (bad syntax, but I hope you get the idea)
; in this case the size is varying, but weight is fixed to 5
(declare-const i2 (Item Int 5))

0 个答案:

没有答案