On 20 November 2014 12:56, Ondřej Čertík <ondrej.cer...@gmail.com> wrote:
> ...
> Can you give an example of an expression that cannot be decided by
> the Richardson's theorem?
Well, no not exactly.  Richardson's theorem is not about individual
expressions, it is about decidability, i.e. computability, in general.
Consider an expression of the form

  f(x) - | f(x) |

where f(x) is composed from integers, the variable x, +, * and sin.
The question that Richardson's theorem answers is whether or not there
exists a program that can determine if f(x) - |f(x)| = 0 for all x.
This problem can be reduced to finding an algorithm to determine if
f(x) is everywhere non-negative. Richardson proves that no such
algorithm exists.

> How does FriCAS do the zero testing? I.e. if you
> give it
>
> f(x) = sin(x)^2 + cos(x)^2-1
>
> how does it decide that it is equal to 0?

This can be done by the function 'normalize' which first uses
'realElementary' to rewrite the expression using just 4 fundamental
real-valued elementary transcendental functions (kernels): log, exp,
tan, and arctan. E.g.

  sin(x) = 2*tan(x/2)/(tan(x/2)^2+1)
  cos(x) = (1-tan(x/2)^2)/(1+tan(x/2)^2)

For your example this suffices but if necessary it next rewrites the
result again using the minimum number of algebraically independent
kernels.

There is also a complex-valued version called 'complexElementary'
which uses only log and exp but may introduce the constant sqrt(-1).

>
> Are we talking about functions of just one variable (f(x)) or more
> (f(x, y, z, ...))?

In general more than one variable.

>
> Why cannot you just use the probabilistic testing, where you plug in
> various (complex) numbers into f(x) and test that it is equal to zero,
> numerically.
>

I suppose that might be pragmatic but I would not call it "computer
algebra" in the mathematical sense.

Bill.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to