Singular https://www.singular.uni-kl.de/forum/ |
|
Maps over transcendental field extensions https://www.singular.uni-kl.de/forum/viewtopic.php?f=10&t=1806 |
Page 1 of 1 |
Author: | levandov [ Sun Mar 14, 2010 6:05 pm ] |
Post subject: | Maps over transcendental field extensions |
I work over K(q) with K-linear maps. (1) Is there some procedure, which makes correct analog to subst. I want to apply K(q)-automorphisms (even of order 2), they are of the form q-> (a+bq)/(c+dq) with a,b,c,d in K subject to some relations. At the moment subst says it "ignores denominators"... (2) What I need further is the modification of type map indeed, since I need to do (anti-)morphisms of K and NOT of K(q)-algebras in noncommutative context, say (commutatively) K(q)[x,y] -> K(q)[x,y], q->(a+bq)/(c+dq)=theta(q), x -> theta(x), y-> theta(y). Theta includes twisting on q, that is it's K- but not K(q)-linear. HOWEVER: it is enough to apply this generalized map to a single object (poly/ideal/module/matrix). This will be used e.g. to extend the procedure involution from involut.lib to the case of quantum and quantized algebras. Thanks in advance to any hints, Viktor |
Author: | gorzel [ Sat Mar 20, 2010 10:34 pm ] |
Post subject: | Re: Maps over transcendental field extensions |
Dear Viktor, ad 1) I really had difficulties to see the case where this message appears. Then I found, that subst does not work, if the poly or number in which we want to substitute has denominators in the parameters. So this trivial examples fails: Code: > ring rt = (0,t),x,dp; > subst(2/t,t,t); // ** ignoring denominators of coefficients... 2 but (yes!) I found a solution. See the proc parsubst below. The idea is, first to clear the denominator, then use subst and divide by the substituted denominator again. Some care must be taken for the following cases: i) if the input only consists of a parameter, then cleardenom returns 1. Here I multiply first with a ring variable, (hopefully this will not change the result in the non-commutative case), ii) if f(0)=0, we can not recover the denominator. Therefore, I add a constant. This two operations will be reversed at the end. The example above and substitution as you mention will work. Code: > parsubst(2/t,t,t); 2/(t) > parsubst(2/t,t,(2t+4)/(3t+1)) (3t+1)/(t+2) > // example parsubst > number q = (3t+4)/(2t+3); > parsubst(1/t,t,q); > poly f = t/(t-1)*x2 + 2/t; > parsubst(f,t,q); (3t+4)/(t+1)*x2+(4t+6)/(3t+4) Code: proc parsubst(poly f,number t,number q) " USAGE: parsubst(f,t,q); f poly or number, t number, q number RETURN: poly, resp. number as the input type ASSUME: t is a parameter of the basering EXAMPLE: example parsubst; shows an example " { int is_constant = deg(f)==0; if (is_constant) { f = f*var(1); } // f was a number int zero_const_term = jet(f,0)==0; if (zero_const_term) { f = f + 1;} //otherwise denom is lost poly g = cleardenom(f); number commondenom = leadcoef(g)/leadcoef(f); f = subst(g,t,q)/subst(commondenom,t,q); if (zero_const_term) { f = f - 1;} if(is_constant) { f = f/var(1);} return(f); } example { "EXAMPLE:"; echo = 2; ring r=(0,t),x,dp; number q = (3t+4)/(2t+3); parsubst(1/t,t,q); poly f = t/(t-1)*x2 + 2/t; parsubst(f,t,q); } ad 2) If I understand correctly, then theta(x) would form an rational expression built on variables? Best regards, Christian |
Author: | gorzel [ Mon Mar 22, 2010 3:38 pm ] |
Post subject: | Re: Maps over transcendental field extensions |
Could the following proc fit your pupose? Code: proc quantummap(poly f, number q) { map qphi = basering,q*var(2),q*var(1), f = qphi(f); f = parsubst(f,q); return(f); } Does it define a map your looking for? Regards, Christian |
Page 1 of 1 | All times are UTC + 1 hour [ DST ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |