在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))