#############################################################################
#  
# FUNCTION :  omega - order polynomial of a poset
#  
# CALLING SEQUENCE :  omega(P,z);         omega(P,z,strict);
#                     omega(P,n,z);       omega(P,n,z,strict);
#                     omega(P,X,z);       omega(P,X,z,strict);
#  
# PARAMETERS :    P   = a poset
#                 z   = any expression (or name)
#                 n   = a positive integer
#                 X   = a set (the vertex set)
#              strict = (optional) a subset of P
#
# SYNOPSIS :
#   The order polynomial of a poset P is the unique polynomial omega(z) with
#   the property that for each positive integer k, omega(k) equals the number
#   of order-preserving maps from P to a k-element chain. (Equivalently,
#   omega(z) can be defined to be the zeta polynomial of J(P).)
#   omega(P,X,z) computes the order polynomial of the poset P with vertex
#   set X, evaluated at z. If the vertex set is {1,2,...,n}, then this can
#   also be computed by calling omega(P,n,z). If there are no isolated vertices
#   in P, (i.e., every vertex of P is related in P to at least one other
#   element), then one may use omega(P,z).
#   In the second form, one may include as an optional third or fourth argument
#   a subset of (the covering relations of) P. In this form, omega() computes
#   a "modified" order polynomial f(z) with the property that for each
#   positive integer k, f(k) equals the number of order-preserving maps phi
#   from P to a k-element chain in which phi(a) < phi(b) for each pair [a,b]
#   in the chosen subset of P. (Rather than merely phi(a) <= phi(b).)
#   These "modified" polynomials arise as order polynomials of unnaturally
#   labeled posets.
#
# EXAMPLES :
#   omega(chain(4),5,z);
#   factor(");                          yields   1/24*z^2*(z+3)*(z+2)*(z+1)
#   omega(chain(4),z,{[3,4]}); 
#   factor(");                          yields    1/24*z*(z-1)*(z+2)*(z+1)
#   omega({[a,b],[a,c]},{a,b,c,d},3);   yields                42
#  
# SEE  ALSO :  W, zeta, J
#
