Question: A bug in simplify (should be easy to correct)

There is a bug in simplify, specifically in `simplify/inert`, that prevents returning the simplified result if any of "inertfunctionnames" doesn't have a corresponding simplification procedure "inertsimplifications" (these are the names from `simplify/inert` code).
To see this, consider a simple example:

`simplify/%F`:=proc(X)
subsindets(X,'specfunc'(%F),2*`op`)
end proc:

Then we have:
A:=%F(a+b)+%G(a);
                     A := %F(a + b) + %G(a)

simplify(A);
                       %F(a + b) + %G(a)

Now, let's define a "dummy" simplification function for %G, e.g.:
`simplify/%G`:=proc(X) X end proc:

Only now do we get what we should:
forget(simplify);
simplify(A);

                       2 a + 2 b + %G(a)

The reason for this misbehavior seems to be simple: in `simplify/inert` any performed simplification is neglected if  "inertfunctions"<>{}. This should be corrected.

Please Wait...