gap> QQ := HomalgFieldOfRationalsInSingular();; gap> R := QQ * "x,y,z";; gap> rows := CategoryOfRows_as_AdditiveClosure_RingAsCategory( R );; gap> M := HomalgMatrix( "[[x^2,4*y]]", 1, 2, R );; gap> N := HomalgMatrix( "[[1,3*x], [2*y^3,5*y]]", 2, 2, R );; gap> P := M * N;; gap> o := CategoryOfRowsObject( rows, 1 );; gap> A := o;; gap> B := DirectSum( o, o );; gap> alpha := CategoryOfRowsMorphism( rows, A, M, B );; gap> IsWellDefined( alpha ); true gap> beta := CategoryOfRowsMorphism( rows, B, N, B );; gap> IsWellDefined( beta ); true gap> gamma := PreCompose( alpha, beta );; gap> IsWellDefined( gamma ); true gap> UnderlyingMatrix( gamma ) = P; true gap> # compute Lift( gamma, beta ) via SolveLinearSystemInAbCategory for coverage of hom structure: > delta := SolveLinearSystemInAbCategory( [ [ IdentityMorphism( A ) ] ], [ [ beta ] ], [ gamma ] )[1];; gap> IsWellDefined( delta ); true gap> IsCongruentForMorphisms( gamma, PreCompose( delta, beta ) ); true gap> IsCongruentForMorphisms( > SumOfMorphisms( A, [ alpha, alpha, alpha ], B ), > AdditionForMorphisms( alpha, AdditionForMorphisms( alpha, alpha ) ) > ); true gap> IsCongruentForMorphisms( > SumOfMorphisms( A, [ ], B ), > ZeroMorphism( A, B ) > ); true gap> # E and EE are both occupied by GAP > EEE := KoszulDualRing( R );; gap> rows := CategoryOfRows_as_AdditiveClosure_RingAsCategory( EEE );; gap> M := HomalgMatrix( "[[e0*e1,3*e0]]", 1, 2, EEE );; gap> N := HomalgMatrix( "[[1,e0*e2], [2*e0*e1*e2,5*e2]]", 2, 2, EEE );; gap> P := M * N;; gap> o := CategoryOfRowsObject( rows, 1 );; gap> A := o;; gap> B := DirectSum( o, o );; gap> alpha := CategoryOfRowsMorphism( rows, A, M, B );; gap> IsWellDefined( alpha ); true gap> beta := CategoryOfRowsMorphism( rows, B, N, B );; gap> IsWellDefined( beta ); true gap> gamma := PreCompose( alpha, beta );; gap> IsWellDefined( gamma ); true gap> UnderlyingMatrix( gamma ) = P; true gap> # compute Lift( gamma, beta ) via SolveLinearSystemInAbCategory for coverage of hom structure: > delta := SolveLinearSystemInAbCategory( [ [ IdentityMorphism( A ) ] ], [ [ beta ] ], [ gamma ] )[1];; gap> IsWellDefined( delta ); true gap> IsCongruentForMorphisms( gamma, PreCompose( delta, beta ) ); true gap> IsCongruentForMorphisms( > SumOfMorphisms( A, [ alpha, alpha, alpha ], B ), > AdditionForMorphisms( alpha, AdditionForMorphisms( alpha, alpha ) ) > ); true gap> IsCongruentForMorphisms( > SumOfMorphisms( A, [ ], B ), > ZeroMorphism( A, B ) > ); true
gap> LoadPackage( "AdditiveClosuresForCAP", false ); true gap> zz := HomalgRingOfIntegers( ); Z gap> Zmat := CategoryOfRows( zz ); Rows( Z ) gap> Display( Zmat ); A CAP category with name Rows( Z ): 83 primitive operations were used to derive 425 operations for this category \ which algorithmically * IsEquippedWithHomomorphismStructure * IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms * IsPreAbelianCategory * IsRigidSymmetricClosedMonoidalCategory * IsRigidSymmetricCoclosedMonoidalCategory and furthermore mathematically * IsSkeletalCategory * IsStrictMonoidalCategory gap> mat := HomalgMatrix( > [ [ -36, 18, -80, -54, 28 ], > [ 90, -45, 140, 45, -40 ], > [ -24, 12, -32, -4, 8 ], > [ -6, 3, -4, 5, 0 ] ], zz );; gap> mor := mat / Zmat; <A morphism in Rows( Z )> gap> split_epi := CoimageProjection( mor ); <An epimorphism in Rows( Z )> gap> IsSplitEpimorphism( split_epi ); true gap> split_mono := ImageEmbedding( mor ); <A monomorphism in Rows( Z )> gap> IsSplitMonomorphism( split_mono ); true gap> epimono := MorphismFromCoimageToImage( mor ); <A morphism in Rows( Z )> gap> IsEpimorphism( epimono ); true gap> IsMonomorphism( epimono ); true gap> LiftAlongMonomorphism( split_mono, AstrictionToCoimage( mor ) ) = epimono; true gap> ColiftAlongEpimorphism( split_epi, CoastrictionToImage( mor ) ) = epimono; true gap> PreCompose( [ split_epi, epimono, split_mono ] ) = mor; true
generated by GAPDoc2HTML