FUNCTION:  Reduce - find a Reduced expression for a group element,    
CALLING SEQUENCE:  Reduce(w,R);,                   Reduce(w,R,'subword');
    ,PARAMETERS:  R = a root system data Structure
             w = a list of integers representing a member of W(R)
SYNOPSIS:   
  If R is a root system of Rank n, members of the Coxeter group W(R) are
  represented as lists of integers in the range 1..n. The group element
  corresponding to w = [i_1,...,i_l] is the product of the generators
  Indexed by i_1,...,i_l. The Indexing follows Base(R).
  Reduce(w,R) returns a Reduced expression for w; i.e., a minimum-length
  rePresentation of w. Among all Reduced expressions for w, the one
  returned is the first in lexicographic order. In particular, two
  sequences w1 and w2 represent the same element of W(R) if and only if
                      Reduce(w1,R) = Reduce(w2,R).
  If a third argument is present, the result returned is a Reduced subword;
  i.e., a Reduced expression that can be obtained as a SUBSEQUENCE of w.
  The algorithm for finding Reduced subwords is Based on the exchange
  property, and has a running time that is quadratic in the length of w.
  The default algorithm is linear with respect to length.
  For a description of root system data Structures, see Coxeter[Structure].
EXAMPLES:   
  Reduce([1,2,3,1,2,3],A3);            yields       [2,1,3,2]
  Reduce([1,2,3,1,2,3],A3,subword);    yields       [2,3,1,2],    
SEE ALSO:  Base, Structure, Vec2FC):
