// データ sig Data {} // データベース sig DB { oid: set Data } // 互いに素でなるDBの元i, jについて、i.oid と j.oid の集合積の個数が0以上にはならない fact { no disj i, j : DB | #(i.oid & j.oid) > 0 } // 例の表示 pred show { } run show for 2
sig Data {} sig DB { id: set Data } fact { // Data集合の全ての要素が DB.id に含まれる = Dataは全てDBの要素である all x : Data | x in DB.id } pred show { } run show