/**/ 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(ReadExpr(QQxyz, "x^2 - 2*x + 1"));
a^2
/**/ phi(ReadExpr(QQxyz, "x^2 - 2*x + 1 + (-x^2*z +y^2 +2*x*z -6*y -z +9)"));
a^2
|