#### D.4.2.8 is_bijective

Procedure from library `algebra.lib` (see algebra_lib).

Usage:
  is_bijective(phi,pr); phi map to basering, pr preimage ring

Return:
  an integer, 1 if phi is bijective, 0 if not

Note:
  The algorithm checks first injectivity and then surjectivity. To interprete this for local/mixed orderings, or for quotient rings type help is_surjective; and help is_injective;

Display:
  A comment if printlevel >= voice-1 (default)

Example:

    LIB "algebra.lib";
    int p = printlevel;  printlevel = 1;
    ring R = 0,(x,y,z),dp;
    ideal i = x, y, x2-y3;
    map phi = R,i;                      // a map from R to itself, z->x2-y3
    is_bijective(phi,R);
    ==> // map not injective
    ==> 0
    qring Q = std(z-x2+y3);
    is_bijective(ideal(x,y,x2-y3),Q);
    ==> 1
    ring S = 0,(a,b,c,d),dp;
    map psi = R,ideal(a,a+b,c-a2+b3,0); // a map from R to S,
    is_bijective(psi,R);                // x->a, y->a+b, z->c-a2+b3
    ==> // map injective, but not surjective
    ==> 0
    qring T = std(d,c-a2+b3);
    ==> // ** _ is no standard basis
    map chi = Q,a,b,a2-b3;              // amap between two quotient rings
    is_bijective(chi,Q);
    ==> 1
    printlevel = p;

User manual for Singular version 4-0-3, 2016, generated by texi2html.