|
D.4.2.6 is_injective
Procedure from library algebra.lib (see algebra_lib).
- Usage:
- is_injective(phi,pr[,c,s]); phi map, pr preimage ring, c int, s string
- Return:
| - 1 (type int) if phi is injective, 0 if not (if s is not given).
- If s is given, return a list l of size 2, l[1] int, l[2] ring:
l[1] is 1 if phi is injective, 0 if not
l[2] is a ring with variables x(1),...,x(n),y(1),...,y(m) if the
basering has n variables and the map m components, it contains the
ideal 'ker', depending only on the y(i), the kernel of the given map
|
- Note:
- Three differnt algorithms are used depending on c = 1,2,3.
If c is not given or c=0, a heuristically best method is chosen.
The basering may be a quotient ring. However, if the preimage ring is
a quotient ring, say pr = P/I, consider phi as a map from P and then
the algorithm returns 1 if the kernel of phi is 0 mod I.
To access to the ring l[2] and see ker you must give the ring a name,
e.g. def S=l[2]; setring S; ker;
- Display:
- The above comment is displayed if printlevel >= 0 (default).
Example:
|