I filed a bug report about this, but while I'm
thinking about it, consider:
(%i1) declare(f,additive)$
(%i2) f[a+b];
(%o2) f[b]+f[a]
Is this intended? If so, we have a problem:
(%i3) f[a+b](x);
Improper name or value in functional position:
In simp/simplifya, there is
((get (caar x) 'opers)
(let ((opers-list *opers-list)) (oper-apply x y)))
Should this check that x isn't subscripted? Or maybe
if f is declared additive, every subscripted f
should be additive in its nonsubscripted variable:
f(a+b) --> f(a) + f(b),
f[1](a+b) --> f[1](a) + f[1](b), ...
Barton