Самое сложное - аккуратно пометить
,
и
, чтобы не спутать их с остальными.
Да, как раз читая на полпути решил спросить, будут ли они защищены. Интересная конструкция, такого типа мне искать в голову не приходило.
Я предполагал найти несколько графов
, не являющихся подграфами друг друга, и потом соединять
с произвольным количеством
для помеченной вершины,
с
как начало и конец ребра, и соединять их между собой каким-то аккуратным способом и надеяться, что можно подобрать
и способы соединения, чтобы всё прошло.
Ещё мне наверно стоило задать условия более однородным и близким к тому, откуда родилась задача, образом: пусть есть правила переписывания графов
, задаваемые двумя графами, в которых каждая вершина дополнительно помечена именем, и применение правила заменяет произвольный изоморфный
подграф на
так, что вершины
с именами, которые не встречаются в
, удаляются, вершины с именами, имеющимися и там, и там, остаются связанными с остальной частью графа так как были, а рёбра, соединяющие их между собой меняются на те, которые между ними есть в
, и вершины с именами, уникальными для
, добавляются. Тогда условие на кодирование простое: надо чтобы любое правило
для помеченных орграфов можно было транслировать в правило
для их кодов, чтобы выполнялось
, где
— множество всех возможных результатов применения
к
.