Logic programming on multidimensional arrays