It looks like smpeval
smpeval(p, lk, lv) ==
map(x +-> match(lk, lv, x,
notfound((z : K) : % +-> map(s +-> eval(s, lk, lv), z),
lk))$ListToMap(K, %),
y +-> y::%,
p)$PolynomialCategoryLifting(IndexedExponents K, K, R, MP, %)
is supposed to apply "eval" recursively.
However, when one analyses what match(lk,lv,x,f) actually does, then it
means, an extension of the mapping k+->v for any value k in lk by
applying f if k is not in lk.
Now the f here is this "notfound" function.
notfound(fn, lk) ==
k +->
empty? setIntersection(tower(f := k::%), lk) => f
fn k
and that says: apply fn whenever in the tower of k is an element from lk.
In particular this function will never be applied to any value that is
in lk, because these are handled directly by "match(lk,lv,x)".
Clearly, "rootSplit" starts with "lk := rootkernels tower x".
and in "eval(x, lk, [rootExpand k for k in lk])" the values
are (unfortunately) NOT recursivly computed in case lk is something like
[sqrt(6), sqrt(sqrt(6))]
Thus, in rootFactor(sqrt(sqrt(6)), smpeval is called with
lk = [sqrt(6), sqrt(sqrt(6))]]
lv = [sqrt(2)*sqrt(3), sqrt(sqrt(6))]]
and it is clear what will happen. The toplevel rational function
representing sqrt(sqrt(6)) is just k/1 for the kernel sqrt(sqrt(6)).
So eventually sqrt(sqrt(6)) is replaced by itself and not a recursively
evaluated value.
I think that this is not what was intended by Bronstein, otherwise, I do
not (yet) see, why he would have put the "eval" inside the "notfound" call.
That case certainly appears here:
%%% (1) -> rootFactor(log(sqrt 6)*sqrt(sqrt(6)))
+----+
+-+ +-+ | +-+
(3) log(\|2 \|3 )\|\|6
I find it strange that substitution inside log does happen, but not
inside sqrt.
Opinions? Should I try to come up with a proper fix?
I somehow feel such a change will have quite some consequences in
different part of FriCAS.
Ralf
--
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 fricas-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/fricas-devel/46cd02fb-0da4-4845-8455-2480031e9c4b%40hemmecke.org.