IV wrote:
> Hallo,
>
> the command "validExponential" from package EFSTRUX (Elementary Function
> Structure Package) applies Risch's Structure theorem for Elementary
> functions. The theorem checks if a given exponential or logarithm function
> is algebraic over a given elementary extension field.
>
> exp(2*log(x)) = x^2 is algebraic over the field \mathbb{C}(x) and algebraic
> over the field \mathbb{C}(x,e^x). But FriCAS says it isn't:
>
> f:=2*log(x)
> g:=exp(f)
> K:=kernels([x,exp(x)])
> validExponential(K,f,x)
>
> [image: \label{eq4}\verb#"failed"#]
>
> Where I'm wrong?
>
> Is Risch's structure theorem applicable here? Does Risch's structure
> theorem have an error in this case?
Compare:
(1) -> K := kernels([x,exp(x), log(x)])
x
(1) [x, %e , log(x)]
Type: List(Kernel(Expression(Integer)))
(2) -> validExponential(K, 2*log(x), x)
2
(2) x
Type: Union(Expression(Integer),...)
validExponential assumes that f is in field generated by K, otherwise
it does not work. This assumption is required by Risch structure
theorem. 'validExponential' is a convenience function for
integrator. Logarithm needs somewhat different handling during
integration so there are no similar routine. In fact, internally
FriCAS uses a routine which is very similar to 'validExponential'
but is not exposed to users. Main routine for general use is
'rischNormalize': in general you need to call it before calling
'validExponential', otherwise results may be invalid. Namely
Risch structure theorem requires a field and data structure that
FriCAS uses is guarented to be a field only _after_ running
'rischNormalize'.
--
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].
To view this discussion on the web visit
https://groups.google.com/d/msgid/fricas-devel/E1hPrKa-0001l1-Sp%40hera.math.uni.wroc.pl.
For more options, visit https://groups.google.com/d/optout.