There were changes in FriCAS and the code needs to be updated:
1) In FriCAS operator properties are Symbols. So
assert(op,"ito")
should be changed to
assert(op, 'ito)
Similarly
has?(op,"ito")
should be changed to
has?(op, 'ito)
2) FriCAS algebra uses '^' for exponentiation. So
g**2
should be changed to
g^2
and similarly for other uses of '**'.
The two changes fix problems you observed. For newest FriCAS you
also need to change:
setSmooth:={
'exp,'log,'sin,'cos,'tan,
'cot,'sec,'csc,'asin,'acos,'atan,
'acot,'asec,'acsc,'sinh,'cosh,'tanh,
'coth,'sech,'csch,'asinh,'acosh,'atanh,
'acoth,'asech,'acsch,'Gamma
}::Set Symbol
to
setSmooth:= set([
'exp,'log,'sin,'cos,'tan,
'cot,'sec,'csc,'asin,'acos,'atan,
'acot,'asec,'acsc,'sinh,'cosh,'tanh,
'coth,'sech,'csch,'asinh,'acosh,'atanh,
'acoth,'asech,'acsch,'Gamma
])$Set(Symbol)
This is beacause newest FriCAS does not allow to use { and } to
denote sets -- the idea is that braces for sets where used very
rarely and we want to free braces for other puroses. Also,
this change removes one of disagreements between interpreter and
Spad compiler -- already in Axiom time interpreter did not
accept braces for sets.
Note that FriCAS interpreter language is slightly different than
Spad compiler language. In particular interpreter automatically
coerces a String to a Symbol, but Spad compiler needs explicit
coercion (or better just a Symbol). Also, for compatibility
with old code currently FriCAS interpreter allows '**' as
exponentiation and converts it to '^', but Spad compiler
treats '**' and '^' as distinct.
--
Waldek Hebisch
heb...@math.uni.wroc.pl
I added a page to HyperDoc version of Axiom book listing
differences.
--
Waldek Hebisch
heb...@math.uni.wroc.pl