oldk1331 wrote:
>
> > To put this differently, much of Expression design is build
> > on concept of normal representation
>
> Expression doesn't have "normal/canonical representation"
> because of Richardson's theorem (unable to check if an
> expression is identical to zero.).
Actually, Richardson's theorem is the smallest problem:
if you stay within well behaved class (no 'abs', no
redundant roots, no redundant logs, etc..), then
Richardson's result does not apply. Much more serious
problem is that computations go in incremental way
and representation depends on history.
But the main things is that Expression is supposed to
be able to represent differential fields. That is
_for given differential field_ you can get representation
which is canonical (or at least normal). Now, if you
have representation of smaller field you want to extend
it to bigger field. This requires some effort from
program. But assuming that program tries to make
resonable extension, say add square root of element
that is not a square in based field functions from
Expression should allow this. Currently quare root
breaks this assumption. More generally, well-intended
"simplifications" can destroy normality of representation.
So we need to be very careful which simplifications are
done automaticaly -- if a simplification break normality
or canonicality, then it can not run automaticaly.
> I wonder if AlgebraicNumber has "normal/canonical representation".
> I think so, by using minimal polynomial and root isolation.
The problem are essentially the same as for general elementary
functions: user input may contain ambigious roots or
logarithms. And we need to build representation in incremental
way.
> About
>
> integrate(1/(sqrt(10) - x^2)^(1/2), x)
>
> if we replace 'sqrt(10)' with '1' or 'a', then that returns quickly.
>
> I think we should add a preprocess function to integration,
> to split off algebraic constant when possible.
That is more tricky then you think. Given '1/(sqrt(10) - x^2)^(1/2)
+ 1/(sqrt(2) - x^2)^(1/2)' we can not eliminate _both_ irrationalities
simultaneously. But w can after splitting. Similarly, in
'1/(sqrt(10) - x^2)^(1/2) + 1/(1 - x^2)^(1/2)' eliminating
root in one part would introduce in it the other.
OTOH it is resonable to expect that input will be free from
obvious redundencies. So main effort should go into
making sure that we can handle roots when they play
essential role.
--
Waldek Hebisch
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.