Feature #738
Extend homomorphism to polynomial ring
Description
It might be nice to have a simple/convenient/compact way of extending "coefficient homomorphisms" to polynomial rings.
Currently one has to create a polyringhom, and this requires saying how the indets map (which decreases readability).
Related issues
History
#1 Updated by John Abbott almost 9 years ago
Various cases to consider:
- given
phi: R --> R
extend topsi: R[x,y,z] --> R[x,y,z]
- given
phi: R --> S
extend topsi: R[x,y,z] --> S[x,y,z]
- given
phi: R --> R
extend topsi: R[x,y,z] --> R[a,b,c]
- given
phi: R --> S
extend topsi: R[x,y,z] --> S[a,b,c]
We could also consider a codomain with more indets than the domain, but that is probably better handled explicitly by PolyRingHom
.
#2 Updated by Anna Maria Bigatti almost 9 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 10
- Estimated time set to 3.00 h
I don't like automatic choices: look at these examples
R[x_1, x_2] --> R[x_0, x_1, x_2] R[x_1, x_2] --> R[x_0, x_1] R[a,b] --> R[x,y,a,b]
Obviously the meaning depends on who is "thinking" this maps:
1 - if a user actually writes it then it probably means that he wants to preserve names
2 - if it is part of a program (creating a new ring) then it probably means i-th into i-th
For the "user" option we could make two functions PreserveNamesRingHom
/PreserveNamesAlgebraHom
.
#3 Updated by John Abbott almost 9 years ago
Here is the original situation where the problem arose. I Have some polynomials with complex coeffs (in QQ[i]
) and I want to define "complex conjugation" on QQ[i]
and extend it to QQ[i][x]
. Currently it takes several steps to achieve this.
use QQI ::= QQ[I]; minpoly := ideal(I^2+1); conj1 := PolyAlgebraHom(QQI,QQI,[-I]); Qi := NewQuotientRing(QQI,minpoly); conj2 := CanonicalHom(QQI,Qi)(conj1); conj3 := InducedHom(Qi,conj2); P ::= Qi[X[1..3]]; use P; conj := PolyRingHom(P,P,conj3,indets(P));
#4 Updated by John Abbott almost 9 years ago
Anna, John and Renzo agree that cases (1) and (2) in comment 1 are OK, and that the others are best handled by constructing explicitly the homomorphism saying precisely where each indet should go.
To be more precise: the automatic mapping of indets is allowed only if they are identical: same number, same names, and same order of appearance.
Anna suggests that we do not require the term ordering to be the same; John notes that if the terms orderings are the same, the implementation could be both simple and quick, whereas allowing a change of ordering seems to be both more complex and slower (e.g. geobuckets). The more general implementation is probably more useful to the user.
#5 Updated by John Abbott over 7 years ago
- Related to Feature #992: Poly ring homomorphism to change ordering added
#6 Updated by John Abbott over 6 years ago
- Related to Feature #7: Automatic mapping between (some) rings added