Goto Chapter: Top 1 2 3 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

1 Introduction
 1.1 Ring Constructions for Supported External Computer Algebra Systems

1 Introduction

This package is part of the homalg project [tpa22]. 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
gap> zz := HomalgRingOfIntegersInExternalGAP( );
Z
gap> Display( zz );
<An external ring residing in the CAS GAP>
gap> F2 := HomalgRingOfIntegersInExternalGAP( 2, zz );
GF(2)
gap> Display( F2 );
<An external ring residing in the CAS GAP>

F2 := HomalgRingOfIntegersInExternalGAP( 2 ) would launch another GAP.

gap> Z4 := HomalgRingOfIntegersInExternalGAP( 4, zz );
Z/4Z
gap> Display( Z4 );
<An external ring residing in the CAS GAP>
gap> Z_4 := HomalgRingOfIntegersInExternalGAP( zz ) / 4;
Z/( 4 )
gap> Display( Z_4 );
<A residue class ring>
gap> Q := HomalgFieldOfRationalsInExternalGAP( zz );
Q
gap> Display( Q );
<An external ring residing in the CAS GAP>

1.1-2 Singular
#@if IsBound( TryLaunchCAS_IO_ForHomalg( HOMALG_IO_Singular ).stdout )
gap> F2 := HomalgRingOfIntegersInSingular( 2 );
GF(2)
gap> Display( F2 );
<An external ring residing in the CAS Singular>
gap> F2s := HomalgRingOfIntegersInSingular( 2, "s" ,F2 );
GF(2)(s)
gap> Display( F2s );
<An external ring residing in the CAS Singular>
gap> zz := HomalgRingOfIntegersInSingular( F2 );
Z
gap> Display( zz );
<An external ring residing in the CAS Singular>
gap> Q := HomalgFieldOfRationalsInSingular( F2 );
Q
gap> Display( Q );
<An external ring residing in the CAS Singular>
gap> Qs := HomalgFieldOfRationalsInSingular( "s", F2 );
Q(s)
gap> Display( Qs );
<An external ring residing in the CAS Singular>
gap> Qi := HomalgFieldOfRationalsInSingular( "i", "i^2+1", Q );
Q[i]/(i^2+1)
gap> Display( Qi );
<An external ring residing in the CAS Singular>
#@fi

Q := HomalgFieldOfRationalsInSingular( ) would launch another Singular.

#@if IsBound( TryLaunchCAS_IO_ForHomalg( HOMALG_IO_Singular ).stdout )
gap> F2xyz := F2 * "x,y,z";
GF(2)[x,y,z]
gap> Display( F2xyz );
<An external ring residing in the CAS Singular>
gap> F2sxyz := F2s * "x,y,z";
GF(2)(s)[x,y,z]
gap> Display( F2sxyz );
<An external ring residing in the CAS Singular>
gap> F2xyzw := F2xyz * "w";
GF(2)[x,y,z][w]
gap> Display( F2xyzw );
<An external ring residing in the CAS Singular>
gap> F2sxyzw := F2sxyz * "w";
GF(2)(s)[x,y,z][w]
gap> Display( F2sxyzw );
<An external ring residing in the CAS Singular>
gap> zzxyz := zz * "x,y,z";
Z[x,y,z]
gap> Display( zzxyz );
<An external ring residing in the CAS Singular>
gap> zzxyzw := zzxyz * "w";
Z[x,y,z][w]
gap> Display( zzxyzw );
<An external ring residing in the CAS Singular>
gap> Qxyz := Q * "x,y,z";
Q[x,y,z]
gap> Display( Qxyz );
<An external ring residing in the CAS Singular>
gap> Qsxyz := Qs * "x,y,z";
Q(s)[x,y,z]
gap> Display( Qsxyz );
<An external ring residing in the CAS Singular>
gap> Qixyz := Qi * "x,y,z";
(Q[i]/(i^2+1))[x,y,z]
gap> Display( Qixyz );
<An external ring residing in the CAS Singular>
gap> Qxyzw := Qxyz * "w";
Q[x,y,z][w]
gap> Display( Qxyzw );
<An external ring residing in the CAS Singular>
gap> Qsxyzw := Qsxyz * "w";
Q(s)[x,y,z][w]
gap> Display( Qsxyzw );
<An external ring residing in the CAS Singular>
gap> Dxyz := RingOfDerivations( Qxyz, "Dx,Dy,Dz" );
Q[x,y,z]<Dx,Dy,Dz>
gap> Display( Dxyz );
<An external ring residing in the CAS Singular>
gap> Exyz := ExteriorRing( Qxyz, "e,f,g" );
Q{e,f,g}
gap> Display( Exyz );
<An external ring residing in the CAS Singular>
gap> Dsxyz := RingOfDerivations( Qsxyz, "Dx,Dy,Dz" );
Q(s)[x,y,z]<Dx,Dy,Dz>
gap> Display( Dsxyz );
<An external ring residing in the CAS Singular>
gap> Esxyz := ExteriorRing( Qsxyz, "e,f,g" );
Q(s){e,f,g}
gap> Display( Esxyz );
<An external ring residing in the CAS Singular>
gap> Dixyz := RingOfDerivations( Qixyz, "Dx,Dy,Dz" );
(Q[i]/(i^2+1))[x,y,z]<Dx,Dy,Dz>
gap> Display( Dixyz );
<An external ring residing in the CAS Singular>
gap> Eixyz := ExteriorRing( Qixyz, "e,f,g" );
(Q[i]/(i^2+1)){e,f,g}
gap> Display( Eixyz );
<An external ring residing in the CAS Singular>
gap> qring := HomalgQRingInSingular( Qxyz, "x*y" );
Q[x,y,z]/( x*y )
gap> Display( qring );
<An external ring residing in the CAS Singular>
gap> "z + x*y" / qring = "z" / qring;
true
#@fi

1.1-3 MAGMA
#@if IsBound( TryLaunchCAS_IO_ForHomalg( HOMALG_IO_MAGMA ).stdout )
gap> zz := HomalgRingOfIntegersInMAGMA( );
Z
gap> Display( zz );
<An external ring residing in the CAS MAGMA>
gap> F2 := HomalgRingOfIntegersInMAGMA( 2, zz );
GF(2)
gap> Display( F2 );
<An external ring residing in the CAS MAGMA>
#@fi

F2 := HomalgRingOfIntegersInMAGMA( 2 ) would launch another MAGMA.

#@if IsBound( TryLaunchCAS_IO_ForHomalg( HOMALG_IO_MAGMA ).stdout )
gap> Z_4 := HomalgRingOfIntegersInMAGMA( zz ) / 4;
Z/( 4 )
gap> Display( Z_4 );
<A residue class ring>
gap> Q := HomalgFieldOfRationalsInMAGMA( zz );
Q
gap> Display( Q );
<An external ring residing in the CAS MAGMA>
gap> F2xyz := F2 * "x,y,z";
GF(2)[x,y,z]
gap> Display( F2xyz );
<An external ring residing in the CAS MAGMA>
gap> Qxyz := Q * "x,y,z";
Q[x,y,z]
gap> Display( Qxyz );
<An external ring residing in the CAS MAGMA>
gap> Exyz := ExteriorRing( Qxyz, "e,f,g" );
Q{e,f,g}
gap> Display( Exyz );
<An external ring residing in the CAS MAGMA>
#@fi

1.1-4 Macaulay2
#@if IsBound( TryLaunchCAS_IO_ForHomalg( HOMALG_IO_Macaulay2 ).stdout )
gap> zz := HomalgRingOfIntegersInMacaulay2( );
Z
gap> Display( zz );
<An external ring residing in the CAS Macaulay2>
gap> F2 := HomalgRingOfIntegersInMacaulay2( 2, zz );
GF(2)
gap> Display( F2 );
<An external ring residing in the CAS Macaulay2>
#@fi

F2 := HomalgRingOfIntegersInMacaulay2( 2 ) would launch another Macaulay2.

#@if IsBound( TryLaunchCAS_IO_ForHomalg( HOMALG_IO_Macaulay2 ).stdout )
gap> Z_4 := HomalgRingOfIntegersInMacaulay2( zz ) / 4;
Z/( 4 )
gap> Display( Z_4 );
<A residue class ring>
gap> Q := HomalgFieldOfRationalsInMacaulay2( zz );
Q
gap> Display( Q );
<An external ring residing in the CAS Macaulay2>
gap> F2xyz := F2 * "x,y,z";
GF(2)[x,y,z]
gap> Display( F2xyz );
<An external ring residing in the CAS Macaulay2>
gap> Qxyz := Q * "x,y,z";
Q[x,y,z]
gap> Display( Qxyz );
<An external ring residing in the CAS Macaulay2>
gap> Dxyz := RingOfDerivations( Qxyz, "Dx,Dy,Dz" );
Q[x,y,z]<Dx,Dy,Dz>
gap> Display( Dxyz );
<An external ring residing in the CAS Macaulay2>
gap> Exyz := ExteriorRing( Qxyz, "e,f,g" );
Q{e,f,g}
gap> Display( Exyz );
<An external ring residing in the CAS Macaulay2>
#@fi

1.1-5 Sage
#@if IsBound( TryLaunchCAS_IO_ForHomalg( HOMALG_IO_Sage ).stdout )
gap> zz := HomalgRingOfIntegersInSage( );
Z
gap> Display( zz );
<An external ring residing in the CAS Sage>
gap> F2 := HomalgRingOfIntegersInSage( 2, zz );
GF(2)
gap> Display( F2 );
<An external ring residing in the CAS Sage>
#@fi

F2 := HomalgRingOfIntegersInSage( 2 ) would launch another Sage.

#@if IsBound( TryLaunchCAS_IO_ForHomalg( HOMALG_IO_Sage ).stdout )
gap> Z_4 := HomalgRingOfIntegersInSage( zz ) / 4;
Z/( 4 )
gap> Display( Z_4 );
<A residue class ring>
gap> Q := HomalgFieldOfRationalsInSage( zz );
Q
gap> Display( Q );
<An external ring residing in the CAS Sage>
gap> F2x := F2 * "x";
GF(2)[x]
gap> Display( F2x );
<An external ring residing in the CAS Sage>
gap> Qx := Q * "x";
Q[x]
gap> Display( Qx );
<An external ring residing in the CAS Sage>
#@fi

1.1-6 Maple
#@if IsBound( TryLaunchCAS_IO_ForHomalg( HOMALG_IO_Maple ).stdout )
gap> zz := HomalgRingOfIntegersInMaple( );
Z
gap> Display( zz );
<An external ring residing in the CAS Maple>
gap> F2 := HomalgRingOfIntegersInMaple( 2, zz );
GF(2)
gap> Display( F2 );
<An external ring residing in the CAS Maple>
#@fi

F2 := HomalgRingOfIntegersInMaple( 2 ) would launch another Maple.

#@if IsBound( TryLaunchCAS_IO_ForHomalg( HOMALG_IO_Maple ).stdout )
gap> Z4 := HomalgRingOfIntegersInMaple( 4, zz );
Z/4Z
gap> Display( Z4 );
<An external ring residing in the CAS Maple>
gap> Z_4 := HomalgRingOfIntegersInMaple( zz ) / 4;
Z/( 4 )
gap> Display( Z_4 );
<A residue class ring>
gap> Q := HomalgFieldOfRationalsInMaple( zz );
Q
gap> Display( Q );
<An external ring residing in the CAS Maple>
gap> F2xyz := F2 * "x,y,z";
GF(2)[x,y,z]
gap> Display( F2xyz );
<An external ring residing in the CAS Maple>
gap> Qxyz := Q * "x,y,z";
Q[x,y,z]
gap> Display( Qxyz );
<An external ring residing in the CAS Maple>
gap> Dxyz := RingOfDerivations( Qxyz, "Dx,Dy,Dz" );
Q[x,y,z]<Dx,Dy,Dz>
gap> Display( Dxyz );
<An external ring residing in the CAS Maple>
gap> Exyz := ExteriorRing( Qxyz, "e,f,g" );
Q{e,f,g}
gap> Display( Exyz );
<An external ring residing in the CAS Maple>
#@fi
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 Bib Ind

generated by GAPDoc2HTML