То, о чем вы хотите узнать, - это «системы преобразования программ» (PTS) .
Эти инструменты принимают исходный код и явные «правила», которые сообщают ему, как манипулировать кодом.(Комментарий Ричи является очень кратким описанием технологии, используемой для реализации PTS.)
Использование произвольных правил может привести к бессмыслице.Люди обычно пишут правила, которые сохраняют семантику программы.Но хороший PTS примет все правила, которые вы предоставляете, и примените их.PTS + rules == «алгоритм» OP.
«Формулы» являются подмножеством «программ», поэтому PTS, который может преобразовывать код, может также преобразовывать формулы.
Для полностью проработанного примераPTS, настроенного с правилами для решения алгебры и некоторого простого исчисления, см. мой пример Алгебра как область DMS .DMS - это коммерческий PTS, который я разработал и построил за последние 23 года.