//SINGULAR Example 1.3.3 ring S = 0,(a,b,c),lp; ring R = 0,(x,y,z),dp; ideal i = x, y, x2-y3; map phi = S,i; //a map from S to R, a->x, b->y, c->x2-y3 LIB "algebra.lib"; //load algebra.lib is_injective(phi,S); ideal j = x, x+y, z-x2+y3; map psi = S,j; //another map from S to R is_injective(psi,S); alg_kernel(phi,S); alg_kernel(psi,S); ideal Z; //the zero ideal in R setring S; preimage(R,phi,Z); //computes kernel of phi in S setring R; is_surjective(psi,S); is_bijective(psi,S); //faster than is_injective, //is_surjective