gap> Qxyz := HomalgFieldOfRationalsInDefaultCAS( ) * "x,y,z";; gap> A3 := RingOfDerivations( Qxyz, "Dx,Dy,Dz" );; gap> M1 := HomalgMatrix( "[ \ > Dx \ > ]", 1, 1, A3 );; gap> M2 := HomalgMatrix( "[ \ > Dx, \ > Dy \ > ]", 2, 1, A3 );; gap> M3 := HomalgMatrix( "[ \ > Dx, \ > Dy, \ > Dz \ > ]", 3, 1, A3 );; gap> M := DiagMat( [ M1, M2, M3 ] );; gap> M := ShallowCopy( M );; gap> SetIsMutableMatrix( M, true );; gap> M[ 1, 2 ] := "1";; gap> M[ 2, 3 ] := "1";; gap> M[ 3, 3 ] := "1";; gap> MakeImmutable( M );; gap> tau1 := HomalgMatrix( "[ \ > 1, Dx, Dz, \ > 0, 0, 1, \ > 0, 1, Dy \ > ]", 3, 3, A3 );; gap> tau2 := HomalgMatrix( "[ \ > 0, 1, Dz+x*y, \ > 0, 0, 1, \ > 1, Dz, x-y \ > ]", 3, 3, A3 );; gap> tau3 := HomalgMatrix( "[ \ > 1, 0, 0, \ > 1, 1, 0, \ > 0, -1, 1 \ > ]", 3, 3, A3 );; gap> tau := tau1 * tau2 * tau3;; gap> M := M * tau;; gap> rows := CategoryOfRows( A3 );; gap> alpha := AsCategoryOfRowsMorphism( M, rows );; gap> Mrows := FreydCategoryObject( alpha );; gap> Srows := SimplifyObject( Mrows, infinity );; gap> RankOfObject( Source( RelationMorphism( Srows ) ) ); 4 gap> RankOfObject( Range( RelationMorphism( Srows ) ) ); 2 gap> IsIsomorphism( SimplifyObject_IsoFromInputObject( Mrows, infinity ) ); true gap> IsIsomorphism( SimplifyObject_IsoToInputObject( Mrows, infinity ) ); true
Computing the grade filtration:
gap> mu1 := GradeFiltrationNthMonomorphism( Mrows, 1 );; gap> IsZero( mu1 ); false gap> IsMonomorphism( mu1 ); true gap> mu2 := GradeFiltrationNthMonomorphism( Mrows, 2 );; gap> IsZero( mu2 ); false gap> IsMonomorphism( mu2 ); true gap> mu3 := GradeFiltrationNthMonomorphism( Mrows, 3 );; gap> IsZero( mu3 ); false gap> IsMonomorphism( mu3 ); true gap> mu4 := GradeFiltrationNthMonomorphism( Mrows, 4 );; gap> IsZero( mu4 ); true
gap> cols := CategoryOfColumns( A3 );; gap> alpha := AsCategoryOfColumnsMorphism( M, cols );; gap> Mcols := FreydCategoryObject( alpha );; gap> Scols := SimplifyObject( Mcols, infinity );; gap> RankOfObject( Source( RelationMorphism( Scols ) ) ); 1 gap> RankOfObject( Range( RelationMorphism( Scols ) ) ); 4 gap> IsIsomorphism( SimplifyObject_IsoFromInputObject( Mcols, infinity ) ); true gap> IsIsomorphism( SimplifyObject_IsoToInputObject( Mcols, infinity ) ); true
generated by GAPDoc2HTML