1 Introduction This package is part of the homalg project [hpa10]. The role of the package is described in the manual of the homalg package. 1.1 Ring Constructions for Supported External Computer Algebra Systems Here are some of the supported ring constructions: 1.1-1 external GAP  Example  gap> ZZ := HomalgRingOfIntegersInExternalGAP( ); Z gap> Display( ZZ );  gap> F2 := HomalgRingOfIntegersInExternalGAP( 2, ZZ ); GF(2) gap> Display( F2 );   F2 := HomalgRingOfIntegersInExternalGAP( 2 ) would launch another GAP.  Example  gap> Z4 := HomalgRingOfIntegersInExternalGAP( 4, ZZ ); Z/4Z gap> Display( Z4 );  gap> Z_4 := HomalgRingOfIntegersInExternalGAP( ZZ ) / 4; Z/( 4 ) gap> Display( Z_4 );  gap> Q := HomalgFieldOfRationalsInExternalGAP( ZZ ); Q gap> Display( Q );   1.1-2 Singular  Example  gap> F2 := HomalgRingOfIntegersInSingular( 2 ); GF(2) gap> Display( F2 );  gap> F2s := HomalgRingOfIntegersInSingular( 2, "s" ,F2 ); GF(2)(s) gap> Display( F2s );  gap> ZZ := HomalgRingOfIntegersInSingular( F2 ); Z gap> Display( ZZ );  gap> Q := HomalgFieldOfRationalsInSingular( F2 ); Q gap> Display( Q );  gap> Qs := HomalgFieldOfRationalsInSingular( "s", F2 ); Q(s) gap> Display( Qs );  gap> Qi := HomalgFieldOfRationalsInSingular( "i", "i^2+1", Q ); Q[i]/(i^2+1) gap> Display( Qi );   Q := HomalgFieldOfRationalsInSingular( ) would launch another Singular.  Example  gap> F2xyz := F2 * "x,y,z"; GF(2)[x,y,z] gap> Display( F2xyz );  gap> F2sxyz := F2s * "x,y,z"; GF(2)(s)[x,y,z] gap> Display( F2sxyz );  gap> F2xyzw := F2xyz * "w"; GF(2)[x,y,z][w] gap> Display( F2xyzw );  gap> F2sxyzw := F2sxyz * "w"; GF(2)(s)[x,y,z][w] gap> Display( F2sxyzw );  gap> ZZxyz := ZZ * "x,y,z"; Z[x,y,z] gap> Display( ZZxyz );  gap> ZZxyzw := ZZxyz * "w"; Z[x,y,z][w] gap> Display( ZZxyzw );  gap> Qxyz := Q * "x,y,z"; Q[x,y,z] gap> Display( Qxyz );  gap> Qsxyz := Qs * "x,y,z"; Q(s)[x,y,z] gap> Display( Qsxyz );  gap> Qixyz := Qi * "x,y,z"; (Q[i]/(i^2+1))[x,y,z] gap> Display( Qixyz );  gap> Qxyzw := Qxyz * "w"; Q[x,y,z][w] gap> Display( Qxyzw );  gap> Qsxyzw := Qsxyz * "w"; Q(s)[x,y,z][w] gap> Display( Qsxyzw );  gap> Dxyz := RingOfDerivations( Qxyz, "Dx,Dy,Dz" ); Q[x,y,z] gap> Display( Dxyz );  gap> Exyz := ExteriorRing( Qxyz, "e,f,g" ); Q{e,f,g} gap> Display( Exyz );  gap> Dsxyz := RingOfDerivations( Qsxyz, "Dx,Dy,Dz" ); Q(s)[x,y,z] gap> Display( Dsxyz );  gap> Esxyz := ExteriorRing( Qsxyz, "e,f,g" ); Q(s){e,f,g} gap> Display( Esxyz );  gap> Dixyz := RingOfDerivations( Qixyz, "Dx,Dy,Dz" ); (Q[i]/(i^2+1))[x,y,z] gap> Display( Dixyz );  gap> Eixyz := ExteriorRing( Qixyz, "e,f,g" ); (Q[i]/(i^2+1)){e,f,g} gap> Display( Eixyz );   1.1-3 MAGMA  Example  gap> ZZ := HomalgRingOfIntegersInMAGMA( ); Z gap> Display( ZZ );  gap> F2 := HomalgRingOfIntegersInMAGMA( 2, ZZ ); GF(2) gap> Display( F2 );   F2 := HomalgRingOfIntegersInMAGMA( 2 ) would launch another MAGMA.  Example  gap> Z_4 := HomalgRingOfIntegersInMAGMA( ZZ ) / 4; Z/( 4 ) gap> Display( Z_4 );  gap> Q := HomalgFieldOfRationalsInMAGMA( ZZ ); Q gap> Display( Q );  gap> F2xyz := F2 * "x,y,z"; GF(2)[x,y,z] gap> Display( F2xyz );  gap> Qxyz := Q * "x,y,z"; Q[x,y,z] gap> Display( Qxyz );  gap> Exyz := ExteriorRing( Qxyz, "e,f,g" ); Q{e,f,g} gap> Display( Exyz );   1.1-4 Macaulay2  Example  gap> ZZ := HomalgRingOfIntegersInMacaulay2( ); Z gap> Display( ZZ );  gap> F2 := HomalgRingOfIntegersInMacaulay2( 2, ZZ ); GF(2) gap> Display( F2 );   F2 := HomalgRingOfIntegersInMacaulay2( 2 ) would launch another Macaulay2.  Example  gap> Z_4 := HomalgRingOfIntegersInMacaulay2( ZZ ) / 4; Z/( 4 ) gap> Display( Z_4 );  gap> Q := HomalgFieldOfRationalsInMacaulay2( ZZ ); Q gap> Display( Q );  gap> F2xyz := F2 * "x,y,z"; GF(2)[x,y,z] gap> Display( F2xyz );  gap> Qxyz := Q * "x,y,z"; Q[x,y,z] gap> Display( Qxyz );  gap> Dxyz := RingOfDerivations( Qxyz, "Dx,Dy,Dz" ); Q[x,y,z] gap> Display( Dxyz );  gap> Exyz := ExteriorRing( Qxyz, "e,f,g" ); Q{e,f,g} gap> Display( Exyz );   1.1-5 Sage  Example  gap> ZZ := HomalgRingOfIntegersInSage( ); Z gap> Display( ZZ );  gap> F2 := HomalgRingOfIntegersInSage( 2, ZZ ); GF(2) gap> Display( F2 );   F2 := HomalgRingOfIntegersInSage( 2 ) would launch another Sage.  Example  gap> Z_4 := HomalgRingOfIntegersInSage( ZZ ) / 4; Z/( 4 ) gap> Display( Z_4 );  gap> Q := HomalgFieldOfRationalsInSage( ZZ ); Q gap> Display( Q );  gap> F2x := F2 * "x"; GF(2)[x] gap> Display( F2x );  gap> Qx := Q * "x"; Q[x] gap> Display( Qx );   1.1-6 Maple  Example  gap> ZZ := HomalgRingOfIntegersInMaple( ); Z gap> Display( ZZ );  gap> F2 := HomalgRingOfIntegersInMaple( 2, ZZ ); GF(2) gap> Display( F2 );   F2 := HomalgRingOfIntegersInMaple( 2 ) would launch another Maple.  Example  gap> Z4 := HomalgRingOfIntegersInMaple( 4, ZZ ); Z/4Z gap> Display( Z4 );  gap> Z_4 := HomalgRingOfIntegersInMaple( ZZ ) / 4; Z/( 4 ) gap> Display( Z_4 );  gap> Q := HomalgFieldOfRationalsInMaple( ZZ ); Q gap> Display( Q );  gap> F2xyz := F2 * "x,y,z"; GF(2)[x,y,z] gap> Display( F2xyz );  gap> Qxyz := Q * "x,y,z"; Q[x,y,z] gap> Display( Qxyz );  gap> Dxyz := RingOfDerivations( Qxyz, "Dx,Dy,Dz" ); Q[x,y,z] gap> Display( Dxyz );  gap> Exyz := ExteriorRing( Qxyz, "e,f,g" ); Q{e,f,g} gap> Display( Exyz );