<Text-field style="Heading 1" layout="Heading 1">Loading the GoodDyson package</Text-field>read "GoodDyson";
<Text-field style="Heading 1" layout="Heading 1">GuessDysonCoeff</Text-field>To have Maple conjecture the coefficient of x^2 * y^(-1) * z^(-1) in the expansion of ((1-y/x)*(1-z/x))^a1*((1-x/y)*(1-z/y))^a2 * ((1-x/z)(1-y/z))^a3, enterGuessDysonCoeff(2,-1,-1);The output represents the rational function multiple of the multinomial coefficient. Thus, in this case the requested coefficient is the output times (a1+a2+a3)!/(a1! * a2! * a3!).
<Text-field style="Heading 1" layout="Heading 1">GetDysonCoeff</Text-field>`GetDysonCoeff` is similar to `GuessDysonCoeff` except that it first checks to see if the requested coefficient has been previously calculated and stored. If so, the earlier result is retrieved; if not, the requested coefficient is calculated.GetDysonCoeff(2,-1,-1);
<Text-field style="Heading 1" layout="Heading 1">WritePaper</Text-field>
<Text-field style="Heading 2" layout="Heading 2">3-var case</Text-field>To have Maple write a paper, including an automatically generated analog of I.J. Good's proof of Dyson's conjecture, enterWritePaper(2,-1,-1);
<Text-field style="Heading 2" layout="Heading 2">2-var case</Text-field>For n=2 variables, the `WritePaper` procedure is considerably more terse, since the requested result follows easily from the binomial theorem.WritePaper(3,-3);
<Text-field style="Heading 2" layout="Heading 2">4 or more vars</Text-field>For n>3 variables, the `WritePaper` procedure will generate much more output than in the n=3 case, because the recursions depend on expressions in n-1 variables, which must also verified. Thus, the requested result is labeled as a theorem, then the procedure recursively calls itself to verify the formulas required for the theorem, and labels all subresults as 'lemma'. Note that the calculation of a 4-variable result takes considerably longer than a 3-variable result.WritePaper(1,1,-1,-1);
<Text-field style="Heading 1" layout="Heading 1">TurboDyson</Text-field>Let b = [b1,b2,b3,...,bn] be an n-dimension vector whose components sum to zero. The vector b is said to be in canonical form if its components are in nondecreasing order. Define the complexity of b to be the sum of its positive components. `TurboDyson(n,C)` exploits symmetries and algebraic relations to find (and store) the coefficients of x1^b1 * x2^b2 * . . . * xn^bn for all vectors b of complexity less than or equal to C. Every time the coefficient corresponding to a new canonical vector is calculated, screen output is generated.TurboDyson(3,4);Notice that if we later require the coefficients corresponding to vectors of complexity at most 5, only the newly calculated results will generate screen output:TurboDyson(3,5);Depending on the speed of your system, it may have taken several minutes to execute the preceeding operation. Now that that work has been accomplished, it need not be repeated. For example if we want to generate a paper stating and proving a theorem about, say, the coefficient of x^(-3) * y^(-2) * z^5 in the three-dimensional Dyson product ((1-y/x)*(1-z/x))^a1 * ((1-x/y)*(1-z/y))^a2 * ((1-x/z)(1-y/z))^a3, the required result is recalled immediately.WritePaper(-3,-2,5);