тут не цикл, а иерархия: отношение задаётся расширенно — просто как подмножество D×D, множество пар. R(x,y) это не вычисление, а формула: она истинна когда (x,y) входит в это множество. Через характеристическую функцию то же самое можно расписать как boolean, но это внешнее представление, не сама суть. Функция это отдельная штука: n+1-местное отношение с условием что на каждый x есть ровно один y (functional + total, если гуглить термин). Так что не отношение через функцию, а функция — частный случай отношения.