gap> R := HomalgFieldOfRationalsInDefaultCAS( ) * "x0,x1,x2";; gap> S := GradedRing( R );; gap> mat := HomalgMatrix( "[ x0^2, x1^2, x2^2 ]", 1, 3, S ); <A 1 x 3 matrix over a graded ring> gap> M := RightPresentationWithDegrees( mat, S ); <A graded cyclic right module on a cyclic generator satisfying 3 relations> gap> M := RightPresentationWithDegrees( mat ); <A graded cyclic right module on a cyclic generator satisfying 3 relations> gap> d := Resolution( M ); <A right acyclic complex containing 3 morphisms of graded right modules at degrees [ 0 .. 3 ]> gap> betti := BettiTable( d ); <A Betti diagram of <A right acyclic complex containing 3 morphisms of graded right modules at degrees [ 0 .. 3 ]>> gap> Display( betti ); total: 1 3 3 1 ---------------- 0: 1 . . . 1: . 3 . . 2: . . 3 . 3: . . . 1 ---------------- degree: 0 1 2 3 gap> ## we are still below the Castelnuovo-Mumford regularity, which is 3: gap> M2 := SubmoduleGeneratedByHomogeneousPart( 2, M ); <A graded torsion right submodule given by 3 generators> gap> d2 := Resolution( M2 ); <A right acyclic complex containing 3 morphisms of graded right modules at degrees [ 0 .. 3 ]> gap> betti2 := BettiTable( d2 ); <A Betti diagram of <A right acyclic complex containing 3 morphisms of graded right modules at degrees [ 0 .. 3 ]>> gap> Display( betti2 ); total: 3 8 6 1 ---------------- 2: 3 8 6 . 3: . . . 1 ---------------- degree: 0 1 2 3
gap> R := HomalgFieldOfRationalsInDefaultCAS( ) * "x0,x1,x2";; gap> S := GradedRing( R );; gap> mat := HomalgMatrix( "[ x0^2, x1^2 ]", 1, 2, S ); <A 1 x 2 matrix over a graded ring> gap> M := RightPresentationWithDegrees( mat, S ); <A graded cyclic right module on a cyclic generator satisfying 2 relations> gap> d := Resolution( M ); <A right acyclic complex containing 2 morphisms of graded right modules at degrees [ 0 .. 2 ]> gap> betti := BettiTable( d ); <A Betti diagram of <A right acyclic complex containing 2 morphisms of graded right modules at degrees [ 0 .. 2 ]>> gap> Display( betti ); total: 1 2 1 -------------- 0: 1 . . 1: . 2 . 2: . . 1 -------------- degree: 0 1 2 gap> m := SubmoduleGeneratedByHomogeneousPart( 2, M ); <A graded torsion right submodule given by 4 generators> gap> d2 := Resolution( m ); <A right acyclic complex containing 2 morphisms of graded right modules at degrees [ 0 .. 2 ]> gap> betti2 := BettiTable( d2 ); <A Betti diagram of <A right acyclic complex containing 2 morphisms of graded right modules at degrees [ 0 .. 2 ]>> gap> Display( betti2 ); 2: 4 8 4 -------------- degree: 0 1 2
This is an example from Section 3.2 in [Sch03].
gap> Qxyz := HomalgFieldOfRationalsInDefaultCAS( ) * "x,y,z";; gap> mmat := HomalgMatrix( "[ x, x^3 + y^3 + z^3 ]", 1, 2, Qxyz ); <A 1 x 2 matrix over an external ring> gap> S := GradedRing( Qxyz );; gap> M := RightPresentationWithDegrees( mmat, S ); <A graded cyclic right module on a cyclic generator satisfying 2 relations> gap> Mr := Resolution( M ); <A right acyclic complex containing 2 morphisms of graded right modules at degrees [ 0 .. 2 ]> gap> bettiM := BettiTable( Mr ); <A Betti diagram of <A right acyclic complex containing 2 morphisms of graded right modules at degrees [ 0 .. 2 ]>> gap> Display( bettiM ); total: 1 2 1 -------------- 0: 1 1 . 1: . . . 2: . 1 1 -------------- degree: 0 1 2 gap> R := GradedRing( CoefficientsRing( S ) * "x,y,z,w" );; gap> nmat := HomalgMatrix( "[ z^2 - y*w, y*z - x*w, y^2 - x*z ]", 1, 3, R ); <A 1 x 3 matrix over a graded ring> gap> N := RightPresentationWithDegrees( nmat ); <A graded cyclic right module on a cyclic generator satisfying 3 relations> gap> Nr := Resolution( N ); <A right acyclic complex containing 2 morphisms of graded right modules at degrees [ 0 .. 2 ]> gap> bettiN := BettiTable( Nr ); <A Betti diagram of <A right acyclic complex containing 2 morphisms of graded right modules at degrees [ 0 .. 2 ]>> gap> Display( bettiN ); total: 1 3 2 -------------- 0: 1 . . 1: . 3 2 -------------- degree: 0 1 2
This is an example from Section 8.3 in [Sch03].
gap> R := HomalgFieldOfRationalsInDefaultCAS( ) * "x,y,z,w";; gap> S := GradedRing( R );; gap> jmat := HomalgMatrix( "[ z*w, x*w, y*z, x*y, x^3*z - x*z^3 ]", 1, 5, S ); <A 1 x 5 matrix over a graded ring> gap> J := RightPresentationWithDegrees( jmat ); <A graded cyclic right module on a cyclic generator satisfying 5 relations> gap> Jr := Resolution( J ); <A right acyclic complex containing 3 morphisms of graded right modules at degrees [ 0 .. 3 ]> gap> betti := BettiTable( Jr ); <A Betti diagram of <A right acyclic complex containing 3 morphisms of graded right modules at degrees [ 0 .. 3 ]>> gap> Display( betti ); total: 1 5 6 2 ---------------- 0: 1 . . . 1: . 4 4 1 2: . . . . 3: . 1 2 1 ---------------- degree: 0 1 2 3
This is Exercise 8.3.3 in [Sch03].
gap> Qxyz := HomalgFieldOfRationalsInDefaultCAS( ) * "x,y,z";; gap> S := GradedRing( Qxyz );; gap> mat := HomalgMatrix( "[ x*y*z, x*y^2, x^2*z, x^2*y, x^3 ]", 1, 5, S ); <A 1 x 5 matrix over a graded ring> gap> M := RightPresentationWithDegrees( mat, S ); <A graded cyclic right module on a cyclic generator satisfying 5 relations> gap> Mr := Resolution( M ); <A right acyclic complex containing 3 morphisms of graded right modules at degrees [ 0 .. 3 ]> gap> betti := BettiTable( Mr ); <A Betti diagram of <A right acyclic complex containing 3 morphisms of graded right modules at degrees [ 0 .. 3 ]>> gap> Display( betti ); total: 1 5 6 2 ---------------- 0: 1 . . . 1: . . . . 2: . 5 6 2 ---------------- degree: 0 1 2 3
gap> R := HomalgFieldOfRationalsInDefaultCAS( ) * "x,y,z";; gap> S := GradedRing( R );; gap> m := GradedLeftSubmodule( "x,y,z", S ); <A graded torsion-free (left) ideal given by 3 generators> gap> I := Intersect( m^3, GradedLeftSubmodule( "x", S ) ); <A graded torsion-free (left) ideal given by 6 generators> gap> NrRelations( I ); 8 gap> Im := SubobjectQuotient( I, m ); <A graded torsion-free rank 1 (left) ideal given by 3 generators> gap> I_m := Saturate( I, m ); <A graded principal (left) ideal of rank 1 on a free generator> gap> Is := Saturate( I ); <A graded principal (left) ideal of rank 1 on a free generator> gap> Assert( 0, Is = I_m );
gap> LoadPackage( "GradedRingForHomalg" );; gap> Qxyzt := HomalgFieldOfRationalsInDefaultCAS( ) * "x,y,z,t";; gap> S := GradedRing( Qxyzt );; gap> gap> wmat := HomalgMatrix( "[ \ > x*y, y*z, z*t, 0, 0, 0,\ > x^3*z,x^2*z^2,0, x*z^2*t, -z^2*t^2, 0,\ > x^4, x^3*z, 0, x^2*z*t, -x*z*t^2, 0,\ > 0, 0, x*y, -y^2, x^2-t^2, 0,\ > 0, 0, x^2*z, -x*y*z, y*z*t, 0,\ > 0, 0, x^2*y-x^2*t,-x*y^2+x*y*t,y^2*t-y*t^2,0,\ > 0, 0, 0, 0, -1, 1 \ > ]", 7, 6, Qxyzt );; gap> gap> LoadPackage( "GradedModules" );; gap> wmor := GradedMap( wmat, "free", "free", "left", S );; gap> IsMorphism( wmor );; gap> W := LeftPresentationWithDegrees( wmat, S );; gap> HW := ModuleOfGlobalSections( W ); <A graded left module presented by yet unknown relations for 6 generators> gap> LinearStrandOfTateResolution( W, 0,4 ); <A cocomplex containing 4 morphisms of graded left modules at degrees [ 0 .. 4 ]> gap> purity_iso := IsomorphismOfFiltration( PurityFiltration( W ) ); <A non-zero isomorphism of graded left modules> gap> Hpurity_iso := ModuleOfGlobalSections( purity_iso ); <An isomorphism of graded left modules> gap> ModuleOfGlobalSections( wmor ); <A homomorphism of graded left modules> gap> NaturalMapToModuleOfGlobalSections( W ); <A homomorphism of graded left modules>
This example computes the global sections module of the Horrocks-Mumford bundle.
gap> LoadPackage( "GradedRingForHomalg" );; gap> R := HomalgFieldOfRationalsInDefaultCAS( ) * "x0..x4";; gap> S := GradedRing( R );; gap> A := KoszulDualRing( S, "e0..e4" );; gap> LoadPackage( "GradedModules" );; gap> mat := HomalgMatrix( "[ \ > e1*e4, e2*e0, e3*e1, e4*e2, e0*e3, \ > e2*e3, e3*e4, e4*e0, e0*e1, e1*e2 \ > ]", > 2, 5, A ); <A 2 x 5 matrix over a graded ring> gap> phi := GradedMap( mat, "free", "free", "left", A );; gap> IsMorphism( phi ); true gap> M := GuessModuleOfGlobalSectionsFromATateMap( 2, phi ); #I GuessModuleOfGlobalSectionsFromATateMap uses a heuristic for efficiency; please check the correctness of the following result <A graded left module presented by yet unknown relations for 19 generators> gap> IsPure( M ); true gap> Rank( M ); 2 gap> Display( BettiTable( Resolution( M ) ) ); total: 19 35 20 2 -------------------- 3: 4 . . . 4: 15 35 20 . 5: . . . 2 -------------------- degree: 0 1 2 3 gap> Display( BettiTable( TateResolution( M, -5, 5 ) ) ); total: 100 37 14 10 5 2 5 10 14 37 100 ? ? ? ? ----------|---|---|---|---|---|---|---|---|---|---|---|---|---|---| 4: 100 35 4 . . . . . . . . 0 0 0 0 3: * . 2 10 10 5 . . . . . . 0 0 0 2: * * . . . . . 2 . . . . . 0 0 1: * * * . . . . . . 5 10 10 2 . 0 0: * * * * . . . . . . . . 4 35 100 ----------|---|---|---|---|---|---|---|---|---|---|---|---|---|---S twist: -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 ------------------------------------------------------------------- Euler: 100 35 2 -10 -10 -5 0 2 0 -5 -10 -10 2 35 100 gap> M; <A graded reflexive non-projective rank 2 left module presented by 99 \ relations for 19 generators> gap> P := ElementOfGrothendieckGroup( M ); ( 2*O_{P^4} - 1*O_{P^3} - 4*O_{P^2} - 2*O_{P^1} ) -> P^4 gap> P!.DisplayTwistedCoefficients := true; true gap> P; ( 2*O(-3) - 10*O(-2) + 15*O(-1) - 5*O(0) ) -> P^4 gap> chi := HilbertPolynomial( M ); 1/12*t^4+2/3*t^3-1/12*t^2-17/3*t-5 gap> c := ChernPolynomial( M ); ( 2 | 1-h+4*h^2 ) -> P^4 gap> ChernPolynomial( M * S^3 ); ( 2 | 1+5*h+10*h^2 ) -> P^4 gap> ch := ChernCharacter( M ); [ 2-u-7*u^2/2!+11*u^3/3!+17*u^4/4! ] -> P^4 gap> HilbertPolynomial( ch ); 1/12*t^4+2/3*t^3-1/12*t^2-17/3*t-5 gap> List( [ -8 .. 7 ], i -> Value( chi, i ) ); [ 35, 2, -10, -10, -5, 0, 2, 0, -5, -10, -10, 2, 35, 100, 210, 380 ] gap> HF := HilbertFunction( M ); function( t ) ... end gap> List( [ 0 .. 7 ], HF ); [ 0, 0, 0, 4, 35, 100, 210, 380 ] gap> IndexOfRegularity( M ); 4 gap> DataOfHilbertFunction( M ); [ [ [ 4 ], [ 3 ] ], 1/12*t^4+2/3*t^3-1/12*t^2-17/3*t-5 ]
generated by GAPDoc2HTML