Замечание: слова про транзитивность и симметричность выглядят чуждо и ужасающе. Как бы без них обойтись, при этом сохранив функционал?