(1) Convert e1 = e2
into e = 0
where e = e1 - e2
.
(2) Convert e
into ax + b
, for some a
and b
.
(3) Solve, x = -b/a
.
Step (2) can be handled recursively, like this:
F(k) = 0x + k // For any constant k.
F(x) = 1x + 0
F(p + q) = let a_1x + b_1 = F(p)
and a_2x + b_2 = F(q)
in (a_1 + a_2)x + (b_1 + b_2)
// Similarly for subtraction.
F(p * q) = let a_1x + b_1 = F(p)
and a_2x + b_2 = F(q) // At least one of a_1 and a_2 must be zero.
in (a_1*b_2 + a_2*b_1)x + (b_1*b_2)