Definicedilhaões para opsubst
=============================

 -- Funcedilhaão: opsubst (F,G,E)
 -- Funcedilhaão: opsubst (G=F,E)
 -- Funcedilhaão: opsubst ([G1=F1,G2=F2,..., GN=FN],E)
     A funcedilhaão opsubst  similar à funcedilhaão subst, excepto que opsubst somente faz substituicedilhaões para as operacedilhaões em uma expressões. Em geral, quando F for um operador em uma expressão E, substitui G por F na expressão E.

     Para determinar o operador, opsubst escolhe inflag para verdadeiro ( true ). Isso significa que opsubst substitui para a forma de operador interna, não para a mostrada, na expressão.

     Exemplos:

          (%i1) load (opsubst)$

          (%i2) opsubst(f,g,g(g(x)));
          (%o2)                     f(f(x))
          (%i3) opsubst(f,g,g(g));
          (%o3)                       f(g)
          (%i4) opsubst(f,g[x],g[x](z));
          (%o4)                       f(z)
          (%i5) opsubst(g[x],f, f(z));
          (%o5)                      g (z)
                                      x
          (%i6) opsubst(tan, sin, sin(sin));
          (%o6)                     tan(sin)
          (%i7) opsubst([f=g,g=h],f(x));
          (%o7)                       h(x)

     Internamente, Maxima não usa os operadores de negacedilhaão unária, divisão, ou de subtracedilhaão; dessa forma:

          (%i8) opsubst("+","-",a-b);
          (%o8)                     a - b
          (%i9) opsubst("f","-",-a);
          (%o9)                      - a
          (%i10) opsubst("^^","//",a/b);
                                       a
          (%o10)                       -
                                       b

     A representacedilhaão interna de -a*b é *(-1,a,b); dessa forma

          (%i11) opsubst("[","*", -a*b);
          (%o11)                  [- 1, a, b]

     Quando o operador não for um símbolo Maxima, geralmente alguma outra funcedilhaão sinalizará um erro:

          (%i12) opsubst(a+b,f, f(x));

          Improper name or value in functional position:
          b + a
           -- an error.  Quitting.  To debug this try debugmode(true);

     Todavia, operadores subscritos são permitidos:

          (%i13) opsubst(g[5],f, f(x));
          (%o13)                     g (x)
                                      5

     Para usar essa funcedilhaão escreva primeiramente load("opsubst").