如果我想检查一组中是否有另一组元素也是可能的?包含Z3中的两组
例如(包含SET1 SET2):
contains [1,2] [3,5] -> is false
contains [1] [2,3, 1] -> is true
的集合是有限的。和集合的最大值是5,最小值为0,则组可以不具有值大于5既不小于0
例如:
[1,5,3] -> valid set
[1,8,2] -> invalid set
假如它是用于一组并检查该集合中是否存在值很容易。它是以下列方式:
(declare-sort Set 0)
(declare-fun contains (Set Int) bool)
(declare-const set Set)
(declare-const A Int)
(assert (contains set A))
(assert (not (contains set 0)))
(check-sat)
但是对于两组我看不到它是如何完成的。
感谢您的关注。
我不想子集,因为我可以有'包含[1,2] [3,4,2] - >是TRUE'。 – Robert 2013-03-14 20:02:46
我用一个表达式更新了答案,这个表达式可以用来检查两个集合是否有共同的元素。它基本上只是检查交叉点是否为空。 – 2013-03-14 21:06:57
感谢您的帮助 – Robert 2013-03-15 09:34:49