%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% $Id: GradedModuleWithBasis.tex,v 1.1.1.1 2004/10/04 17:25:13 nthiery Exp $
% File:		lib/DOMAINS/CATEGORY/DOC/GradedModuleWithBasis.tex
% Authors:	Nicolas M. Thiéry <nthiery@users.sourceforge.net>
% Purpose:	Documentation for the category Cat::GradedModuleWithBasis
% Created:	Tue Dec  9 21:05:11 2003
% License:	LGPL
% Project:	MuPAD-Combinat, http://mupad-combinat.sf.net
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{Mhelppage}{GradedModuleWithBasis}{Nicolas M. Thiéry}
  [ImplState=stable,TestState=beta,DocState=stable]
\Mproofread{nthiery}{28/09/2004}{reasonably complete, but not proofread}

\begin{MInfo}
  \eng{the category of graded modules with a distinguished basis}
  \de{}
\end{MInfo}


\begin{MIntro}
  \eng{\Mthis{} represents the category of graded modules with a
    distinguished basis.}
  \de{}
\end{MIntro}

\begin{MCatConst}
  \MCall{coeffRing}
\end{MCatConst}

\begin{MCategories}
  \Mupc{Cat::ModuleWithBasis}{R}
\end{MCategories}

\begin{MDetails}
  \eng{A \Mthis{} is a graded module other a distinguished basis whose
    elements are homogeneous.}
  \de{}
\end{MDetails}

\begin{MDomBasEntries}
  \MDomEntry{typeDegree}
  \eng{The type of the degrees.}
  \eng{The default value \Mup{Type::AnyType} should cause no problem;
    however, domains in this category should preferably set this
    to a sensible value, like \Mup{Type::NonNegInt}.}
  \de{}
\end{MDomBasEntries}

\begin{MMethodDetails}{degree}
  \infoEng{degree of an element}
  \infoDe{}
  \call{\Mtype{dom} x}
  \eng{Returns the degree of the element \Mex{x}.}
\end{MMethodDetails}

\begin{MMethodDetails}{degreeBasis}
  \infoEng{degree of a basis element}
  \infoDe{}
  \call{\Mtype{baseClass} lambda}
  \eng{Returns the degree of the basis element $b_\lambda$ indexed by
    \Mex{lambda}.}
\end{MMethodDetails}

\begin{MMethodDetails}{isHomogeneous}
  \infoEng{homogeneity test}
  \infoDe{}
  \call{\Mtype{dom} x}
  \eng{Returns whether the element \Mex{x} is homogeneous, that is
    whether if \Mex{x} is a linear combination of basis elements of
    same degree.}
\end{MMethodDetails}

\begin{MMethodDetails}{homogeneousComponents}
  \infoEng{homogeneous components}
  \infoDe{}
  \call{\Mtype{dom} x}
  \eng{Returns a table of the form \Mex{table(d1=x1, d2=x2, \Mseq{})},
    where \Mex{x1} is the homogeneous component of \Mex{x} of degree
    \Mex{d1}, and so on. Only non-zero homogeneous components are
    listed; in particular, the empty table is returned for
    \Mex{dom::zero}.}
\end{MMethodDetails}

\begin{MMethodDetails}{homogeneousComponent}
  \infoEng{homogeneous components}
  \infoDe{}
  \call{\Mtype{dom} x, \Mtype{degree} d}
  \eng{Returns the homogeneous component of \Mex{x} of degree
    \Mex{d}.}
\end{MMethodDetails}

\begin{MMethodDetails}{truncate}
  \infoEng{truncate}
  \infoDe{}
  \call{\Mtype{dom} x, \Mtype{degree} order}
  \eng{Returns a copy of \Mex{x} with all homogeneous components of
    degree \Mex{order} or more killed.}
\end{MMethodDetails}

\begin{MChanges}
  \version{3.1}
  \eng[New category]{\Mthis{} is a new category} %
\end{MChanges}

\end{Mhelppage}
