Project

General

Profile

Feature #738

Extend homomorphism to polynomial ring

Added by John Abbott almost 9 years ago. Updated almost 9 years ago.

Status:
In Progress
Priority:
Normal
Assignee:
-
Category:
New Function
Target version:
Start date:
25 Jun 2015
Due date:
% Done:

10%

Estimated time:
3.00 h
Spent time:

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

Related to CoCoALib - Feature #992: Poly ring homomorphism to change orderingNew2016-12-13

Related to CoCoA-5 - Feature #7: Automatic mapping between (some) ringsResolved2011-10-20

History

#1 Updated by John Abbott almost 9 years ago

What precisely are the semantics? When can the function be called?
Various cases to consider:
  1. given phi: R --> R extend to psi: R[x,y,z] --> R[x,y,z]
  2. given phi: R --> S extend to psi: R[x,y,z] --> S[x,y,z]
  3. given phi: R --> R extend to psi: R[x,y,z] --> R[a,b,c]
  4. given phi: R --> S extend to psi: 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

Also available in: Atom PDF