小编use*_*891的帖子

数据类型包含Z3中的集合

如何创建包含一组其他对象的数据类型.基本上,我正在做以下代码:

(define-sort Set(T) (Array Int T))
(declare-datatypes () ((A f1 (cons (value Int) (b (Set B))))
  (B f2 (cons (id Int) (a  (Set A))))
 ))
Run Code Online (Sandbox Code Playgroud)

但是Z3告诉我对A和B的未知排序.如果我删除"Set",它就像指南所说的一样.我试图使用List,但它不起作用.谁知道如何让它工作?

z3

7
推荐指数
1
解决办法
1500
查看次数

Z3中的量词

基本上,我想让Z3给我一个任意整数,其值大于10.所以我写下面的语句:

(declare-const x (Int))
(assert (forall ((i Int)) (> i 10)))
(check-sat)
(get-value(x))
Run Code Online (Sandbox Code Playgroud)

如何将此量词应用于我的模型?我知道你可以写(assert(> x 10))来实现这一点.但我的意思是我想在我的模型量词所以每次我宣布一个整型常量,其值是保证时间将超过10所以我不必为每一个整型常量,我insert语句(主张(>×10))声明.

z3

5
推荐指数
1
解决办法
684
查看次数

合金传递闭合

这里的任何一个都可以解释传递闭包算子在矩阵方面如何在Alloy中工作.我的意思是将闭包运算符转换为实际矩阵运算的转换规则.

alloy

4
推荐指数
1
解决办法
1124
查看次数

标签 统计

z3 ×2

alloy ×1