1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | language Essence 1.3 $ prob028.essence: Balanced Incomplete Block Design $ Problem details available at http://www.csplib.org/Problems/prob028/ given v, b, r, k, lambda : int (1..) where v = b where r = k letting Obj be new type of size v, Block be new type of size b find bibd : relation of (Obj * Block) such that forAll o : Obj . | toSet (bibd(o,_ ))| = r, forAll bl : Block . | toSet (bibd(_,bl))| = k, forAll o1, o2 : Obj , o1 != o2 . | toSet (bibd(o1,_)) intersect toSet (bibd(o2,_))| = lambda |