gap> S := HomalgRingOfIntegers();; gap> cols := CategoryOfColumns( S ); Columns( Z ) gap> obj1 := CategoryOfColumnsObject( 2, cols ); <A column module over Z of rank 2> gap> obj2 := CategoryOfColumnsObject( 8, cols ); <A column module over Z of rank 8>
gap> obj3 := CategoryOfColumnsObject( 1, cols ); <A column module over Z of rank 1> gap> IsWellDefined( obj1 ); true gap> obj4 := CategoryOfColumnsObject( 2, cols ); <A column module over Z of rank 2> gap> mor := CategoryOfColumnsMorphism( obj3, HomalgMatrix( [[1],[2]], 2, 1, S ), obj4 ); <A morphism in Columns( Z )> gap> IsWellDefined( mor ); true
gap> Display( Source( mor ) ); A column module over Z of rank 1 gap> Display( Range( mor ) ); A column module over Z of rank 2 gap> Display( UnderlyingMatrix( mor ) ); [ [ 1 ], [ 2 ] ]
gap> ZeroObject( cols ); <A column module over Z of rank 0> gap> obj5 := CategoryOfColumnsObject( 2, cols ); <A column module over Z of rank 2>
gap> Display( ZeroMorphism( ZeroObject( cols ), obj5 ) ); A zero, split monomorphism in Columns( Z ) Source: A column module over Z of rank 0 Matrix: (an empty 2 x 0 matrix) Range: A column module over Z of rank 2
gap> obj6 := CategoryOfColumnsObject( 1, cols ); <A column module over Z of rank 1>
gap> Display( IdentityMorphism( obj6 ) ); An identity morphism in Columns( Z ) Source: A column module over Z of rank 1 Matrix: [ [ 1 ] ] Range: A column module over Z of rank 1
gap> directSum := DirectSum( [ obj5, obj6 ] ); <A column module over Z of rank 3>
gap> Display( directSum ); A column module over Z of rank 3
gap> i1 := InjectionOfCofactorOfDirectSum( [ obj5, obj6 ], 1 ); <A morphism in Columns( Z )>
gap> Display( i1 ); A morphism in Columns( Z ) Source: A column module over Z of rank 2 Matrix: [ [ 1, 0 ], [ 0, 1 ], [ 0, 0 ] ] Range: A column module over Z of rank 3
gap> i2 := InjectionOfCofactorOfDirectSum( [ obj5, obj6 ], 2 ); <A morphism in Columns( Z )>
gap> Display( i2 ); A morphism in Columns( Z ) Source: A column module over Z of rank 1 Matrix: [ [ 0 ], [ 0 ], [ 1 ] ] Range: A column module over Z of rank 3
gap> proj1 := ProjectionInFactorOfDirectSum( [ obj5, obj6 ], 1 ); <A morphism in Columns( Z )>
gap> Display( proj1 ); A morphism in Columns( Z ) Source: A column module over Z of rank 3 Matrix: [ [ 1, 0, 0 ], [ 0, 1, 0 ] ] Range: A column module over Z of rank 2
gap> proj2 := ProjectionInFactorOfDirectSum( [ obj5, obj6 ], 2 ); <A morphism in Columns( Z )>
gap> Display( proj2 ); A morphism in Columns( Z ) Source: A column module over Z of rank 3 Matrix: [ [ 0, 0, 1 ] ] Range: A column module over Z of rank 1
gap> k := WeakKernelEmbedding( proj1 ); <A morphism in Columns( Z )>
gap> Display( k ); A morphism in Columns( Z ) Source: A column module over Z of rank 1 Matrix: [ [ 0 ], [ 0 ], [ 1 ] ] Range: A column module over Z of rank 3
gap> ck := WeakCokernelProjection( k ); <A morphism in Columns( Z )>
gap> Display( ck ); A morphism in Columns( Z ) Source: A column module over Z of rank 3 Matrix: [ [ 0, 1, 0 ], [ -1, 0, 0 ] ] Range: A column module over Z of rank 2
gap> IsMonomorphism( k ); true gap> IsEpimorphism( k ); false gap> IsMonomorphism( ck ); false gap> IsEpimorphism( ck ); true gap> mor1 := CategoryOfColumnsMorphism( obj5, HomalgMatrix( [[ 1, 2 ]], 1, 2, S ), obj6 ); <A morphism in Columns( Z )>
gap> Display( mor1 ); A morphism in Columns( Z ) Source: A column module over Z of rank 2 Matrix: [ [ 1, 2 ] ] Range: A column module over Z of rank 1
gap> mor2 := IdentityMorphism( obj6 ); <An identity morphism in Columns( Z )>
gap> Display( mor2 ); An identity morphism in Columns( Z ) Source: A column module over Z of rank 1 Matrix: [ [ 1 ] ] Range: A column module over Z of rank 1
gap> lift := Lift( mor1, mor2 ); <A morphism in Columns( Z )>
gap> Display( lift ); A morphism in Columns( Z ) Source: A column module over Z of rank 2 Matrix: [ [ 1, 2 ] ] Range: A column module over Z of rank 1
gap> source := CategoryOfColumnsObject( 1, cols ); <A column module over Z of rank 1> gap> range := CategoryOfColumnsObject( 2, cols ); <A column module over Z of rank 2> gap> mor := CategoryOfColumnsMorphism( source, HomalgMatrix( [[ 2 ], [ 3 ]], 2, 1, S ), range ); <A morphism in Columns( Z )> gap> colift := Colift( mor2, mor ); <A morphism in Columns( Z )>
gap> Display( colift ); A morphism in Columns( Z ) Source: A column module over Z of rank 1 Matrix: [ [ 2 ], [ 3 ] ] Range: A column module over Z of rank 2
gap> fp := WeakBiFiberProduct( mor1, mor2 ); <A column module over Z of rank 2> gap> fp_proj := ProjectionOfBiasedWeakFiberProduct( mor1, mor2 ); <A morphism in Columns( Z )>
gap> Display( fp_proj ); A morphism in Columns( Z ) Source: A column module over Z of rank 2 Matrix: [ [ -2, -1 ], [ 1, 0 ] ] Range: A column module over Z of rank 2
gap> po := WeakBiPushout( mor, mor2 ); <A column module over Z of rank 2> gap> inj_push := InjectionOfBiasedWeakPushout( mor, mor2 ); <A morphism in Columns( Z )>
gap> Display( inj_push ); A morphism in Columns( Z ) Source: A column module over Z of rank 2 Matrix: [ [ -3, 2 ], [ 1, -1 ] ] Range: A column module over Z of rank 2
generated by GAPDoc2HTML