% generated by GAPDoc2LaTeX from XML source (Frank Luebeck)
\documentclass[a4paper,11pt]{report}

\usepackage{a4wide}
\sloppy
\pagestyle{myheadings}
\usepackage{amssymb}
\usepackage[utf8]{inputenc}
\usepackage{makeidx}
\makeindex
\usepackage{color}
\definecolor{FireBrick}{rgb}{0.5812,0.0074,0.0083}
\definecolor{RoyalBlue}{rgb}{0.0236,0.0894,0.6179}
\definecolor{RoyalGreen}{rgb}{0.0236,0.6179,0.0894}
\definecolor{RoyalRed}{rgb}{0.6179,0.0236,0.0894}
\definecolor{LightBlue}{rgb}{0.8544,0.9511,1.0000}
\definecolor{Black}{rgb}{0.0,0.0,0.0}

\definecolor{linkColor}{rgb}{0.0,0.0,0.554}
\definecolor{citeColor}{rgb}{0.0,0.0,0.554}
\definecolor{fileColor}{rgb}{0.0,0.0,0.554}
\definecolor{urlColor}{rgb}{0.0,0.0,0.554}
\definecolor{promptColor}{rgb}{0.0,0.0,0.589}
\definecolor{brkpromptColor}{rgb}{0.589,0.0,0.0}
\definecolor{gapinputColor}{rgb}{0.589,0.0,0.0}
\definecolor{gapoutputColor}{rgb}{0.0,0.0,0.0}

%%  for a long time these were red and blue by default,
%%  now black, but keep variables to overwrite
\definecolor{FuncColor}{rgb}{0.0,0.0,0.0}
%% strange name because of pdflatex bug:
\definecolor{Chapter }{rgb}{0.0,0.0,0.0}
\definecolor{DarkOlive}{rgb}{0.1047,0.2412,0.0064}


\usepackage{fancyvrb}

\usepackage{mathptmx,helvet}
\usepackage[T1]{fontenc}
\usepackage{textcomp}


\usepackage[
            pdftex=true,
            bookmarks=true,        
            a4paper=true,
            pdftitle={Written with GAPDoc},
            pdfcreator={LaTeX with hyperref package / GAPDoc},
            colorlinks=true,
            backref=page,
            breaklinks=true,
            linkcolor=linkColor,
            citecolor=citeColor,
            filecolor=fileColor,
            urlcolor=urlColor,
            pdfpagemode={UseNone}, 
           ]{hyperref}

\newcommand{\maintitlesize}{\fontsize{50}{55}\selectfont}

% write page numbers to a .pnr log file for online help
\newwrite\pagenrlog
\immediate\openout\pagenrlog =\jobname.pnr
\immediate\write\pagenrlog{PAGENRS := [}
\newcommand{\logpage}[1]{\protect\write\pagenrlog{#1, \thepage,}}
%% were never documented, give conflicts with some additional packages

\newcommand{\GAP}{\textsf{GAP}}

%% nicer description environments, allows long labels
\usepackage{enumitem}
\setdescription{style=nextline}

%% depth of toc
\setcounter{tocdepth}{1}





%% command for ColorPrompt style examples
\newcommand{\gapprompt}[1]{\color{promptColor}{\bfseries #1}}
\newcommand{\gapbrkprompt}[1]{\color{brkpromptColor}{\bfseries #1}}
\newcommand{\gapinput}[1]{\color{gapinputColor}{#1}}


\begin{document}

\logpage{[ 0, 0, 0 ]}
\begin{titlepage}
\mbox{}\vfill

\begin{center}{\maintitlesize \textbf{\textsf{GradedRingForHomalg}\mbox{}}}\\
\vfill

\hypersetup{pdftitle=\textsf{GradedRingForHomalg}}
\markright{\scriptsize \mbox{}\hfill \textsf{GradedRingForHomalg} \hfill\mbox{}}
{\Huge \textbf{Endow Commutative Rings with an Abelian Grading\mbox{}}}\\
\vfill

{\Huge Version 2014.08.27\mbox{}}\\[1cm]
{August 2014\mbox{}}\\[1cm]
\mbox{}\\[2cm]
{\Large \textbf{Mohamed Barakat\\
    \mbox{}}}\\
{\Large \textbf{Sebastian Gutsche\\
    \mbox{}}}\\
{\Large \textbf{Markus Lange-Hegermann\\
    \mbox{}}}\\
\hypersetup{pdfauthor=Mohamed Barakat\\
    ; Sebastian Gutsche\\
    ; Markus Lange-Hegermann\\
    }
\mbox{}\\[2cm]
\begin{minipage}{12cm}\noindent
 This manual is best viewed as an \textsc{HTML} document. The latest version is available \textsc{online} at: \\
\\
 \href{http://homalg.math.rwth-aachen.de/~markus/GradedRingForHomalg/chap0.html} {\texttt{http://homalg.math.rwth-aachen.de/\texttt{\symbol{126}}markus/GradedRingForHomalg/chap0.html}} \\
\\
 An \textsc{offline} version should be included in the documentation subfolder of the package. \end{minipage}

\end{center}\vfill

\mbox{}\\
{\mbox{}\\
\small \noindent \textbf{Mohamed Barakat\\
    }  Email: \href{mailto://barakat@mathematik.uni-kl.de} {\texttt{barakat@mathematik.uni-kl.de}}\\
  Homepage: \href{http://www.mathematik.uni-kl.de/~barakat/} {\texttt{http://www.mathematik.uni-kl.de/\texttt{\symbol{126}}barakat/}}\\
  Address: \begin{minipage}[t]{8cm}\noindent
 Department of Mathematics, \\
 University of Kaiserslautern, \\
 67653 Kaiserslautern, \\
 Germany \end{minipage}
}\\
{\mbox{}\\
\small \noindent \textbf{Sebastian Gutsche\\
    }  Email: \href{mailto://sebastian.gutsche@rwth-aachen.de} {\texttt{sebastian.gutsche@rwth-aachen.de}}\\
  Homepage: \href{http://wwwb.math.rwth-aachen.de/~gutsche/} {\texttt{http://wwwb.math.rwth-aachen.de/\texttt{\symbol{126}}gutsche/}}\\
  Address: \begin{minipage}[t]{8cm}\noindent
 Lehrstuhl B f{\"u}r Mathematik, RWTH Aachen, Templergraben 64, 52056 Aachen,
Germany \end{minipage}
}\\
{\mbox{}\\
\small \noindent \textbf{Markus Lange-Hegermann\\
    }  Email: \href{mailto://markus.lange.hegermann@rwth-aachen.de} {\texttt{markus.lange.hegermann@rwth-aachen.de}}\\
  Homepage: \href{http://wwwb.math.rwth-aachen.de/~markus} {\texttt{http://wwwb.math.rwth-aachen.de/\texttt{\symbol{126}}markus}}\\
  Address: \begin{minipage}[t]{8cm}\noindent
 Lehrstuhl B f{\"u}r Mathematik, RWTH Aachen, Templergraben 64, 52056 Aachen,
Germany \end{minipage}
}\\
\end{titlepage}

\newpage\setcounter{page}{2}
{\small 
\section*{Copyright}
\logpage{[ 0, 0, 1 ]}
 {\copyright} 2008-2014 by Mohamed Barakat, Sebastian Gutsche, and Markus
Lange-Hegermann

 This package may be distributed under the terms and conditions of the GNU
Public License Version 2. \mbox{}}\\[1cm]
{\small 
\section*{Acknowledgements}
\logpage{[ 0, 0, 2 ]}
 We would like to thank the Aachen forest for being such a nice place for
jogging. \mbox{}}\\[1cm]
\newpage

\def\contentsname{Contents\logpage{[ 0, 0, 3 ]}}

\tableofcontents
\newpage

 \index{\textsf{GradedRingForHomalg}}   
\chapter{\textcolor{Chapter }{Introduction}}\label{intro}
\logpage{[ 1, 0, 0 ]}
\hyperdef{L}{X7DFB63A97E67C0A1}{}
{
  
\section{\textcolor{Chapter }{What is the Role of the \textsf{GradedRingForHomalg} Package in the \textsf{homalg} Project?}}\label{role}
\logpage{[ 1, 1, 0 ]}
\hyperdef{L}{X7FD5FB587FED5112}{}
{
  The \textsf{homalg} project \cite{homalg-project} aims at providing a general and abstract framework for homological
computations. The package \textsf{GradedRingForHomalg} enables the \textsf{homalg} project to endow commutative rings in \textsf{homalg} with an Abelian grading. }

 
\section{\textcolor{Chapter }{Functionality}}\label{Functionality}
\logpage{[ 1, 2, 0 ]}
\hyperdef{L}{X87F1120883F5B4D0}{}
{
  The package \textsf{GradedRingForHomalg} on the one hand builds on the package \textsf{MatricesForHomalg} and on the other hands adds functionality to \textsf{MatricesForHomalg}. }

 
\section{\textcolor{Chapter }{The Math Behind This Package}}\label{math}
\logpage{[ 1, 3, 0 ]}
\hyperdef{L}{X7845DA5685210CC3}{}
{
  }

 }

   
\chapter{\textcolor{Chapter }{Installation of the \textsf{GradedRingForHomalg} Package}}\label{install}
\logpage{[ 2, 0, 0 ]}
\hyperdef{L}{X81342F547B7B76C2}{}
{
  To install this package just extract the package's archive file to the \textsf{GAP} \texttt{pkg} directory. \textsf{GradedRingForHomalg} also needs the package \textsf{homalg}.

 By default the \textsf{GradedRingForHomalg} package is not automatically loaded by \textsf{GAP} when it is installed. You must load the package with \\
\\
 \texttt{LoadPackage("GradedRingForHomalg");} \\
\\
 before its functions become available.

 Please, send me us e-mail if you have any questions, remarks, suggestions,
etc. concerning this package. Also, we would be pleased to hear about
applications of this package. \\
\\
\\
 Mohamed Barakat and Markus Lange-Hegermann  }

   
\chapter{\textcolor{Chapter }{Quick Start}}\label{QuickStart}
\logpage{[ 3, 0, 0 ]}
\hyperdef{L}{X7EB860EC84DFC71E}{}
{
   }

   
\chapter{\textcolor{Chapter }{Graded Rings}}\label{GradedRing}
\logpage{[ 4, 0, 0 ]}
\hyperdef{L}{X810D68A7794474F9}{}
{
  The package \textsf{GradedRingForHomalg} defines the classes of graded rings, ring elements and matrices over such
rings. These three objects can be used as data structures defined in \textsf{MatricesForHomalg} on which the \textsf{homalg} project can rely to do homological computations over graded rings. 

The graded rings most prominently can be used with methods known from general \textsf{homalg} rings. The methods for doing the computations are presented in the appendix (\ref{FileOverview}), since they are not for external use. The new attributes and operations are
documented here. 

Since the objects inplemented here are representations from objects elsewhere
in the \textsf{homalg} project (i.e. \textsf{MatricesForHomalg}), we want to stress that there are many other operations in \textsf{MatricesForHomalg}, which can be used in connection with the ones presented here. A few of them
can be found in the examples and the appendix of this documentation. 
\section{\textcolor{Chapter }{Graded Rings: Category and Representations}}\label{GradedRings:Category}
\logpage{[ 4, 1, 0 ]}
\hyperdef{L}{X7A16AC227F0B7E6B}{}
{
  

\subsection{\textcolor{Chapter }{IsHomalgGradedRingRep}}
\logpage{[ 4, 1, 1 ]}\nobreak
\hyperdef{L}{X8025623B822D44AF}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsHomalgGradedRingRep({\mdseries\slshape R})\index{IsHomalgGradedRingRep@\texttt{IsHomalgGradedRingRep}}
\label{IsHomalgGradedRingRep}
}\hfill{\scriptsize (Representation)}}\\
\textbf{\indent Returns:\ }
true or false



 The representation of \textsf{homalg} graded rings. 

 (It is a subrepresentation of the \textsf{GAP} representation \\
 \texttt{IsHomalgRingOrFinitelyPresentedModuleRep}.) 
\begin{Verbatim}[fontsize=\small,frame=single,label=Code]
  DeclareRepresentation( "IsHomalgGradedRingRep",
          IsHomalgGradedRing and
          IsHomalgGradedRingOrGradedModuleRep,
          [ "ring" ] );
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{IsHomalgGradedRingElementRep}}
\logpage{[ 4, 1, 2 ]}\nobreak
\hyperdef{L}{X84BC7F817BF737F7}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsHomalgGradedRingElementRep({\mdseries\slshape r})\index{IsHomalgGradedRingElementRep@\texttt{IsHomalgGradedRingElementRep}}
\label{IsHomalgGradedRingElementRep}
}\hfill{\scriptsize (Representation)}}\\
\textbf{\indent Returns:\ }
true or false



 The representation of elements of \textsf{homalg} graded rings. 

 (It is a representation of the \textsf{GAP} category \texttt{IsHomalgRingElement}.) 
\begin{Verbatim}[fontsize=\small,frame=single,label=Code]
  DeclareRepresentation( "IsHomalgGradedRingElementRep",
          IsHomalgGradedRingElement,
          [ ] );
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{Graded Rings: Constructors}}\label{GradedRings:Constructors}
\logpage{[ 4, 2, 0 ]}
\hyperdef{L}{X8538A7C985FE0E46}{}
{
  

\subsection{\textcolor{Chapter }{HomalgGradedRingElement (constructor for graded ring elements using numerator and denominator)}}
\logpage{[ 4, 2, 1 ]}\nobreak
\hyperdef{L}{X823140CE8286BA90}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{HomalgGradedRingElement({\mdseries\slshape numer, denom, R})\index{HomalgGradedRingElement@\texttt{HomalgGradedRingElement}!constructor for graded ring elements using numerator and denominator}
\label{HomalgGradedRingElement:constructor for graded ring elements using numerator and denominator}
}\hfill{\scriptsize (function)}}\\
\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{HomalgGradedRingElement({\mdseries\slshape numer, R})\index{HomalgGradedRingElement@\texttt{HomalgGradedRingElement}!constructor for graded ring elements using a given numerator and one as denominator}
\label{HomalgGradedRingElement:constructor for graded ring elements using a given numerator and one as denominator}
}\hfill{\scriptsize (function)}}\\
\textbf{\indent Returns:\ }
a graded ring element



 Creates the graded ring element $\mbox{\texttt{\mdseries\slshape numer}}/\mbox{\texttt{\mdseries\slshape denom}}$ or in the second case $\mbox{\texttt{\mdseries\slshape numer}}/1$ for the graded ring \mbox{\texttt{\mdseries\slshape R}}. Both \mbox{\texttt{\mdseries\slshape numer}} and \mbox{\texttt{\mdseries\slshape denom}} may either be a string describing a valid global ring element or from the
global ring or computation ring. }

 }

 
\section{\textcolor{Chapter }{Graded Rings: Attributes}}\label{GradedRings:Attributes}
\logpage{[ 4, 3, 0 ]}
\hyperdef{L}{X80C692538711009C}{}
{
  

\subsection{\textcolor{Chapter }{DegreeGroup}}
\logpage{[ 4, 3, 1 ]}\nobreak
\hyperdef{L}{X79649FC47A744BD2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DegreeGroup({\mdseries\slshape S})\index{DegreeGroup@\texttt{DegreeGroup}}
\label{DegreeGroup}
}\hfill{\scriptsize (attribute)}}\\
\textbf{\indent Returns:\ }
a left {\ensuremath{\mathbb Z}}-module



 The degree Abelian group of the commutative graded ring \mbox{\texttt{\mdseries\slshape S}}. }

 

\subsection{\textcolor{Chapter }{CommonNonTrivialWeightOfIndeterminates}}
\logpage{[ 4, 3, 2 ]}\nobreak
\hyperdef{L}{X826C131D83796CC5}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{CommonNonTrivialWeightOfIndeterminates({\mdseries\slshape S})\index{CommonNonTrivialWeightOfIndeterminates@\texttt{Common}\-\texttt{Non}\-\texttt{Trivial}\-\texttt{Weight}\-\texttt{Of}\-\texttt{Indeterminates}}
\label{CommonNonTrivialWeightOfIndeterminates}
}\hfill{\scriptsize (attribute)}}\\
\textbf{\indent Returns:\ }
a degree



 The common nontrivial weight of the indeterminates of the graded ring \mbox{\texttt{\mdseries\slshape S}} if it exists. Otherwise an error is issued. WARNING: Since the DegreeGroup and
WeightsOfIndeterminates are in some cases bound together, you MUST not set the
DegreeGroup by hand and let the algorithm create the weights. Set both by
hand, set only weights or use the method WeightsOfIndeterminates to set both.
Never set the DegreeGroup without the WeightsOfIndeterminates, because it
simply wont work! }

 

\subsection{\textcolor{Chapter }{WeightsOfIndeterminates}}
\logpage{[ 4, 3, 3 ]}\nobreak
\hyperdef{L}{X7E43637F8431FB69}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{WeightsOfIndeterminates({\mdseries\slshape S})\index{WeightsOfIndeterminates@\texttt{WeightsOfIndeterminates}}
\label{WeightsOfIndeterminates}
}\hfill{\scriptsize (attribute)}}\\
\textbf{\indent Returns:\ }
a list or listlist of integers



 The list of degrees of the indeterminates of the graded ring \mbox{\texttt{\mdseries\slshape S}}. }

 

\subsection{\textcolor{Chapter }{MatrixOfWeightsOfIndeterminates}}
\logpage{[ 4, 3, 4 ]}\nobreak
\hyperdef{L}{X84279B6179DD4AE2}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MatrixOfWeightsOfIndeterminates({\mdseries\slshape S})\index{MatrixOfWeightsOfIndeterminates@\texttt{MatrixOfWeightsOfIndeterminates}}
\label{MatrixOfWeightsOfIndeterminates}
}\hfill{\scriptsize (attribute)}}\\
\textbf{\indent Returns:\ }
a \textsf{homalg} matrix



 A \textsf{homalg} matrix where the list (or listlist) of degrees of the indeterminates of the
graded ring \mbox{\texttt{\mdseries\slshape S}} is stored. }

 }

 
\section{\textcolor{Chapter }{Graded Rings: Operations and Functions}}\label{GradedRings:Operations}
\logpage{[ 4, 4, 0 ]}
\hyperdef{L}{X7B86A3DD7D2CE35F}{}
{
  

\subsection{\textcolor{Chapter }{UnderlyingNonGradedRing (for homalg graded rings)}}
\logpage{[ 4, 4, 1 ]}\nobreak
\hyperdef{L}{X7DA1D14F87DE72D8}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{UnderlyingNonGradedRing({\mdseries\slshape R})\index{UnderlyingNonGradedRing@\texttt{UnderlyingNonGradedRing}!for homalg graded rings}
\label{UnderlyingNonGradedRing:for homalg graded rings}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
a \textsf{homalg} ring



 Internally there is a ring, in which computations take place. }

 

\subsection{\textcolor{Chapter }{UnderlyingNonGradedRing (for homalg graded ring elements)}}
\logpage{[ 4, 4, 2 ]}\nobreak
\hyperdef{L}{X8708576B84997122}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{UnderlyingNonGradedRing({\mdseries\slshape r})\index{UnderlyingNonGradedRing@\texttt{UnderlyingNonGradedRing}!for homalg graded ring elements}
\label{UnderlyingNonGradedRing:for homalg graded ring elements}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
a \textsf{homalg} ring



 Internally there is a ring, in which computations take place. }

 

\subsection{\textcolor{Chapter }{Name (for homalg graded ring elements)}}
\logpage{[ 4, 4, 3 ]}\nobreak
\hyperdef{L}{X83971F1879017E3D}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{Name({\mdseries\slshape r})\index{Name@\texttt{Name}!for homalg graded ring elements}
\label{Name:for homalg graded ring elements}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
a string



 The name of the graded ring element \mbox{\texttt{\mdseries\slshape r}}. }

 }

 }

   
\chapter{\textcolor{Chapter }{Homogeneous Matrices}}\label{HomogeneousMatrices}
\logpage{[ 5, 0, 0 ]}
\hyperdef{L}{X81274D247D293332}{}
{
  The package \textsf{GradedRingForHomalg} defines the classes of graded rings, ring elements and homogeneous matrices
over such rings. These three objects can be used as data structures defined in \textsf{MatricesForHomalg} on which the \textsf{homalg} project can rely to do homological computations over graded rings. 

The graded rings most prominently can be used with methods known from general \textsf{homalg} rings. The methods for doing the computations are presented in the appendix (\ref{FileOverview}), since they are not for external use. The new attributes and operations are
documented here. 

Since the objects inplemented here are representations from objects elsewhere
in the \textsf{homalg} project (i.e. \textsf{MatricesForHomalg}), we want to stress that there are many other operations in \textsf{MatricesForHomalg}, which can be used in connection with the ones presented here. A few of them
can be found in the examples and the appendix of this documentation. 
\section{\textcolor{Chapter }{Homogeneous Matrices: Category and Representations}}\label{HomogeneousMatrices:Category}
\logpage{[ 5, 1, 0 ]}
\hyperdef{L}{X7912A7EE7DD9C130}{}
{
  

\subsection{\textcolor{Chapter }{IsHomalgMatrixOverGradedRingRep}}
\logpage{[ 5, 1, 1 ]}\nobreak
\hyperdef{L}{X860DABC0806C4064}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{IsHomalgMatrixOverGradedRingRep({\mdseries\slshape A})\index{IsHomalgMatrixOverGradedRingRep@\texttt{IsHomalgMatrixOverGradedRingRep}}
\label{IsHomalgMatrixOverGradedRingRep}
}\hfill{\scriptsize (Representation)}}\\
\textbf{\indent Returns:\ }
true or false



 The representation of \textsf{homalg} matrices with entries in a \textsf{homalg} graded ring. 

 (It is a representation of the \textsf{GAP} category \texttt{IsMatrixOverGradedRing}.) 
\begin{Verbatim}[fontsize=\small,frame=single,label=Code]
  DeclareRepresentation( "IsHomalgMatrixOverGradedRingRep",
          IsMatrixOverGradedRing,
          [ ] );
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{Homogeneous Matrices: Constructors}}\label{Matrices:Constructors}
\logpage{[ 5, 2, 0 ]}
\hyperdef{L}{X7E3D72117F84D517}{}
{
  

\subsection{\textcolor{Chapter }{MatrixOverGradedRing (constructor for matrices over graded rings)}}
\logpage{[ 5, 2, 1 ]}\nobreak
\hyperdef{L}{X7AC02E03868CB664}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MatrixOverGradedRing({\mdseries\slshape mat, S})\index{MatrixOverGradedRing@\texttt{MatrixOverGradedRing}!constructor for matrices over graded rings}
\label{MatrixOverGradedRing:constructor for matrices over graded rings}
}\hfill{\scriptsize (function)}}\\
\textbf{\indent Returns:\ }
a matrix over a graded ring



 Creates a matrix for the graded ring \mbox{\texttt{\mdseries\slshape S}}, where \mbox{\texttt{\mdseries\slshape mat}} is a matrix over \texttt{UnderlyingNonGradedRing}(\mbox{\texttt{\mdseries\slshape S}}). }

 }

 
\section{\textcolor{Chapter }{Homogeneous Matrices: Attributes}}\label{HomogeneousMatrices:Attributes}
\logpage{[ 5, 3, 0 ]}
\hyperdef{L}{X7C1C5AA2813F4F73}{}
{
  

\subsection{\textcolor{Chapter }{DegreesOfEntries}}
\logpage{[ 5, 3, 1 ]}\nobreak
\hyperdef{L}{X8608086E82701204}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DegreesOfEntries({\mdseries\slshape A})\index{DegreesOfEntries@\texttt{DegreesOfEntries}}
\label{DegreesOfEntries}
}\hfill{\scriptsize (attribute)}}\\
\textbf{\indent Returns:\ }
a listlist of degrees/multi-degrees



 The matrix of degrees of the matrix \mbox{\texttt{\mdseries\slshape A}}. }

 

\subsection{\textcolor{Chapter }{NonTrivialDegreePerRow}}
\logpage{[ 5, 3, 2 ]}\nobreak
\hyperdef{L}{X86C3DD8479FDDB36}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NonTrivialDegreePerRow({\mdseries\slshape A[, col{\textunderscore}degrees]})\index{NonTrivialDegreePerRow@\texttt{NonTrivialDegreePerRow}}
\label{NonTrivialDegreePerRow}
}\hfill{\scriptsize (attribute)}}\\
\textbf{\indent Returns:\ }
a list of degrees/multi-degrees



 The list of first nontrivial degree per row of the matrix \mbox{\texttt{\mdseries\slshape A}}. }

 

\subsection{\textcolor{Chapter }{NonTrivialDegreePerColumn}}
\logpage{[ 5, 3, 3 ]}\nobreak
\hyperdef{L}{X801EBD4D7DAB0672}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{NonTrivialDegreePerColumn({\mdseries\slshape A[, row{\textunderscore}degrees]})\index{NonTrivialDegreePerColumn@\texttt{NonTrivialDegreePerColumn}}
\label{NonTrivialDegreePerColumn}
}\hfill{\scriptsize (attribute)}}\\
\textbf{\indent Returns:\ }
a list of degrees/multi-degrees



 The list of first nontrivial degree per column of the matrix \mbox{\texttt{\mdseries\slshape A}}. }

 }

 
\section{\textcolor{Chapter }{Homogeneous Matrices: Operations and Functions}}\label{HomogeneousMatrices:Operations}
\logpage{[ 5, 4, 0 ]}
\hyperdef{L}{X81897DD8835ACE8C}{}
{
  

\subsection{\textcolor{Chapter }{UnderlyingNonGradedRing (for matrices over graded rings)}}
\logpage{[ 5, 4, 1 ]}\nobreak
\hyperdef{L}{X7DC25A5E83DC3E85}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{UnderlyingNonGradedRing({\mdseries\slshape mat})\index{UnderlyingNonGradedRing@\texttt{UnderlyingNonGradedRing}!for matrices over graded rings}
\label{UnderlyingNonGradedRing:for matrices over graded rings}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
a \textsf{homalg} ring



 The nongraded ring underlying \texttt{HomalgRing}(\mbox{\texttt{\mdseries\slshape mat}}). }

 

\subsection{\textcolor{Chapter }{SetMatElm (for matrices over graded rings)}}
\logpage{[ 5, 4, 2 ]}\nobreak
\hyperdef{L}{X7D0D1E1E784C3BC7}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SetMatElm({\mdseries\slshape mat, i, j, r, R})\index{SetMatElm@\texttt{SetMatElm}!for matrices over graded rings}
\label{SetMatElm:for matrices over graded rings}
}\hfill{\scriptsize (operation)}}\\


 Changes the entry (\mbox{\texttt{\mdseries\slshape i,j}}) of the matrix \mbox{\texttt{\mdseries\slshape mat}} to the value \mbox{\texttt{\mdseries\slshape r}}. Here \mbox{\texttt{\mdseries\slshape R}} is the graded \textsf{homalg} ring involved in these computations. }

 

\subsection{\textcolor{Chapter }{AddToMatElm (for matrices over graded rings)}}
\logpage{[ 5, 4, 3 ]}\nobreak
\hyperdef{L}{X7B56EC5E8545C1B6}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{AddToMatElm({\mdseries\slshape mat, i, j, r, R})\index{AddToMatElm@\texttt{AddToMatElm}!for matrices over graded rings}
\label{AddToMatElm:for matrices over graded rings}
}\hfill{\scriptsize (operation)}}\\


 Changes the entry (\mbox{\texttt{\mdseries\slshape i,j}}) of the matrix \mbox{\texttt{\mdseries\slshape mat}} by adding the value \mbox{\texttt{\mdseries\slshape r}} to it. Here \mbox{\texttt{\mdseries\slshape R}} is the (graded) \textsf{homalg} ring involved in these computations. }

 

\subsection{\textcolor{Chapter }{MatElmAsString (for matrices over graded rings)}}
\logpage{[ 5, 4, 4 ]}\nobreak
\hyperdef{L}{X865E51967E6D0AD3}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MatElmAsString({\mdseries\slshape mat, i, j, R})\index{MatElmAsString@\texttt{MatElmAsString}!for matrices over graded rings}
\label{MatElmAsString:for matrices over graded rings}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
a string



 Returns the entry (\mbox{\texttt{\mdseries\slshape i,j}}) of the matrix \mbox{\texttt{\mdseries\slshape mat}} as a string. Here \mbox{\texttt{\mdseries\slshape R}} is the (graded) \textsf{homalg} ring involved in these computations. }

 

\subsection{\textcolor{Chapter }{MatElm (for matrices over graded rings)}}
\logpage{[ 5, 4, 5 ]}\nobreak
\hyperdef{L}{X8028986083BEC896}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MatElm({\mdseries\slshape mat, i, j, R})\index{MatElm@\texttt{MatElm}!for matrices over graded rings}
\label{MatElm:for matrices over graded rings}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
a graded ring element



 Returns the entry (\mbox{\texttt{\mdseries\slshape i,j}}) of the matrix \mbox{\texttt{\mdseries\slshape mat}}. Here \mbox{\texttt{\mdseries\slshape R}} is the (graded) \textsf{homalg} ring involved in these computations. }

 }

 }

   
\chapter{\textcolor{Chapter }{Examples}}\label{examples}
\logpage{[ 6, 0, 0 ]}
\hyperdef{L}{X7A489A5D79DA9E5C}{}
{
   }

 

\appendix


\chapter{\textcolor{Chapter }{The Matrix Tool Operations}}\label{Tool_Operations}
\logpage{[ "A", 0, 0 ]}
\hyperdef{L}{X7B2993CB7B012115}{}
{
  The functions listed below are components of the \texttt{homalgTable} object stored in the ring. They are only indirectly accessible through
standard methods that invoke them. 
\section{\textcolor{Chapter }{The Tool Operations \emph{without} a Fallback Method}}\label{ToolsNoFallBack}
\logpage{[ "A", 1, 0 ]}
\hyperdef{L}{X7E6D7EAE78DAE6B0}{}
{
  There are matrix methods for which \textsf{homalg} needs a \texttt{homalgTable} entry for non-internal rings, as it cannot provide a suitable fallback. Below
is the list of these \texttt{homalgTable} entries. }

 
\section{\textcolor{Chapter }{The Tool Operations with a Fallback Method}}\label{ToolsFallBack}
\logpage{[ "A", 2, 0 ]}
\hyperdef{L}{X7912E42C81296637}{}
{
  These are the methods for which it is recommended for performance reasons to
have a \texttt{homalgTable} entry for non-internal rings. \textsf{homalg} only provides a generic fallback method. 

\subsection{\textcolor{Chapter }{MonomialMatrix}}
\logpage{[ "A", 2, 1 ]}\nobreak
\hyperdef{L}{X84C78C6B7C0890BF}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{MonomialMatrix({\mdseries\slshape d, R})\index{MonomialMatrix@\texttt{MonomialMatrix}}
\label{MonomialMatrix}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
a \textsf{homalg} matrix



 The column matrix of \mbox{\texttt{\mdseries\slshape d}}-th monomials of the \textsf{homalg} graded ring \mbox{\texttt{\mdseries\slshape R}}. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@R := HomalgFieldOfRationalsInDefaultCAS( ) * "x,y,z";;|
  !gapprompt@gap>| !gapinput@S := GradedRing( R );;|
  !gapprompt@gap>| !gapinput@m := MonomialMatrix( 2, S );|
  <A ? x 1 matrix over a graded ring>
  !gapprompt@gap>| !gapinput@NrRows( m );|
  6
  !gapprompt@gap>| !gapinput@m;|
  <A 6 x 1 matrix over a graded ring>
  !gapprompt@gap>| !gapinput@Display( m );|
  x^2,
  x*y,
  x*z,
  y^2,
  y*z,
  z^2
  (over a graded ring) 
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{RandomMatrixBetweenGradedFreeLeftModules}}
\logpage{[ "A", 2, 2 ]}\nobreak
\hyperdef{L}{X7F9F9C978703E871}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RandomMatrixBetweenGradedFreeLeftModules({\mdseries\slshape degreesS, degreesT, R})\index{RandomMatrixBetweenGradedFreeLeftModules@\texttt{Random}\-\texttt{Matrix}\-\texttt{Between}\-\texttt{Graded}\-\texttt{Free}\-\texttt{Left}\-\texttt{Modules}}
\label{RandomMatrixBetweenGradedFreeLeftModules}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
a \textsf{homalg} matrix



 A random $r \times c $-matrix between the graded free \emph{left} modules $\mbox{\texttt{\mdseries\slshape R}}^{(-\mbox{\texttt{\mdseries\slshape degreesS}})} \to \mbox{\texttt{\mdseries\slshape R}}^{(-\mbox{\texttt{\mdseries\slshape degreesT}})}$, where $r = $\texttt{Length}$($\mbox{\texttt{\mdseries\slshape degreesS}}$)$ and $c = $\texttt{Length}$($\mbox{\texttt{\mdseries\slshape degreesT}}$)$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@R := HomalgFieldOfRationalsInDefaultCAS( ) * "a,b,c";;|
  !gapprompt@gap>| !gapinput@S := GradedRing( R );;|
  !gapprompt@gap>| !gapinput@rand := RandomMatrixBetweenGradedFreeLeftModules( [ 2, 3, 4 ], [ 1, 2 ], S );|
  <A 3 x 2 matrix over a graded ring>
  !gapprompt@gap>| !gapinput@#Display( rand );|
  !gapprompt@gap>| !gapinput@#a-2*b+2*c,                                                2,                 |
  !gapprompt@gap>| !gapinput@#a^2-a*b+b^2-2*b*c+5*c^2,                                  3*c,               |
  !gapprompt@gap>| !gapinput@#2*a^3-3*a^2*b+2*a*b^2+3*a^2*c+a*b*c-2*b^2*c-3*b*c^2-2*c^3,a^2-4*a*b-3*a*c-c^2|
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{RandomMatrixBetweenGradedFreeRightModules}}
\logpage{[ "A", 2, 3 ]}\nobreak
\hyperdef{L}{X82E813D982331C0B}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{RandomMatrixBetweenGradedFreeRightModules({\mdseries\slshape degreesT, degreesS, R})\index{RandomMatrixBetweenGradedFreeRightModules@\texttt{Random}\-\texttt{Matrix}\-\texttt{Between}\-\texttt{Graded}\-\texttt{Free}\-\texttt{Right}\-\texttt{Modules}}
\label{RandomMatrixBetweenGradedFreeRightModules}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
a \textsf{homalg} matrix



 A random $r \times c $-matrix between the graded free \emph{right} modules $\mbox{\texttt{\mdseries\slshape R}}^{(-\mbox{\texttt{\mdseries\slshape degreesS}})} \to \mbox{\texttt{\mdseries\slshape R}}^{(-\mbox{\texttt{\mdseries\slshape degreesT}})}$, where $r = $\texttt{Length}$($\mbox{\texttt{\mdseries\slshape degreesT}}$)$ and $c = $\texttt{Length}$($\mbox{\texttt{\mdseries\slshape degreesS}}$)$. 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@R := HomalgFieldOfRationalsInDefaultCAS( ) * "a,b,c";;|
  !gapprompt@gap>| !gapinput@S := GradedRing( R );;|
  !gapprompt@gap>| !gapinput@rand := RandomMatrixBetweenGradedFreeRightModules( [ 1, 2 ], [ 2, 3, 4 ], S );|
  <A 2 x 3 matrix over a graded ring>
  !gapprompt@gap>| !gapinput@#Display( rand );|
  !gapprompt@gap>| !gapinput@#a-2*b-c,a*b+b^2-b*c,2*a^3-a*b^2-4*b^3+4*a^2*c-3*a*b*c-b^2*c+a*c^2+5*b*c^2-2*c^3,|
  !gapprompt@gap>| !gapinput@#-5,     -2*a+c,     -2*a^2-a*b-2*b^2-3*a*c                                      |
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{Diff}}
\logpage{[ "A", 2, 4 ]}\nobreak
\hyperdef{L}{X7EA1DC07822DE322}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{Diff({\mdseries\slshape D, N})\index{Diff@\texttt{Diff}}
\label{Diff}
}\hfill{\scriptsize (operation)}}\\
\textbf{\indent Returns:\ }
a \textsf{homalg} matrix



 If \mbox{\texttt{\mdseries\slshape D}} is a $f \times p$-matrix and \mbox{\texttt{\mdseries\slshape N}} is a $g \times q$-matrix then $H=Diff($\mbox{\texttt{\mdseries\slshape D}},\mbox{\texttt{\mdseries\slshape N}}$)$ is an $fg \times pq$-matrix whose entry $H[g*(i-1)+j,q*(k-1)+l]$ is the result of differentiating \mbox{\texttt{\mdseries\slshape N}}$[j,l]$ by the differential operator corresponding to \mbox{\texttt{\mdseries\slshape D}}$[i,k]$. (Here we follow the Macaulay2 convention.) 
\begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
  !gapprompt@gap>| !gapinput@S := HomalgFieldOfRationalsInDefaultCAS( ) * "a,b,c" * "x,y,z";;|
  !gapprompt@gap>| !gapinput@D := HomalgMatrix( "[ \|
  !gapprompt@>| !gapinput@x,2*y,   \|
  !gapprompt@>| !gapinput@y,a-b^2, \|
  !gapprompt@>| !gapinput@z,y-b    \|
  !gapprompt@>| !gapinput@]", 3, 2, S );|
  <A 3 x 2 matrix over an external ring>
  !gapprompt@gap>| !gapinput@N := HomalgMatrix( "[ \|
  !gapprompt@>| !gapinput@x^2-a*y^3,x^3-z^2*y,x*y-b,x*z-c, \|
  !gapprompt@>| !gapinput@x,        x*y,      a-b,  x*a*b  \|
  !gapprompt@>| !gapinput@]", 2, 4, S );|
  <A 2 x 4 matrix over an external ring>
  !gapprompt@gap>| !gapinput@H := Diff( D, N );|
  <A 6 x 8 matrix over an external ring>
  !gapprompt@gap>| !gapinput@Display( H );|
  2*x,     3*x^2, y,z,  -6*a*y^2,-2*z^2,2*x,0,  
  1,       y,     0,a*b,0,       2*x,   0,  0,  
  -3*a*y^2,-z^2,  x,0,  -y^3,    0,     0,  0,  
  0,       x,     0,0,  0,       0,     1,  b*x,
  0,       -2*y*z,0,x,  -3*a*y^2,-z^2,  x+1,0,  
  0,       0,     0,0,  0,       x,     1,  -a*x
\end{Verbatim}
 }

 }

  }


\chapter{\textcolor{Chapter }{Overview of the \textsf{GradedRingForHomalg} Package Source Code}}\label{FileOverview}
\logpage{[ "B", 0, 0 ]}
\hyperdef{L}{X7FDDE831875C3281}{}
{
  This appendix is included in the documentation to shine some light on the
mathematical backgrounds of this Package. Neither is it needed to work with
this package nor should the methods presented here be called directly. The
functions documented here are entries of the so called ring table and not to
be called directly. There are higher level methods in declared and installed
in \textsf{MatricesForHomalg}, which call this functions ($\to$ \texttt{?MatricesForHomalg:The Basic Matrix Operations}). 
\section{\textcolor{Chapter }{The generic Methods}}\label{homalgTable:Generic}
\logpage{[ "B", 1, 0 ]}
\hyperdef{L}{X87807E467C364A00}{}
{
  We will present some methods as an example, to show the idea: 

\subsection{\textcolor{Chapter }{BasisOfRowModule (for graded rings)}}
\logpage{[ "B", 1, 1 ]}\nobreak
\hyperdef{L}{X7D9FBBDE794DE447}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{BasisOfRowModule({\mdseries\slshape M})\index{BasisOfRowModule@\texttt{BasisOfRowModule}!for graded rings}
\label{BasisOfRowModule:for graded rings}
}\hfill{\scriptsize (function)}}\\
\textbf{\indent Returns:\ }
a distinguished basis (i.e. a distinguished generating set) of the module
generated by M



 
\begin{Verbatim}[fontsize=\small,frame=single,label=Code]
  BasisOfRowModule :=
    function( M )
       return MatrixOverGradedRing(
                      BasisOfRowModule( UnderlyingMatrixOverNonGradedRing( M ) ),
                      HomalgRing( M ) );
    end,
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{DecideZeroRows (for graded rings)}}
\logpage{[ "B", 1, 2 ]}\nobreak
\hyperdef{L}{X84C649FA7C820D49}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{DecideZeroRows({\mdseries\slshape A, B})\index{DecideZeroRows@\texttt{DecideZeroRows}!for graded rings}
\label{DecideZeroRows:for graded rings}
}\hfill{\scriptsize (function)}}\\
\textbf{\indent Returns:\ }
a reduced form of \mbox{\texttt{\mdseries\slshape A}} with respect to \mbox{\texttt{\mdseries\slshape B}}



 
\begin{Verbatim}[fontsize=\small,frame=single,label=Code]
  DecideZeroRows :=
    function( A, B )
      return MatrixOverGradedRing(
                     DecideZeroRows( UnderlyingMatrixOverNonGradedRing( A ),
                             UnderlyingMatrixOverNonGradedRing( B ) ),
                     HomalgRing( A ) );
    end,
\end{Verbatim}
 }

 

\subsection{\textcolor{Chapter }{SyzygiesGeneratorsOfRows (for graded rings)}}
\logpage{[ "B", 1, 3 ]}\nobreak
\hyperdef{L}{X87D2B8748076B5DD}{}
{\noindent\textcolor{FuncColor}{$\triangleright$\ \ \texttt{SyzygiesGeneratorsOfRows({\mdseries\slshape M})\index{SyzygiesGeneratorsOfRows@\texttt{SyzygiesGeneratorsOfRows}!for graded rings}
\label{SyzygiesGeneratorsOfRows:for graded rings}
}\hfill{\scriptsize (function)}}\\
\textbf{\indent Returns:\ }
a distinguished basis of the syzygies of the argument



 
\begin{Verbatim}[fontsize=\small,frame=single,label=Code]
  SyzygiesGeneratorsOfRows :=
    function( M )
      return MatrixOverGradedRing(
                     SyzygiesGeneratorsOfRows( UnderlyingMatrixOverNonGradedRing( M ) ),
                     HomalgRing( M ) );
    end,
\end{Verbatim}
 }

 }

 
\section{\textcolor{Chapter }{Tools}}\label{GradedRing:Tools}
\logpage{[ "B", 2, 0 ]}
\hyperdef{L}{X8508AEF8845565A1}{}
{
  The package \textsf{GradedRingForHomalg} also implements tool functions. These are referred to from \textsf{MatricesForHomalg} automatically. We list the implemented methods here are and refer to the \textsf{MatricesForHomalg} documentation ($\to$ \texttt{?MatricesForHomalg: The Matrix Tool Operations} and \texttt{?MatricesForHomalg:RingElement}) for details. All tools functions from \textsf{MatricesForHomalg} not listed here are also supported by fallback tools. 
\begin{itemize}
\item IsZero
\item IsOne
\item Minus
\item DivideByUnit
\item IsUnit
\item Sum
\item Product
\item ShallowCopy
\item ZeroMatrix
\item IdentityMatrix
\item AreEqualMatrices
\item Involution
\item CertainRows
\item CertainColumns
\item UnionOfRows
\item UnionOfColumns
\item DiagMat
\item KroneckerMat
\item MulMat
\item AddMat
\item SubMat
\item Compose
\item NrRows
\item NrColumns
\item IsZeroMatrix
\item IsDiagonalMatrix
\item ZeroRows
\item ZeroColumns
\end{itemize}
 }

 }

\def\bibname{References\logpage{[ "Bib", 0, 0 ]}
\hyperdef{L}{X7A6F98FD85F02BFE}{}
}

\bibliographystyle{alpha}
\bibliography{GradedRingForHomalgBib.xml}

\addcontentsline{toc}{chapter}{References}

\def\indexname{Index\logpage{[ "Ind", 0, 0 ]}
\hyperdef{L}{X83A0356F839C696F}{}
}

\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{Index}


\printindex

\newpage
\immediate\write\pagenrlog{["End"], \arabic{page}];}
\immediate\closeout\pagenrlog
\end{document}
