corner(1..4). % set of corners higher(1,2). 1{ higher(1,2), higher(1,3), higher(1,4) }1. 1{ higher(2,1), higher(2,3), higher(2,4) }1. 1{ higher(3,1), higher(3,2), higher(3,4) }1. 1{ higher(4,1), higher(4,2), higher(4,3) }1. :- higher(X,X), corner(X). % irreflexive :- higher(X,Y), higher(Y,X), corner(X), corner(Y). % asymmetric % inverse functional :- higher(Y,X), higher(Z,X), corner(X), corner(Y), corner(Z), Y != Z. % :- higher(X,Y), higher(X,Z), corner(X), corner(Y), corner(Z), Y != Z.