我想在SMT 2.0中定义一个函数,它返回4个整数值的最小值 .
min4 函数(4个整数值中的最小值)可以在SMT 2.0语言中定义为:
min4
(define-fun min2 ((a Int) (b Int)) Int (ite (<= a b) a b)) (define-fun min3 ((a Int) (b Int) (c Int)) Int (min2 a (min2 b c))) (define-fun min4 ((a Int) (b Int) (c Int) (d Int)) Int (min2 a (min3 b c d)))
以下链接包含使用此功能的示例:http://rise4fun.com/Z3/wuyU
在SMT 2.0中, define-fun 本质上是一个宏定义 . SMT 2.0语言不支持期望任意数量参数的函数的定义 . 您可以考虑为SMT求解器使用编程API,例如Scala^Z3,SBV和Z3Py . 它们比SMT 2.0更方便使用 . 这是Z3Py中的相同示例:http://rise4fun.com/Z3Py/2vy
define-fun
1 回答
min4
函数(4个整数值中的最小值)可以在SMT 2.0语言中定义为:以下链接包含使用此功能的示例:http://rise4fun.com/Z3/wuyU
在SMT 2.0中,
define-fun
本质上是一个宏定义 . SMT 2.0语言不支持期望任意数量参数的函数的定义 . 您可以考虑为SMT求解器使用编程API,例如Scala^Z3,SBV和Z3Py . 它们比SMT 2.0更方便使用 . 这是Z3Py中的相同示例:http://rise4fun.com/Z3Py/2vy