axiom-developer
[Top][All Lists]

Re: [Axiom-developer] Zero divisors in Expression Integer

 From: Francois Maltey Subject: Re: [Axiom-developer] Zero divisors in Expression Integer Date: 05 Jan 2007 18:05:53 +0100 User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

```Waldek Hebisch <address@hidden> writes:

[....]

> There is an extra difficulty: traditional numerical definitions
> of elementary functions have branch cuts.  Branch cuts means
> that we no longer have analytic functions and we may get
> zero divisors even if algebraic approach would produce unique

> Branch cuts turn decidable problem into undecidable one:

> I am not sure how well we want to support branch cuts.  I belive
> that in most practical cases functions are analytic, for example
> sqrt(exp(%i*x)) is just exp(%i*x/2) (while branch cut interpretation
> would produce artifical discontinuities).

> In other work "correctly"
> handling branch cuts means solving hard problem giving result
> which probably does not match with user expectations...

> OTOH for numeric computation branch cuts seem to be accepted
> solution.  Using one definition for symbolic computations
> and a different one for numeric computations breaks one
> of fundamental expectations (namely, that evaluating functions
> at a point is a homomorphizm).

I find very important this last point of view.

I try to use and to teach almost(?) the same mathematics with a pencil
and with a computer algebra system to my students.

A lot of formula about sqrt are right because there are the usual
branch cuts. Without theses branch cuts I fear we can write
-1 = 1^(1/2) = 1 and the equal isn't so associative.

I think the map notion has priority over branch cut.
For real numbers sqrt (x^2) = abs x is an universal equality
because sqrt is a map.

When we prefer to write sqrt (x^2) = x we loose the common sens of
mathematics and all the map abilities.

I give this exercice to my students.
Solve in x for a real number a the equation a (a-1) x = a
(or an other equation as this one)
With an algebra point of view we get x = 1/(a-1).

Standard mathematics prefers : a=0 => every x is solution.
a=1 => there is no solution
=> x = 1 / (a-1)

0/0 is undefined, even in a/a when a=0

I prefer a CAS which respect (almost) all mathematics by default.

When the question is undecidable or isn't coded an option
as << NoPole >> prevents the user to be prudent.
The topic of the #285 bug is almost the same.

In the elemntry package I test I only simplify by default exp (log z) = z,
not log (exp z) = z.

But in a rewrite? package I'll add a rewrite rule as
rewrite (log (exp z), logExp) which gives z.

François.

```