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.
