LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

Как Вы их выявляете именно грамматически?

Как операции над строками. Назовём выражением любую строку, которая может быть получена как часть корректного выражения слева или справа от «=».

Корректной строкой является «0». Корректной строкой является «1».

Эквивалентными преобразованиями для a=b являются c+a=c+b, c*(a)=c*(b), где c — корректная строка

Тривиальным преобразованием строки назовём такие: a->a, (a) -> a, a -> (a), a+b -> b+a, a*b->b*a, (a+b)*c->a*c+b*c, a*c+b*c->(a+b)*c, 0*a -> 0, 0 -> 0*a, 1*a -> a, a -> 1*a, где a, b, c являются корректными строками. Любое тривиальное преобразование эквивалентно любому другому тривиальному преобразованию.

P.S. Возможно список грамматических правил не исчерпывающ

Исходная версия monk, :

Как Вы их выявляете именно грамматически?

Как операции над строками. Назовём выражением любую строку, которая может быть получена как часть корректного выражения слева или справа от «=».

Корректной строкой является «0».

Эквивалентными преобразованиями для a=b являются c+a=c+b, c*(a)=c*(b), где c — корректная строка

Тривиальным преобразованием строки назовём такие: a->a, (a) -> a, a -> (a), a+b -> b+a, a*b->b*a, (a+b)*c->a*c+b*c, a*c+b*c->(a+b)*c, где a, b, c являются корректными строками. Любое тривиальное преобразование эквивалентно любому другому тривиальному преобразованию.

P.S. Возможно список грамматических правил не исчерпывающ