Лучше сказать - совсем не формализована. Поясню предыдущее сообщение для Фомы.
Пусть на один и тот же товар у покупателя есть несколько ДК (дисконтных карт) из фиксированного множества всех возможных ДК:
. В правилах сказано о применимости только двух любых ДК.
Это задаётся матрицей, можно даже предположить несимметричной - одно дело если покупатель достал из кармана сначала одну карту, а потом другую, то это не обязательно даст ему ту же скидку, если он вытащит их в другом порядке.
Какие числа будут стоять в этой матрице, произведения, максимумы, минимумы, или что-то иное - наплевать. Скидку считаем, заглянув матрицу и будет покупателю щастье.
А теперь пусть пришёл покупатель с тремя ДК. Как считать скидку должно быть оговорено заранее. О какой противоречивости речь, если о способе подсчёта скидки в этом случае ничего не сказано? К примеру, если в этом случае предоставлять покупателю самому выбрать из трёх ДК две, то приходим к двумерному случаю и никаких проблем. Однако тут сказано про порядок применения скидок? Это типа коммутативности, что ли, то есть допустима (или обязательна) ли перестановка ДК, как написано выше? А ведь ещё и ассоциативность есть: если покупатель достал две ДК: a и b, а потом порылся в кармане и достал ещё c, а другой покупатель сначала достал a, потом, подумавши, ещё две, одну за другой b и c, кто же кроме продавца должен установить правило примения скидки? Тут уже и трёхмерной матрицей не обойдёшься, если этим покупателям разные скидки будут.
Чуть подумавши, предложу, что можно устроить.
Рассмотрим свободный группоид над алфавитом
- то есть множество всех слов в этом алфавите, неассоциативных в общем случае, то есть корректная расстановка скобок в слове обязательна. Задаём определяющие соотношения (иначе говоря факторизуем его по некоторой конгруенции) так, чтобы фактор получился конечным (впрочем это и необязательно). В каждом смежном классе по этой конгруенции выбираем представителя, не имеющего в своей записи повторений букв, назовём их правильными. На множестве этих правильных представителей задаём числовую функцию f, принимающую значения на отрезке [0,1]. Это будет коээффициент (а не скидка, так как произведение скидок противоестественно - чем больше ДК предъявишь, тем меньшую скидку получишь), на который множится цена товара. В роли продавца мне выступать не приходилось, а как покупатель я буду в восторге от тех r, для которых f(r)=0.
Непротиворечивость тогда будет означать, что функция f имеет одно и то же значение на всех правильных представителях, принадлежащих одному и тому же классу смежности.
И так на каждый товар - свой группоид, это не исключат возможности, что он один все или на группу товаров или на определённые дни (распродажи). Случай, когда группоид на данный товар вырождается в одноэлементный тоже не исключается - на этот товар постоянная скидка независимо от набора имеющихся у покупателя ДК. Можно группоид считать с единицей - для этого допускаем возможность пустого набора ДК.
С определяющими соотношениями работать можно, наличие ассоциативности и/или коммутативности (наличие которых всё же естественно предполагать) значительно упростит дело. Кроме того эту уже коммутативную полугруппу естественно считать идемпотентной, то есть среди определяющих соотношений будут все
. В этом случае даже и без других определяющих соотношений полугруппа будет конечной.
Уф-ф-ф ... , вытираю пот со лба.