Я ищу инструмент (предпочтительнее GUI, но CLI будет работать), который позволяет мне вводить математические выражения и затем манипулировать ими, но ограничивает меня только математически допустимыми операциями. Кроме того, инструмент должен быть в состоянии сохранить сеанс, а затем доказать, что данный набор сохраненных операций действителен.
Примечание. Я Не ищу систему для генерации подтверждений, только для проверки правильности указанных вручную шагов.
Я использовал ACL2 для аналогичных операций, и он хорошо работает в некоторых случаях, но его очень трудно использовать для всего остального.
Этот небольшой проект является моей мотивацией. Это тип шаблона D, который позволяет решать уравнения. Учитывая это уравнение:
(A * B) = C + D / F;
Любой из символов может быть установлен как неизвестный, и оценка этого выражения приведет к присвоению этой переменной. Он работает, встраивая деревья выражений в тип, а затем используя правила перезаписи, чтобы преобразовать его во что-то, что можно определить для неизвестного типа.
Мне нужен какой-то способ проверки правила перезаписи. Их можно проверить, проверив утверждение, что если какое-то отношение истинно, другое также.