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
generated by GAPDoc2HTML