# (no subject) Classic List Threaded 5 messages Open this post in threaded view
|

## (no subject)

 Consider the following polynomial G := (y-(a*u+b*v))*(y-(a*v+b*u)) It is symmetric both in (a,b) and (u,v). I would like to espress it as a polynomial in Z[s,t,u,v,y] where s=a+b and t=ab are the  symmetric elementary funcitions on a and b Is it possible in axiom? In other words, I am looking for a command which having G as input, returns y^2 - s*(u+v)*y + (s^2-2*t)u*v + t*(u^2+v^2) Thanks Fabio _______________________________________________ Axiom-math mailing list [hidden email] https://lists.nongnu.org/mailman/listinfo/axiom-math
Open this post in threaded view
|

## Re: (no subject)

 Thanks, Ralf, for the clarification. So the difference between Axiom and Maple and Mathematica (2Ms) is that the source of a parameter is only available at compile time (or interpreter time) for Axiom, while for 2Ms, it is available at run time. Axiom checks the type (signature) of the parameter and makes sure it is categorically correct, while 2Ms do not, and leave it to the calling function to perform the check. Potentially, this more powerful setting in 2Ms allows also modification of the behavior of the parameter (on a local copy of its source) at run time, or let its behavior control the flow of the calling function. This is available at the cost of code-time and run-time  verification---of course a "dirty" coder don't have to check as long as it is assumed that the parameters are passed correctly. Sometimes (well, long ago) I wished that the signature (not the source) of a (function) parameter is available to the calling function. Then it would not be necessary to include as additional parameters the domains involved in the signature of this (function) parameter. Thus GB==GroebnerBasis(I:Ideal(R:PolynomialRingCategory)) would be enough to start a packge GB, and the details of R and I can be "fished out" by built-in functions like CoefficientDomain(R), Variables(R), Generators(I), etc. Built-in functions of this nature can in principle be provided in Axiom with a table look-up, as the compiler and interpreter already must do (the identifiers I gave are just arbitrarily made up). This does not go far enough like expression trees, but I don't think the full source (based on FullForm in Mathematica) is useful except in very special situations and in those cases, it may be more efficient at code time to just look up the source rather than to test for all possible ways the (function) parameter, like the function defining the coefficients of a power series, can be coded and proceed according to what is found. Moreover, while one may be able to in principle recursively go down the expression tree by iterative calls to FullForm, and modify and compute according to what is found, that is hardly the normal way to write programs. For Fabio's whether it is possible in Axiom to turn a symmetric expression in variables (a,b) into an equivalent expression using the corresponding symmetric elementary functions in (a,b). The answer is yes, for such an algorithm can be implemented without explicitly knowing the expression tree of the given polynomial by using, for example, a double induction on number of variables and on degree (see the proof of the fundamental theorem of symmetric polynomials: http://en.wikipedia.org/wiki/Elementary_symmetric_polynomial#The_fundamental_theorem_of_symmetric_polynomials  ).  The presence of (u,v) in Fabio's example has nothing to do with rewriting (a,b) (they behave as coefficients, like y), unless because the example is also symmetric in (u,v), they too can be rewritten in terms of their elementary symmetric functions. Since the representation in terms of elementary symmetric polynomials is unique for any symmetric polynomial, the answer is independent of the algorithm chosen. In short, Fabio's problem need not, and most likely should not, be implemented by examining the expression tree of the input symmetric polynomial. William On Thu, 23 Oct 2014 13:45:19 +0200 (CEST)   "Fabio S." <[hidden email]> wrote: > > Consider the following polynomial > > G := (y-(a*u+b*v))*(y-(a*v+b*u)) > > It is symmetric both in (a,b) and (u,v). I would like to >espress it as a polynomial in Z[s,t,u,v,y] > where s=a+b and t=ab are the  symmetric elementary >funcitions on a and b > > Is it possible in axiom? > > In other words, I am looking for a command which having >G as input, returns > > y^2 - s*(u+v)*y + (s^2-2*t)u*v + t*(u^2+v^2) > > Thanks > >Fabio > > _______________________________________________ > Axiom-math mailing list > [hidden email] > https://lists.nongnu.org/mailman/listinfo/axiom-mathWilliam Sit, Professor Emeritus Mathematics, City College of New York Office: R6/291D Tel: 212-650-5179 Home Page: http://scisun.sci.ccny.cuny.edu/~wyscc/_______________________________________________ Axiom-math mailing list [hidden email] https://lists.nongnu.org/mailman/listinfo/axiom-math
Open this post in threaded view
|

## Symmetric Functions

 In reply to this post by Fabio S.-2 On 10/23/2014 01:45 PM, Fabio S. wrote: > > Consider the following polynomial > > G := (y-(a*u+b*v))*(y-(a*v+b*u)) > > It is symmetric both in (a,b) and (u,v). I would like to espress it as a > polynomial in Z[s,t,u,v,y] > where s=a+b and t=ab are the  symmetric elementary funcitions on a and b > > Is it possible in axiom? > > In other words, I am looking for a command which having G as input, returns > > y^2 - s*(u+v)*y + (s^2-2*t)u*v + t*(u^2+v^2) According to http://en.wikipedia.org/wiki/Symmetric_polynomial#Elementary_symmetric_polynomialsthe expression (u^2+v^2) doesn't look like an *elementary* symmetric polynomial in u and v. Ralf (1) -> Z==>Integer; Q==>Fraction Z                                                                    Type: Void (2) -> M==>DistributedMultivariatePolynomial([y], Q)                                                                    Type: Void (3) -> F==>Fraction M                                                                    Type: Void (4) -> P==>DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q], F)                                                                    Type: Void (5) -> g: P := (y-(a*u+b*v))*(y-(a*v+b*u))          2           2        2                    2                       2    (5)  u a b + u v a  + u v b  - y u a - y u b + v a b - y v a - y v b + y Type: DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q],Fraction(DistributedMultivariatePolynomial([y],Fraction(Integer)))) (6) -> s1: P := a+b-s; s2: P := a*b-t; s3:P := u+v-p;s4:P:=u*v-q; Type: DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q],Fraction(DistributedMultivariatePolynomial([y],Fraction(Integer)))) (7) -> G := groebner [g,s1,s2,s3,s4]    (7)                 2                        2    [u + v - p, v  - v p + q, a + b - s, b  - b s + t,      2               2           2     s q - y s p + t p  - 4t q + y ] Type: List(DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q],Fraction(DistributedMultivariatePolynomial([y],Fraction(Integer))))) (8) -> last(G)          2               2           2    (8)  s q - y s p + t p  - 4t q + y Type: DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q],Fraction(DistributedMultivariatePolynomial([y],Fraction(Integer)))) Also check out: (10) -> symFunc([a,b])\$SymmetricFunctions(Polynomial(Integer))    (10)  [1,b + a,a b]                                             Type: Vector(Polynomial(Integer)) _______________________________________________ Axiom-math mailing list [hidden email] https://lists.nongnu.org/mailman/listinfo/axiom-math
 On 10/23/2014 10:08 AM, Ralf Hemmecke wrote: ```On 10/23/2014 01:45 PM, Fabio S. wrote: ``` ```Consider the following polynomial G := (y-(a*u+b*v))*(y-(a*v+b*u)) It is symmetric both in (a,b) and (u,v). I would like to espress it as a polynomial in Z[s,t,u,v,y] where s=a+b and t=ab are the symmetric elementary funcitions on a and b Is it possible in axiom? In other words, I am looking for a command which having G as input, returns y^2 - s*(u+v)*y + (s^2-2*t)u*v + t*(u^2+v^2) ``` ```According to http://en.wikipedia.org/wiki/Symmetric_polynomial#Elementary_symmetric_polynomials the expression (u^2+v^2) doesn't look like an *elementary* symmetric polynomial in u and v. Ralf (1) -> Z==>Integer; Q==>Fraction Z Type: Void (2) -> M==>DistributedMultivariatePolynomial([y], Q) Type: Void (3) -> F==>Fraction M Type: Void (4) -> P==>DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q], F) Type: Void (5) -> g: P := (y-(a*u+b*v))*(y-(a*v+b*u)) 2 2 2 2 2 (5) u a b + u v a + u v b - y u a - y u b + v a b - y v a - y v b + y Type: DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q],Fraction(DistributedMultivariatePolynomial([y],Fraction(Integer)))) (6) -> s1: P := a+b-s; s2: P := a*b-t; s3:P := u+v-p;s4:P:=u*v-q; Type: DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q],Fraction(DistributedMultivariatePolynomial([y],Fraction(Integer)))) (7) -> G := groebner [g,s1,s2,s3,s4] (7) 2 2 [u + v - p, v - v p + q, a + b - s, b - b s + t, 2 2 2 s q - y s p + t p - 4t q + y ] Type: List(DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q],Fraction(DistributedMultivariatePolynomial([y],Fraction(Integer))))) (8) -> last(G) 2 2 2 (8) s q - y s p + t p - 4t q + y Type: DistributedMultivariatePolynomial([u,v,a,b,s,t,p,q],Fraction(DistributedMultivariatePolynomial([y],Fraction(Integer)))) Also check out: (10) -> symFunc([a,b])\$SymmetricFunctions(Polynomial(Integer)) (10) [1,b + a,a b] Type: Vector(Polynomial(Integer)) _______________________________________________ Axiom-math mailing list [hidden email] https://lists.nongnu.org/mailman/listinfo/axiom-math ``` Good show!!!!! The above summarizes and succinctly presents the "masters-thesis" http://mattpap.github.io/masters-thesis/html/src/groebner.html subsection:  Algebraic relations in invariant theory It has a more itemized detailed approach but once the ideas are present the above (Ralf) lays it out plainly; which, IMHO, the mattpap fails to do. Ray _______________________________________________ Axiom-math mailing list [hidden email] https://lists.nongnu.org/mailman/listinfo/axiom-math