Представьте, что вы — это та программа. Как бы вы раскрывали?
Потом посмотрите, какие общие правила можно извлечь из ваших действий и какие вообще бывают. Например,
![$a(b + c) = ab + ac$ $a(b + c) = ab + ac$](https://dxdy-03.korotkov.co.uk/f/a/9/4/a94a8fc5b9817b4247b6adecfd97c9b682.png)
. Проверьте, в каком порядке их лучше выполнять, чтобы получить что-то определённое.
Потом переформулируйте их, чтобы они работали с выражениями, представленными в форме деревьев или прямой/обратной польской записи — зависит от того, как вы собираетесь их представлять.
И пишите по ходу дела всё сюда.
![Smile :-)](./images/smilies/icon_smile.gif)
Наверно, в текстах про символьные вычисления и по поводу конкретных систем символьной алгебры встречаются описания используемых алгоритмов.
P. S. Если у вас деление и умножение могут встречаться как попало, может получиться и уравнение не первой степени. Например,
![$x+\frac1x=1$ $x+\frac1x=1$](https://dxdy-02.korotkov.co.uk/f/1/7/3/173f91c892a96f5de1904e5e991d9e1082.png)
преобразуется в квадратное.
P. P. S. А можно не применять преобразования к уравнению, а «вычислять» символьно его левую часть (если справа 0), при этом сразу приводя к нужной форме. Подумайте, возможно ли таким способом получить многочлен или рациональную функцию (дробь из двух многочленов) от переменной.