我是一个与Z3合作的新人。集z3中的最大值
想知道我该如何计算一个集合和两个不同集合的最大值。
例如: [1, 6, 5]
- 越大6 [1, 6, 5]
Ë[10, 7, 2]
- 越大6
我用下面的代码来设置:
(declare-sort Set 0)
(declare-fun contains (Set Int) bool)
(declare-const set Set)
(declare-const distinct_set Set)
(declare-const A Int)
(declare-const B Int)
(declare-const C Int)
(assert (= A 0))
(assert (= B 1))
(assert (= C 2))
(assert (distinct A C))
(assert (distinct set distinct_set))
(assert
(forall ((x Int))
(= (contains set x) (or (= x A) (= x C)))))
,现在想知道如何能我计算了set(set)中的最大值和set(set和distinct_set)中的最大值。
如果是为所有整数只是因为它很容易做到:
(define-fun max ((x Int) (y Int)) Int
(ite (< x y) y x))
但我不能用自己的整数,即带套离开,让那些设置的值。
你能帮我吗?
谢谢
集合是有限的吗?如果是的话,当你编码问题时,你知道每个集合的大小吗? – 2013-03-13 23:30:09
是的套是finites。是的大小可以介于4和9之间 – Robert 2013-03-13 23:45:59