|
D.4.6.2 HomJJ
Procedure from library normal.lib (see normal_lib).
- Usage:
HomJJ (Li); Li = list: ideal SBid, ideal id, ideal J, poly p
- Assume:
R = P/id, P = basering, a polynomial ring, id an ideal of P,
SBid = standard basis of id,
J = ideal of P containing the polynomial p,
p = nonzero divisor of R
- Compute:
Endomorphism ring End_R(J)=Hom_R(J,J) with its ring structure as
affine ring, together with the canonical map R –> Hom_R(J,J),
where R is the quotient ring of P modulo the standard basis SBid.
- Return:
a list l of two objects
| l[1] : a polynomial ring, containing two ideals, ’endid’ and ’endphi’
such that l[1]/endid = Hom_R(J,J) and
endphi describes the canonical map R -> Hom_R(J,J)
l[2] : an integer which is 1 if phi is an isomorphism, 0 if not
l[3] : an integer, the contribution to delta
|
- Note:
printlevel >=1: display comments (default: printlevel=0)
Example:
| LIB "normal.lib";
ring r = 0,(x,y),wp(2,3);
ideal id = y^2-x^3;
ideal J = x,y;
poly p = x;
list Li = std(id),id,J,p;
list L = HomJJ(Li);
def end = L[1]; // defines ring L[1], containing ideals endid, endphi
setring end; // makes end the basering
end;
→ // characteristic : 0
→ // number of vars : 1
→ // block 1 : ordering dp
→ // : names T(1)
→ // block 2 : ordering C
endid; // end/endid is isomorphic to End(r/id) as ring
→ endid[1]=0
map psi = r,endphi;// defines the canonical map r/id -> End(r/id)
psi;
→ psi[1]=T(1)^2
→ psi[2]=T(1)^3
|
|