我是一個與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