FUNCTION: SfAExpand - expand a SFA expression
 
CALLING SEQUENCE:
-   SfAExpand(sfa)
-   SFA[SfAExpand](sfa)
-  
   
PARAMETERS:
- sfa =  any valid expression in SFA
 
 
SYNOPSIS:
-  The SfAExpand function expands, whenever possible, any expression in SFA.
  It  is  a  direct  implementation  of the  lambda-ring  structure,   i.e.
  symmetric  functions  are  considered  as  operators  over  the  ring of
  polynomials.
 
 
-  Expansion  is  made  considering  the  shape  of the  alphabet  of  each
  symmetric  function appearing in  sfa,   and also products of  symmetric
  functions.   Expansion is  inductively  propagated, thus enabling chains
  of plethysms.
 
 
-  Alphabets are either formal alphabets  (A1, A2, ...),  or real constants
  (any float object or any formal variable  <>  Ai),  or  variables  (when
  explicitely so declared),  or symmetric functions of SFA,  or any linear
  combination of alphabets.  For instance,  3/2*A1 + k*(A2 - s[3](-A1)) is
  a valid alphabet.
 
 
-  One may declare variables by setting e.g.  SfAVars({ {x}, {y}, z1, z2 }).
  Here,  z1,  z2,  all xi's,  and  all yi's  will be held  as variables in
  alphabets.
 
 
-  Rules used for e.g. power sums symmetric functions are:
- p[i](-A)       = -p[i](A)
- p[i](A B)      = p[i](A) p[i](B)
- p[i](A+B)      = p[i](A)+p[i](B)
- p[i](k)        = k,  k real constant (<> Ai)
- p[i](x)        = x^i,  x explicitely declared variable
- p[i](Ai)       = p[i](Ai), Ai formal alphabet
- p[i](p[j](A))  = p[ij](A) (plethysm, from previous equations)
  where  i  and  j  are positive integers.  Equivalent rules for the other
  bases are also implemented.
 
        
-  Whenever  there is a conflict between the function name   SfAExpand  and
  another   name   used   in   the   same   session,  use  the  long  form
  SFA['SfAExpand'].
 
 
EXAMPLES:
> with(SFA):
> SfAExpand( p[4,2](7+A1) );
 
                   49 + 7 p[2](A1) + 7 p[4](A1) + p[4, 2](A1)
 
> SfAExpand( s[2](A1 - 3/2*A2 + k) );
 
            2
       1/2 k  + 1/2 k - 3/2 k s[1](A2) + k s[1](A1) + 3/8 s[2](A2)
 
        + 15/8 s[1, 1](A2) - 3/2 s[1](A1) s[1](A2) + s[2](A1)
 
> SfAVars({ {x}, {y}, z1 }):
> SfAExpand( p[3]( q*m[2,1]( x1-k+A2 ) - z1^2+C ) );
 
    3                3         6         6                              2
q x1  p[6](A2) - q x1  k - q x1  k + q x1  p[3](A2) - q k p[6](A2) + q k
 
                                                        6
  + q k - q k p[3](A2) + q p[6, 3](A2) - q p[9](A2) - z1  + C
 
SEE ALSO: SfAVars SYMF[SfEval] SYMF[SfPlethysm] SfACollect