Объединение путем преобразования

Я пишу алгоритм объединения на F# для использования с AST преобразования с использованием "Переписывание сроков и все такое" (WoldCat) Франца Баадера и Тобиаса Нипкова. Для раздела 4.6 Объединение путем преобразования было слишком много математической теории с примерами, и не так понятно, как хотелось бы.

Может ли кто-нибудь дать или указать более простые примеры, в которых используются преобразования:

Удалить, Разложить, Ориентировать, Устранить.


person Guy Coder    schedule 12.03.2012    source источник


Ответы (1)


Удалить: t = t бессмысленно и может быть удалено из набора уравнений.

1 =? 1 -> nil

Ориентация: нам нужны все уравнения в форме x =? t, поэтому переверните все уравнения в форме t =? x.

2 =? x1 -> x1 =? 2

Устранить: учитывая x =? t, измените все остальные уравнения, чтобы заменить все экземпляры x на t.

x1 + x2 = 7, x2 = 5 -> x1 + 5 = 7, x2 = 5

Разложить: нам нужно взять любые функции и исключить их, чтобы получить уравнения в виде x =? t. Обратите внимание, что этот процесс технически удаляет только одну функцию за раз.

x1 + 5 = 7 -> x1 = 2
2 * (x1 + x2) = 14 -> x1 + x2 = 7

Надеюсь, это поможет.

person Guvante    schedule 13.03.2012