【发布时间】:2012-06-21 14:49:32
【问题描述】:
This post 展示了如何公理化 Z3 内置列表的长度函数。但是,该函数是特定于排序的(此处为 Int),不适用于布尔列表或自定义排序。
; declare len as an uninterpreted function
(declare-fun len ((List Int)) Int)
; assert defining equations for len as an axiom
(assert (forall ((xs (List Int)))
(ite (= nil xs)
(= 0 (len xs))
(= (+ 1 (len (tail xs))) (len xs)))))
编码排序通用列表函数的最聪明的方法是什么? (如果我没记错的话,函数本身不能是泛型的)。
【问题讨论】:
标签: list function generics z3 axiom