up previous next
IsInjective

check if a RINGHOM is injective

Syntax
IsInjective(phi: RINGHOM): BOOL

Description
This function checks if a RINGHOM is injective.

Example
/**/  QQxyz ::= QQ[x,y,z];
/**/  QQab  ::= QQ[a,b];

/**/  Use QQab;
/**/  phi := PolyAlgebraHom(QQxyz, QQab, [a+1, a*b+3, b^2]);
/**/  IsInjective(phi);
false
/**/  ker(phi);
ideal(-x^2*z +y^2 +2*x*z -6*y -z +9)
/**/  IsSurjective(phi);
false

/**/  Use QQab;
/**/  PreImage(phi, b);
record[IsInImage := false, ker := ideal(-x^2*z +y^2 +2*x*z -6*y -z +9)]

/**/  indent(PreImage(phi, a^2));
record[
  IsInImage := true,
  OnePreImage := x^2 -2*x +1,
  ker := ideal(-x^2*z +y^2 +2*x*z -6*y -z +9)
]
/**/  phi(RingElem(QQxyz, "x^2 - 2*x + 1"));
a^2
/**/  phi(RingElem(QQxyz, "x^2 - 2*x + 1 + (-x^2*z +y^2 +2*x*z -6*y -z +9)"));
a^2

See Also