  
  [1X14 Bigraded Objects[0X
  
  Bigraded  objects  in  [5Xhomalg[0m  provide  a  data structure for the sheets (or
  pages) of spectral sequences.
  
  
  [1X14.1 BigradedObjects: Categories and Representations[0X
  
  [1X14.1-1 IsHomalgBigradedObject[0m
  
  [2X> IsHomalgBigradedObject( [0X[3XEr[0X[2X ) _____________________________________[0XCategory
  [6XReturns:[0X  [10Xtrue[0m or [10Xfalse[0m
  
  The [5XGAP[0m category of [5Xhomalg[0m bigraded objects.
  
  (It is a subcategory of the [5XGAP[0m category [10XIsHomalgObject[0m.)
  
  [1X14.1-2 IsHomalgBigradedObjectAssociatedToAnExactCouple[0m
  
  [2X> IsHomalgBigradedObjectAssociatedToAnExactCouple( [0X[3XEr[0X[2X ) ____________[0XCategory
  [6XReturns:[0X  [10Xtrue[0m or [10Xfalse[0m
  
  The [5XGAP[0m category of [5Xhomalg[0m bigraded objects associated to an exact couple.
  
  (It is a subcategory of the [5XGAP[0m category [10XIsHomalgBigradedObject[0m.)
  
  [1X14.1-3 IsHomalgBigradedObjectAssociatedToAFilteredComplex[0m
  
  [2X> IsHomalgBigradedObjectAssociatedToAFilteredComplex( [0X[3XEr[0X[2X ) _________[0XCategory
  [6XReturns:[0X  [10Xtrue[0m or [10Xfalse[0m
  
  The  [5XGAP[0m  category  of  [5Xhomalg[0m  bigraded  objects  associated  to a filtered
  complex.
  The  0-th  spectral  sheet  E_0  stemming  from  a  filtration is a bigraded
  (differential) object, which, in general, does not stem from an exact couple
  (although E_1, E_2, ... do).
  
  (It is a subcategory of the [5XGAP[0m category [10XIsHomalgBigradedObject[0m.)
  
  [1X14.1-4 IsHomalgBigradedObjectAssociatedToABicomplex[0m
  
  [2X> IsHomalgBigradedObjectAssociatedToABicomplex( [0X[3XEr[0X[2X ) _______________[0XCategory
  [6XReturns:[0X  [10Xtrue[0m or [10Xfalse[0m
  
  The [5XGAP[0m category of [5Xhomalg[0m bigraded objects associated to a bicmplex.
  
  (It is a subcategory of the [5XGAP[0m category
  [10XIsHomalgBigradedObjectAssociatedToAFilteredComplex[0m.)
  
  [1X14.1-5 IsBigradedObjectOfFinitelyPresentedObjectsRep[0m
  
  [2X> IsBigradedObjectOfFinitelyPresentedObjectsRep( [0X[3XEr[0X[2X ) ________[0XRepresentation
  [6XReturns:[0X  [10Xtrue[0m or [10Xfalse[0m
  
  The  [5XGAP[0m  representation  of  bigraded  objects of finitley generated [5Xhomalg[0m
  objects.
  
  (It is a representation of the [5XGAP[0m category [2XIsHomalgBigradedObject[0m ([14X14.1-1[0m),
  which     is    a    subrepresentation    of    the    [5XGAP[0m    representation
  [10XIsFinitelyPresentedObjectRep[0m.)
  
  
  [1X14.2 Bigraded Objects: Constructors[0X
  
  [1X14.2-1 HomalgBigradedObject[0m
  
  [2X> HomalgBigradedObject( [0X[3XB[0X[2X ) _______________________________________[0Xoperation
  [6XReturns:[0X  a [5Xhomalg[0m bigraded object
  
  This constructor creates a homological (resp. cohomological) bigraded object
  given   a   homological   (resp.  cohomological)  [5Xhomalg[0m  bicomplex  [3XB[0m  (-->
  [2XHomalgBicomplex[0m ([14X13.2-1[0m)). This is nothing but the level zero sheet (without
  differential)  of the spectral sequence associated to the bicomplex [3XB[0m. So it
  is  the  double  array  of  [5Xhomalg[0m  objects (i.e. modules or complexes) in [3XB[0m
  forgetting the morphisms.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> ZZ := HomalgRingOfIntegers( );;[0X
    [4Xgap> M := HomalgMatrix( "[ 2, 3, 4,   5, 6, 7 ]", 2, 3, ZZ );;[0X
    [4Xgap> M := LeftPresentation( M );[0X
    [4X<A non-torsion left module presented by 2 relations for 3 generators>[0X
    [4Xgap> d := Resolution( M );;[0X
    [4Xgap> dd := Hom( d );;[0X
    [4Xgap> C := Resolution( dd );;[0X
    [4Xgap> CC := Hom( C );[0X
    [4X<An acyclic complex containing a single morphism of left cocomplexes at degree\[0X
    [4Xs [ 0 .. 1 ]>[0X
    [4Xgap> B := HomalgBicomplex( CC );[0X
    [4X<A bicomplex containing left modules at bidegrees [ 0 .. 1 ]x[ -1 .. 0 ]>[0X
    [4Xgap> E0 := HomalgBigradedObject( B );[0X
    [4X<A bigraded object containing left modules at bidegrees [ 0 .. 1 ]x[0X
    [4X[ -1 .. 0 ]>[0X
    [4Xgap> Display( E0 );[0X
    [4XLevel 0:[0X
    [4X[0X
    [4X * *[0X
    [4X * *[0X
  [4X------------------------------------------------------------------[0X
  
  [1X14.2-2 AsDifferentialObject[0m
  
  [2X> AsDifferentialObject( [0X[3XEr[0X[2X ) _________________________________________[0Xmethod
  [6XReturns:[0X  a [5Xhomalg[0m bigraded object
  
  Add the induced bidegree ( -r, r - 1 ) (resp. ( r, -r + 1 )) differential to
  the  level [3Xr[0m homological (resp. cohomological) bigraded object stemming from
  a  homological  (resp.  cohomological)  bicomplex. This method performs side
  effects on its argument [3XEr[0m and returns it.
  
  For an example see [2XDefectOfExactness[0m ([14X14.2-3[0m) below.
  
  [1X14.2-3 DefectOfExactness[0m
  
  [2X> DefectOfExactness( [0X[3XEr[0X[2X ) ____________________________________________[0Xmethod
  [6XReturns:[0X  a [5Xhomalg[0m bigraded object
  
  Homological:  Compute  the  homology  of  a level [3Xr[0m [13Xdifferential[0m homological
  bigraded  object,  that is the [3Xr[0m-th sheet of a homological spectral sequence
  endowed  with  a  bidegree ( -r, r - 1 ) differential. The result is a level
  [3Xr[0m+1 homological bigraded object [13Xwithout[0m its differential.
  
  Cohomological:   Compute   the   cohomology   of   a  level  [3Xr[0m  [13Xdifferential[0m
  cohomological  bigraded  object,  that  is the [3Xr[0m-th sheet of a cohomological
  spectral  sequence  endowed  with a bidegree ( r, -r + 1 ) differential. The
  result   is   a   level   [3Xr[0m+1  cohomological  bigraded  object  [13Xwithout[0m  its
  differential.
  
  The  differential  of  the  resulting  level  [3Xr[0m+1 object can a posteriori be
  computed  using [2XAsDifferentialObject[0m ([14X14.2-2[0m). The objects in the result are
  subquotients  of  the  objects  in  [3XEr[0m. An object in [3XEr[0m (at a spot (p,q)) is
  called  [13Xstable[0m  if  no  passage  to  a true subquotient occurs at any higher
  level. Of course, a zero object (at a spot (p,q)) is always stable.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> ZZ := HomalgRingOfIntegers( );;[0X
    [4Xgap> M := HomalgMatrix( "[ 2, 3, 4,   5, 6, 7 ]", 2, 3, ZZ );;[0X
    [4Xgap> M := LeftPresentation( M );[0X
    [4X<A non-torsion left module presented by 2 relations for 3 generators>[0X
    [4Xgap> d := Resolution( M );;[0X
    [4Xgap> dd := Hom( d );;[0X
    [4Xgap> C := Resolution( dd );;[0X
    [4Xgap> CC := Hom( C );[0X
    [4X<An acyclic complex containing a single morphism of left cocomplexes at degree\[0X
    [4Xs [ 0 .. 1 ]>[0X
    [4Xgap> B := HomalgBicomplex( CC );[0X
    [4X<A bicomplex containing left modules at bidegrees [ 0 .. 1 ]x[ -1 .. 0 ]>[0X
  [4X------------------------------------------------------------------[0X
  
  Now  we  construct the spectral sequence associated to the bicomplex B, also
  called the [13Xfirst[0m spectral sequence:
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> I_E0 := HomalgBigradedObject( B );[0X
    [4X<A bigraded object containing left modules at bidegrees [ 0 .. 1 ]x[0X
    [4X[ -1 .. 0 ]>[0X
    [4Xgap> Display( I_E0 );[0X
    [4XLevel 0:[0X
    [4X[0X
    [4X * *[0X
    [4X * *[0X
    [4Xgap> AsDifferentialObject( I_E0 );[0X
    [4X<A bigraded object with a differential of bidegree[0X
    [4X[ 0, -1 ] containing left modules at bidegrees [ 0 .. 1 ]x[ -1 .. 0 ]>[0X
    [4Xgap> I_E0;[0X
    [4X<A bigraded object with a differential of bidegree[0X
    [4X[ 0, -1 ] containing left modules at bidegrees [ 0 .. 1 ]x[ -1 .. 0 ]>[0X
    [4Xgap> AsDifferentialObject( I_E0 );[0X
    [4X<A bigraded object with a differential of bidegree[0X
    [4X[ 0, -1 ] containing left modules at bidegrees [ 0 .. 1 ]x[ -1 .. 0 ]>[0X
    [4Xgap> I_E1 := DefectOfExactness( I_E0 );[0X
    [4X<A bigraded object containing left modules at bidegrees [ 0 .. 1 ]x[0X
    [4X[ -1 .. 0 ]>[0X
    [4Xgap> Display( I_E1 );[0X
    [4XLevel 1:[0X
    [4X[0X
    [4X * *[0X
    [4X . .[0X
    [4Xgap> AsDifferentialObject( I_E1 );[0X
    [4X<A bigraded object with a differential of bidegree[0X
    [4X[ -1, 0 ] containing left modules at bidegrees [ 0 .. 1 ]x[ -1 .. 0 ]>[0X
    [4Xgap> I_E2 := DefectOfExactness( I_E1 );[0X
    [4X<A bigraded object containing left modules at bidegrees [ 0 .. 1 ]x[0X
    [4X[ -1 .. 0 ]>[0X
    [4Xgap> Display( I_E2 );[0X
    [4XLevel 2:[0X
    [4X[0X
    [4X s .[0X
    [4X . .[0X
  [4X------------------------------------------------------------------[0X
  
  Legend:
  
  --    A star [3X*[0m stands for a nonzero module.
  
  --    A dot [3X.[0m stands for a zero module.
  
  --    The letter [3Xs[0m stands for a nonzero module that became stable.
  
  The  [13Xsecond[0m  spectral  sequence  of  the  bicomplex  is,  by definition, the
  spectral sequence associated to the transposed bicomplex:
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> tB := TransposedBicomplex( B );[0X
    [4X<A bicomplex containing left modules at bidegrees [ -1 .. 0 ]x[ 0 .. 1 ]>[0X
    [4Xgap> II_E0 := HomalgBigradedObject( tB );[0X
    [4X<A bigraded object containing left modules at bidegrees [ -1 .. 0 ]x[0X
    [4X[ 0 .. 1 ]>[0X
    [4Xgap> Display( II_E0 );[0X
    [4XLevel 0:[0X
    [4X[0X
    [4X * *[0X
    [4X * *[0X
    [4Xgap> AsDifferentialObject( II_E0 );[0X
    [4X<A bigraded object with a differential of bidegree[0X
    [4X[ 0, -1 ] containing left modules at bidegrees [ -1 .. 0 ]x[ 0 .. 1 ]>[0X
    [4Xgap> II_E1 := DefectOfExactness( II_E0 );[0X
    [4X<A bigraded object containing left modules at bidegrees [ -1 .. 0 ]x[0X
    [4X[ 0 .. 1 ]>[0X
    [4Xgap> Display( II_E1 );[0X
    [4XLevel 1:[0X
    [4X[0X
    [4X * *[0X
    [4X . s[0X
    [4Xgap> AsDifferentialObject( II_E1 );[0X
    [4X<A bigraded object with a differential of bidegree[0X
    [4X[ -1, 0 ] containing left modules at bidegrees [ -1 .. 0 ]x[ 0 .. 1 ]>[0X
    [4Xgap> II_E2 := DefectOfExactness( II_E1 );[0X
    [4X<A bigraded object containing left modules at bidegrees [ -1 .. 0 ]x[0X
    [4X[ 0 .. 1 ]>[0X
    [4Xgap> Display( II_E2 );[0X
    [4XLevel 2:[0X
    [4X[0X
    [4X s .[0X
    [4X . s[0X
  [4X------------------------------------------------------------------[0X
  
  
  [1X14.3 Bigraded Objects: Properties[0X
  
  [1X14.3-1 IsEndowedWithDifferential[0m
  
  [2X> IsEndowedWithDifferential( [0X[3XEr[0X[2X ) __________________________________[0Xproperty
  [6XReturns:[0X  [10Xtrue[0m or [10Xfalse[0m
  
  Check if [3XEr[0m is a differential bigraded object.
  (no method installed)
  
  [1X14.3-2 IsStableSheet[0m
  
  [2X> IsStableSheet( [0X[3XEr[0X[2X ) ______________________________________________[0Xproperty
  [6XReturns:[0X  [10Xtrue[0m or [10Xfalse[0m
  
  Check if [3XEr[0m is stable.
  (no method installed)
  
  
  [1X14.4 Bigraded Objects: Operations and Functions[0X
  
  [1X14.4-1 ByASmallerPresentation[0m
  
  [2X> ByASmallerPresentation( [0X[3XEr[0X[2X ) _______________________________________[0Xmethod
  [6XReturns:[0X  a [5Xhomalg[0m bigraded object
  
  See [2XByASmallerPresentation[0m ([14X9.5-2[0m) on modules.
  
  [4X-----------------------------  Code  -----------------------------[0X
    [4XInstallMethod( ByASmallerPresentation,[0X
    [4X        "for homalg bigraded objects",[0X
    [4X        [ IsHomalgBigradedObject ],[0X
    [4X        [0X
    [4X  function( Er )[0X
    [4X    [0X
    [4X    List( Flat( ObjectsOfBigradedObject( Er ) ), ByASmallerPresentation );[0X
    [4X    [0X
    [4X    return Er;[0X
    [4X    [0X
    [4Xend );[0X
  [4X------------------------------------------------------------------[0X
  
  This method performs side effects on its argument [3XEr[0m and returns it.
  
