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