diff --git a/changelog b/changelog index 303f501..e54946a 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20090607 tpd src/axiom-website/patches.html 20090607.05.tpd.patch +20090607 tpd src/input/tpieazas001.input (rename) complete page 001 20090607 tpd src/axiom-website/patches.html 20090607.04.tpd.patch 20090607 tpd books/bookvol10.4 MAPPKG3 +-> conversion 20090607 tpd src/axiom-website/patches.html 20090607.03.tpd.patch diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 12196a5..0091c21 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -1485,5 +1485,7 @@ bookvol10.4 MAPPGK2 +-> conversion
tpieazas.input CATS tests of algebraic identites
20090607.04.tpd.patch bookvol10.4 MAPPGK3 +-> conversion
+20090607.05.tpd.patch +tpieazas001.input complete page 001
diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet index f92241d..661fe9f 100644 --- a/src/input/Makefile.pamphlet +++ b/src/input/Makefile.pamphlet @@ -384,7 +384,7 @@ REGRES= algaggr.regress algbrbf.regress algfacob.regress alist.regress \ symbol.regress t111293.regress table.regress tancot.regress \ tanhcoth.regress tanatan.regress tbagg.regress test.regress \ textfile.regress torus.regress \ - tpiezas.regress \ + tpiezas001.regress \ triglim.regress tsetcatvermeer.regress tutchap1.regress \ typetower.regress void.regress uniseg.regress \ unittest1.regress unittest2.regress unittest3.regress unittest4.regress @@ -693,7 +693,7 @@ FILES= ${OUT}/algaggr.input ${OUT}/algbrbf.input ${OUT}/algfacob.input \ ${OUT}/table.input ${OUT}/tancot.input ${OUT}/tanhcoth.input \ ${OUT}/tanatan.input ${OUT}/tbagg.input ${OUT}/test.input \ ${OUT}/tetra.input ${OUT}/textfile.input ${OUT}/tknot.input \ - ${OUT}/tpiezas.input \ + ${OUT}/tpiezas001.input \ ${OUT}/tree.input \ ${OUT}/triglim.input ${OUT}/tschirn.input ${OUT}/tsetcatbutcher.input \ ${OUT}/tsetcatchemical.input ${OUT}/tsetcatvermeer.input \ @@ -1052,7 +1052,7 @@ DOCFILES= \ ${DOC}/test.input.dvi ${DOC}/tetra.input.dvi \ ${DOC}/textfile.input.dvi ${DOC}/tknot.input.dvi \ ${DOC}/torus.input.dvi \ - ${DOC}/tpiezas.input.dvi \ + ${DOC}/tpiezas001.input.dvi \ ${DOC}/tree.input.dvi \ ${DOC}/triglim.input.dvi ${DOC}/tschirn.input.dvi \ ${DOC}/tsetcatbutcher.input.dvi \ diff --git a/src/input/tpiezas.input.pamphlet b/src/input/tpiezas.input.pamphlet deleted file mode 100644 index f60ad7e..0000000 --- a/src/input/tpiezas.input.pamphlet +++ /dev/null @@ -1,829 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/input tpiezas.input} -\author{Timothy Daly} -\maketitle -\begin{abstract} -This is from ``A Collection of Algebraic Identities'' by T. Piezas III\cite{1} -\end{abstract} -\eject -\tableofcontents -\eject -\section{Part 1. Assorted Identities} -\begin{chunk}{*} -)set break resume -)spool tpiezas.output -)set message test on -)set message auto off -)clear all -\end{chunk} - -\subsection{E. Maillet} -\[(a+b)^3+(a+c)^3+(a+d)^3+(a-b)^3+(a-c)^3+(a-d)^3 = 6a(a^2+b^2+c^2+d^2)\] -\begin{chunk}{*} ---S 1 of 63 -t1a:=(a+b)^3 + (a+c)^3 + (a+d)^3 + (a-b)^3 + (a-c)^3 + (a-d)^3 ---R ---R ---R 2 2 2 3 ---R (1) 6a d + 6a c + 6a b + 6a ---R Type: Polynomial Integer ---E 1 - ---S 2 of 63 -t1b:=6*a*(a^2+b^2+c^2+d^2) ---R ---R ---R 2 2 2 3 ---R (2) 6a d + 6a c + 6a b + 6a ---R Type: Polynomial Integer ---E 2 - ---S 3 of 63 -t1a-t1b ---R ---R ---R (3) 0 ---R Type: Polynomial Integer ---E 3 -\end{chunk} - -\subsection{E. Lucas-Liouville} -\[\begin{array}{ll} -(a+b)^k+(a+c)^k+(a+d)^k+(b+c)^k+(b+d)^k+(c+d)^k+\\ -(a-b)^k+(a-c)^k+(a-d)^k+(b-c)^k+(b-d)^k+(c-d)^k -\end{array}\] -\[=6(a^2+b^2+c^2+d^2)^{k/2}\quad {\rm\ for\ }k=2,4\] -\begin{chunk}{*} ---S 4 of 63 -t2a(k)==(a+b)^k + (a+c)^k + (a+d)^k + (b+c)^k + (b+d)^k + (c+d)^k +_ - (a-b)^k + (a-c)^k + (a-d)^k + (b-c)^k + (b-d)^k + (c-d)^k ---R ---R Type: Void ---E 4 - ---S 5 of 63 -t2b(k)==6*(a^2+b^2+c^2+d^2)^(k/2) ---R ---R Type: Void ---E 5 - ---S 6 of 63 -t2a(k) ---R ---R Compiling function t2a with type Variable k -> Expression Integer ---R ---R (6) ---R k k k k k k ---R (d + c) + (d + b) + (d + a) + (c + b) + (c + a) + (b + a) ---R + ---R k k k k k k ---R (- b + a) + (- c + b) + (- c + a) + (- d + c) + (- d + b) + (- d + a) ---R Type: Expression Integer ---E 6 - ---S 7 of 63 -t2b(k) ---R ---R Compiling function t2b with type Variable k -> Expression Integer ---R ---R k ---R - ---R 2 2 2 2 2 ---R (7) 6(d + c + b + a ) ---R Type: Expression Integer ---E 7 - ---S 8 of 63 -t2a(2) ---R ---R Compiling function t2a with type PositiveInteger -> Polynomial ---R Integer ---R ---R 2 2 2 2 ---R (8) 6d + 6c + 6b + 6a ---R Type: Polynomial Integer ---E 8 - ---S 9 of 63 -t2b(2) ---R ---R Compiling function t2b with type PositiveInteger -> Expression ---R Integer ---R ---R 2 2 2 2 ---R (9) 6d + 6c + 6b + 6a ---R Type: Expression Integer ---E 9 - ---S 10 of 63 -t2a(2)-t2b(2) ---R ---R ---R (10) 0 ---R Type: Expression Integer ---E 10 - ---S 11 of 63 -t2a(4) ---R ---R ---R (11) ---R 4 2 2 2 2 4 2 2 2 4 2 2 4 ---R 6d + (12c + 12b + 12a )d + 6c + (12b + 12a )c + 6b + 12a b + 6a ---R Type: Polynomial Integer ---E 11 - ---S 12 of 63 -t2b(4) ---R ---R ---R (12) ---R 4 2 2 2 2 4 2 2 2 4 2 2 4 ---R 6d + (12c + 12b + 12a )d + 6c + (12b + 12a )c + 6b + 12a b + 6a ---R Type: Expression Integer ---E 12 - ---S 13 of 63 -t2a(4)-t2b(4) ---R ---R ---R (13) 0 ---R Type: Expression Integer ---E 13 -\end{chunk} - -\subsection{Boutin's Identity} -\[S\pm(x_1\pm x_2\pm \ldots \pm x_k)^k = k!\: 2^{k-1} x_1 x_2 \ldots x_k\] -where the exterior sign is the product of the interior signs so -the term is negative if there is an odd number of negative interior signs, -otherwise positive -\begin{chunk}{*} - ---S 14 of 63 -t3a1 := (a+b)^2 - (a-b)^2 ---R ---R ---R (14) 4a b ---R Type: Polynomial Integer ---E 14 - ---S 15 of 63 -t3b1 := 4*a*b ---R ---R ---R (15) 4a b ---R Type: Polynomial Integer ---E 15 - ---S 16 of 63 -t3a1-t3b1 ---R ---R ---R (16) 0 ---R Type: Polynomial Integer ---E 16 - ---S 17 of 63 -t3a2 := (a+b+c)^3 - (a-b+c)^3 - (a+b-c)^3 + (a-b-c)^3 ---R ---R ---R (17) 24a b c ---R Type: Polynomial Integer ---E 17 - ---S 18 of 63 -t3b2 := 24*a*b*c ---R ---R ---R (18) 24a b c ---R Type: Polynomial Integer ---E 18 - ---S 19 of 63 -t3a2-t3b2 ---R ---R ---R (19) 0 ---R Type: Polynomial Integer ---E 19 - ---S 20 of 63 -t3a3 := (a+b+c+d)^4 - (a-b+c+d)^4 - (a+b-c+d)^4 - (a+b+c-d)^4 - + (a-b-c+d)^4 + (a-b+c-d)^4 + (a+b-c-d)^4 - (a-b-c-d)^4 ---R ---R ---R (20) 192a b c d ---R Type: Polynomial Integer ---E 20 - ---S 21 of 63 -t3b3 := 192*a*b*c*d ---R ---R ---R (21) 192a b c d ---R Type: Polynomial Integer ---E 21 - ---S 22 of 63 -t3a3-t3b3 ---R ---R ---R (22) 0 ---R Type: Polynomial Integer ---E 22 - -\end{chunk} -We can create the general case using some functions. - -The ``bitlist'' function creates a list of the sign changes needed -to form each term. If a term is 4 variables long we need all possible -combinations of 3 signs. In order to generate this we create a list -of all possible bit combinations of the numbers from 0 to $2^{n-1}-1$, -which for the case of 4 would be from 0 to 7: -\begin{verbatim} - [[0,0,0],[0,0,1],[0,1,0],[0,1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]] -\end{verbatim} -We do this using an outer loop to generate the correct number of lists -and an inner loop to create each list. -\begin{chunk}{*} ---S 23 of 63 -bitlist(size:Integer):List List INT == - result:List List INT:=[] - size <= 1 => result - bound:PI:=size-1 - bitlength:INT:=2^bound - for i in (bitlength-1)::PI..0 by -1 repeat - t1:=[1::INT for k in 1..bound] - for j in 0..(#t1-1) repeat - if not bit?(i,j) then t1(bound-j):=0 - result:=cons(t1,result) - result ---R ---R Function declaration bitlist : Integer -> List List Integer has been ---R added to workspace. ---R Type: Void ---E 23 - -\end{chunk} -These are the test cases. -\begin{chunk}{*} ---S 24 of 63 -bitlist(1) ---R ---R Compiling function bitlist with type Integer -> List List Integer ---R ---R (24) [] ---R Type: List List Integer ---E 24 - ---S 25 of 63 -bitlist(2) ---R ---I Compiling function G7153 with type Integer -> Boolean ---I Compiling function G7332 with type NonNegativeInteger -> Boolean ---R ---R (25) [[0],[1]] ---R Type: List List Integer ---E 25 - ---S 26 of 63 -bitlist(3) ---R ---R ---R (26) [[0,0],[0,1],[1,0],[1,1]] ---R Type: List List Integer ---E 26 - ---S 27 of 63 -bitlist(4) ---R ---R ---R (27) [[0,0,0],[0,0,1],[0,1,0],[0,1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]] ---R Type: List List Integer ---E 27 - -\end{chunk} - -Now we need a function to generate a list of subscripted symbols -\begin{chunk}{*} ---S 28 of 63 -symgen(var:Symbol,size:PI):List Symbol == [var.[i] for i in size..1 by -1] ---R ---R Function declaration symgen : (Symbol,PositiveInteger) -> List ---R Symbol has been added to workspace. ---R Type: Void ---E 28 - ---S 29 of 63 -symgen('a,4) ---R ---R Compiling function symgen with type (Symbol,PositiveInteger) -> List ---R Symbol ---R ---R (29) [a ,a ,a ,a ] ---R 4 3 2 1 ---R Type: List Symbol ---E 29 - -\end{chunk} - -This is a function to generate the terms for Boutin's Identity. -Each term is of the form: -\[sign * (x_n\pm x_{n-1}\\pm \ldots \pm x_1)^n\] -where the sign is negative if the number of minus signs in the term is odd -\begin{chunk}{*} ---S 30 of 63 -term(size:PI,signs:List INT):Polynomial Integer == - syms:=symgen('x,size) - t1:POLY(INT):=first syms - sign:INT:=if odd? size then 1 else -1 - for i in 1..#signs repeat - if (signs.i = 0) - then t1:=t1-syms.(i+1) - else ( t1:=t1+syms.(i+1) ; sign:=sign*-1 ) - sign*(t1^size) ---R ---R Function declaration term : (PositiveInteger,List Integer) -> ---R Polynomial Integer has been added to workspace. ---R Type: Void ---E 30 -\end{chunk} -Now we test it by hand for the case $n=4$ -\begin{chunk}{*} - ---S 31 of 63 -factor term(4,[0,0,0]) ---R ---R Compiling function term with type (PositiveInteger,List Integer) -> ---R Polynomial Integer ---R ---R 4 ---R (31) - (x - x - x - x ) ---R 4 3 2 1 ---R Type: Factored Polynomial Integer ---E 31 - ---S 32 of 63 -factor term(4,[0,0,1]) ---R ---R ---R 4 ---R (32) (x - x - x + x ) ---R 4 3 2 1 ---R Type: Factored Polynomial Integer ---E 32 - ---S 33 of 63 -factor term(4,[0,1,0]) ---R ---R ---R 4 ---R (33) (x - x + x - x ) ---R 4 3 2 1 ---R Type: Factored Polynomial Integer ---E 33 - ---S 34 of 63 -factor term(4,[0,1,1]) ---R ---R ---R 4 ---R (34) - (x - x + x + x ) ---R 4 3 2 1 ---R Type: Factored Polynomial Integer ---E 34 - ---S 35 of 63 -factor term(4,[1,0,0]) ---R ---R ---R 4 ---R (35) (x + x - x - x ) ---R 4 3 2 1 ---R Type: Factored Polynomial Integer ---E 35 - ---S 36 of 63 -factor term(4,[1,0,1]) ---R ---R ---R 4 ---R (36) - (x + x - x + x ) ---R 4 3 2 1 ---R Type: Factored Polynomial Integer ---E 36 - ---S 37 of 63 -factor term(4,[1,1,0]) ---R ---R ---R 4 ---R (37) - (x + x + x - x ) ---R 4 3 2 1 ---R Type: Factored Polynomial Integer ---E 37 - ---S 38 of 63 -factor term(4,[1,1,1]) ---R ---R ---R 4 ---R (38) (x + x + x + x ) ---R 4 3 2 1 ---R Type: Factored Polynomial Integer ---E 38 - -\end{chunk} -And we test combining the terms using the bitlist function call. -\begin{chunk}{*} ---S 39 of 63 -map(x+->factor(term(1,x)),bitlist(1)) ---R ---R ---R (39) [] ---R Type: List Factored Polynomial Integer ---E 39 - ---S 40 of 63 -map(x+->factor(term(2,x)),bitlist(2)) ---R ---R ---R 2 2 ---R (40) [- (x - x ) ,(x + x ) ] ---R 2 1 2 1 ---R Type: List Factored Polynomial Integer ---E 40 - ---S 41 of 63 -map(x+->factor(term(3,x)),bitlist(3)) ---R ---R ---R 3 3 3 3 ---R (41) [(x - x - x ) ,- (x - x + x ) ,- (x + x - x ) ,(x + x + x ) ] ---R 3 2 1 3 2 1 3 2 1 3 2 1 ---R Type: List Factored Polynomial Integer ---E 41 - ---S 42 of 63 -map(x+->factor(term(4,x)),bitlist(4)) ---R ---R ---R (42) ---R 4 4 4 ---R [- (x - x - x - x ) , (x - x - x + x ) , (x - x + x - x ) , ---R 4 3 2 1 4 3 2 1 4 3 2 1 ---R 4 4 4 ---R - (x - x + x + x ) , (x + x - x - x ) , - (x + x - x + x ) , ---R 4 3 2 1 4 3 2 1 4 3 2 1 ---R 4 4 ---R - (x + x + x - x ) , (x + x + x + x ) ] ---R 4 3 2 1 4 3 2 1 ---R Type: List Factored Polynomial Integer ---E 42 - -\end{chunk} -Next we have two functions, one to create a generic left hand side -of Boutin's Identity: -\begin{chunk}{*} ---S 43 of 63 -lhs(size:PI):POLY(INT) == - size = 1 => 0::POLY(INT) - reduce(+,map(x+->term(size,x),bitlist(size))) ---R ---R Function declaration lhs : PositiveInteger -> Polynomial Integer has ---R been added to workspace. ---R Type: Void ---E 43 - -\end{chunk} -and one to create a generic right hand side of Boutin's Identity: -\begin{chunk}{*} ---S 44 of 63 -rhs(size:PI):POLY(INT) == - size = 1 => 0 - bound:PI:=(size-1) - factorial(size)*2^bound*reduce(*,symgen('x,size))@POLY(INT) ---R ---R Function declaration rhs : PositiveInteger -> Polynomial Integer has ---R been added to workspace. ---R Type: Void ---E 44 - -\end{chunk} -Now we look at the case where $n=2$, showing the factors, the left -hand side, the right hand side, and the fact that they are equal -by subtraction -\begin{chunk}{*} ---S 45 of 63 -map(x+->factor term(2,x),bitlist(2)) ---R ---R ---R 2 2 ---R (45) [- (x - x ) ,(x + x ) ] ---R 2 1 2 1 ---R Type: List Factored Polynomial Integer ---E 45 - ---S 46 of 63 -lhs(2) ---R ---R Compiling function lhs with type PositiveInteger -> Polynomial ---R Integer ---R ---R (46) 4x x ---R 1 2 ---R Type: Polynomial Integer ---E 46 - ---S 47 of 63 -rhs(2) ---R ---R Compiling function rhs with type PositiveInteger -> Polynomial ---R Integer ---R ---R (47) 4x x ---R 1 2 ---R Type: Polynomial Integer ---E 47 - ---S 48 of 63 -lhs(2)-rhs(2) ---R ---R ---R (48) 0 ---R Type: Polynomial Integer ---E 48 - -\end{chunk} -Now we look at the case where $n=3$, showing the factors, the left -hand side, the right hand side, and the fact that they are equal -by subtraction -\begin{chunk}{*} ---S 49 of 63 -map(x+->factor term(3,x),bitlist(3)) ---R ---R ---R 3 3 3 3 ---R (49) [(x - x - x ) ,- (x - x + x ) ,- (x + x - x ) ,(x + x + x ) ] ---R 3 2 1 3 2 1 3 2 1 3 2 1 ---R Type: List Factored Polynomial Integer ---E 49 - ---S 50 of 63 -lhs(3) ---R ---R ---R (50) 24x x x ---R 1 2 3 ---R Type: Polynomial Integer ---E 50 - ---S 51 of 63 -rhs(3) ---R ---R ---R (51) 24x x x ---R 1 2 3 ---R Type: Polynomial Integer ---E 51 - ---S 52 of 63 -lhs(3)-rhs(3) ---R ---R ---R (52) 0 ---R Type: Polynomial Integer ---E 52 - -\end{chunk} -Now we look at the case where $n=4$, showing the factors, the left -hand side, the right hand side, and the fact that they are equal -by subtraction -\begin{chunk}{*} ---S 53 of 63 -map(x+->factor term(4,x),bitlist(4)) ---R ---R ---R (53) ---R 4 4 4 ---R [- (x - x - x - x ) , (x - x - x + x ) , (x - x + x - x ) , ---R 4 3 2 1 4 3 2 1 4 3 2 1 ---R 4 4 4 ---R - (x - x + x + x ) , (x + x - x - x ) , - (x + x - x + x ) , ---R 4 3 2 1 4 3 2 1 4 3 2 1 ---R 4 4 ---R - (x + x + x - x ) , (x + x + x + x ) ] ---R 4 3 2 1 4 3 2 1 ---R Type: List Factored Polynomial Integer ---E 53 - ---S 54 of 63 -lhs(4) ---R ---R ---R (54) 192x x x x ---R 1 2 3 4 ---R Type: Polynomial Integer ---E 54 - ---S 55 of 63 -rhs(4) ---R ---R ---R (55) 192x x x x ---R 1 2 3 4 ---R Type: Polynomial Integer ---E 55 - ---S 56 of 63 -lhs(4)-rhs(4) ---R ---R ---R (56) 0 ---R Type: Polynomial Integer ---E 56 - -\end{chunk} -\subsection{Lagrange's Identity} -\[\left(\sum a_k^2\right) \left(\sum b_k^2\right) = -\left(\sum a_k b_k\right)^2 + \sum \left(a_k b_j - a_j b_k\right)^2\] - -We need two symbol generation functions. First, we need to generate -the units for the term -\[\left(\sum a_k b_k\right)^2\] -so that \verb|symgen2('a,'b,4)| results in -\begin{verbatim} - [a b ,a b ,a b ,a b ] - 4 4 3 3 2 2 1 1 -\end{verbatim} -\begin{chunk}{*} ---S 57 of 63 -symgen2(var1:Symbol,var2:Symbol,size:PI):List POLY INT == - [(var1.[i]*var2.[i]) for i in size..1 by -1] ---R ---R Function declaration symgen2 : (Symbol,Symbol,PositiveInteger) -> ---R List Polynomial Integer has been added to workspace. ---R Type: Void ---E 57 - ---S 58 of 63 -symgen2('a,'b,4) ---R ---R Compiling function symgen2 with type (Symbol,Symbol,PositiveInteger) ---R -> List Polynomial Integer ---R ---R (58) [a b ,a b ,a b ,a b ] ---R 4 4 3 3 2 2 1 1 ---R Type: List Polynomial Integer ---E 58 - -\end{chunk} -Next we need to generate the units for the term -\[\sum \left(a_k b_j - a_j b_k\right)^2\] -so that \verb|symgen3('a,'b,4)| results in -\begin{verbatim} - [0, a b - a b , a b - a b , a b - a b , 0, a b - a b , a b - a b , 0, - 3 4 4 3 2 4 4 2 1 4 4 1 2 3 3 2 1 3 3 1 - a b - a b , 0] - 1 2 2 1 -\end{verbatim} -\begin{chunk}{*} ---S 59 of 63 -symgen3(var1:Symbol,var2:Symbol,size:PI):LIST POLY INT == - result:LIST(POLY(INT)):=[] - for j in 1..size repeat - for k in 1..j repeat - p:POLY(INT):=var1.[k]*var2.[j]-var1.[j]*var2.[k] - result:=cons(p,result) - result ---R ---R Function declaration symgen3 : (Symbol,Symbol,PositiveInteger) -> ---R List Polynomial Integer has been added to workspace. ---R Type: Void ---E 59 - ---S 60 of 63 -symgen3('a,'b,4) ---R ---R Compiling function symgen3 with type (Symbol,Symbol,PositiveInteger) ---R -> List Polynomial Integer ---R ---R (60) ---R [0, a b - a b , a b - a b , a b - a b , 0, a b - a b , a b - a b , 0, ---R 3 4 4 3 2 4 4 2 1 4 4 1 2 3 3 2 1 3 3 1 ---R a b - a b , 0] ---R 1 2 2 1 ---R Type: List Polynomial Integer ---E 60 - -\end{chunk} -Now we are ready to generate and test the Lagrange Identities. -This function will take a given size and print all of the intermediate -working results. It eventually creates the left hand side (lhs) and -the right hand side (rhs) and subtracts them to show that they are equal. -\begin{chunk}{*} ---S 61 of 63 -lagrange(size:PI):POLY(INT) == - t1:=factor reduce(+,map(x+->x^2,symgen('a,size))) - print ["t1=",t1] - t2:=factor reduce(+,map(x+->x^2,symgen('b,size))) - print ["t2=",t2] - t3:=factor reduce(+,symgen2('a,'b,size))^2 - print ["t3=",t3] - t4:=factor reduce(+,map(x+->x^2,symgen3('a,'b,size))) - print ["t4=",t4] - lhs:=t1*t2 - print ["lhs=",lhs] - rhs:=t3+t4 - print ["rhs=",rhs] - lhs-rhs ---R ---R Function declaration lagrange : PositiveInteger -> Polynomial ---R Integer has been added to workspace. ---R Type: Void ---E 61 - -\end{chunk} -Now we test it for the case $n=2$ -\begin{chunk}{*} ---S 62 of 63 -lagrange(2) ---R ---R Function definition for lhs is being overwritten. ---R Function definition for rhs is being overwritten. ---R Compiling function lagrange with type PositiveInteger -> Polynomial ---R Integer ---R 2 2 ---R ["t1=",a + a ] ---R 2 1 ---R 2 2 ---R ["t2=",b + b ] ---R 2 1 ---R 2 ---R ["t3=",(a b + a b ) ] ---R 2 2 1 1 ---R 2 ---R ["t4=",(a b - a b ) ] ---R 1 2 2 1 ---R 2 2 2 2 ---R ["lhs=",(a + a )(b + b )] ---R 2 1 2 1 ---R 2 2 2 2 2 2 ---R ["rhs=",(a + a )b + (a + a )b ] ---R 2 1 2 2 1 1 ---R ---R (62) 0 ---R Type: Polynomial Integer ---E 62 - -\end{chunk} -Now we test it for the case $n=3$ -\begin{chunk}{*} ---S 63 of 63 -lagrange(3) ---R ---R 2 2 2 ---R ["t1=",a + a + a ] ---R 3 2 1 ---R 2 2 2 ---R ["t2=",b + b + b ] ---R 3 2 1 ---R 2 ---R ["t3=",(a b + a b + a b ) ] ---R 3 3 2 2 1 1 ---R ["t4=", ---R ---R 2 2 2 2 2 2 ---R (a + a )b + (- 2a a b - 2a a b )b + (a + a )b - 2a a b b ---R 2 1 3 2 3 2 1 3 1 3 3 1 2 1 2 1 2 ---R + ---R 2 2 2 ---R (a + a )b ---R 3 2 1 ---R ] ---R 2 2 2 2 2 2 ---R ["lhs=",(a + a + a )(b + b + b )] ---R 3 2 1 3 2 1 ---R 2 2 2 2 2 2 2 2 2 2 2 2 ---R ["rhs=",(a + a + a )b + (a + a + a )b + (a + a + a )b ] ---R 3 2 1 3 3 2 1 2 3 2 1 1 ---R ---R (63) 0 ---R Type: Polynomial Integer ---E 63 - -)spool -)lisp (bye) - -\end{chunk} -\eject -\begin{thebibliography}{99} -\bibitem{1} T. Piezas, ``A Collection of Algebraic Identities''\\ -{\bf http://sites.google.com/site/tpiezas/001} -\end{thebibliography} -\end{document} - - - diff --git a/src/input/tpiezas001.input.pamphlet b/src/input/tpiezas001.input.pamphlet new file mode 100644 index 0000000..6b9b586 --- /dev/null +++ b/src/input/tpiezas001.input.pamphlet @@ -0,0 +1,1125 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input tpiezas.input} +\author{Timothy Daly} +\maketitle +\begin{abstract} +This is from ``A Collection of Algebraic Identities'' +by Titus. Piezas III\cite{1} +\end{abstract} +\eject +\tableofcontents +\eject +\section{Part 1. Assorted Identities} +\begin{chunk}{*} +)set break resume +)spool tpiezas.output +)set message test on +)set message auto off +)clear all +\end{chunk} + +\subsection{E. Maillet} +\[(a+b)^3+(a+c)^3+(a+d)^3+(a-b)^3+(a-c)^3+(a-d)^3 = 6a(a^2+b^2+c^2+d^2)\] +\begin{chunk}{*} +--S 1 of 91 +t1a:=(a+b)^3 + (a+c)^3 + (a+d)^3 + (a-b)^3 + (a-c)^3 + (a-d)^3 +--R +--R +--R 2 2 2 3 +--R (1) 6a d + 6a c + 6a b + 6a +--R Type: Polynomial Integer +--E 1 + +--S 2 of 91 +t1b:=6*a*(a^2+b^2+c^2+d^2) +--R +--R +--R 2 2 2 3 +--R (2) 6a d + 6a c + 6a b + 6a +--R Type: Polynomial Integer +--E 2 + +--S 3 of 91 +t1a-t1b +--R +--R +--R (3) 0 +--R Type: Polynomial Integer +--E 3 + +\end{chunk} + +\subsection{E. Lucas-Liouville} +\[\begin{array}{ll} +(a+b)^k+(a+c)^k+(a+d)^k+(b+c)^k+(b+d)^k+(c+d)^k+\\ +(a-b)^k+(a-c)^k+(a-d)^k+(b-c)^k+(b-d)^k+(c-d)^k +\end{array}\] +\[=6(a^2+b^2+c^2+d^2)^{k/2}\quad {\rm\ for\ }k=2,4\] +\begin{chunk}{*} +--S 4 of 91 +t2a(k)==(a+b)^k + (a+c)^k + (a+d)^k + (b+c)^k + (b+d)^k + (c+d)^k +_ + (a-b)^k + (a-c)^k + (a-d)^k + (b-c)^k + (b-d)^k + (c-d)^k +--R +--R Type: Void +--E 4 + +--S 5 of 91 +t2b(k)==6*(a^2+b^2+c^2+d^2)^(k/2) +--R +--R Type: Void +--E 5 + +--S 6 of 91 +t2a(k) +--R +--R Compiling function t2a with type Variable k -> Expression Integer +--R +--R (6) +--R k k k k k k +--R (d + c) + (d + b) + (d + a) + (c + b) + (c + a) + (b + a) +--R + +--R k k k k k k +--R (- b + a) + (- c + b) + (- c + a) + (- d + c) + (- d + b) + (- d + a) +--R Type: Expression Integer +--E 6 + +--S 7 of 91 +t2b(k) +--R +--R Compiling function t2b with type Variable k -> Expression Integer +--R +--R k +--R - +--R 2 2 2 2 2 +--R (7) 6(d + c + b + a ) +--R Type: Expression Integer +--E 7 + +--S 8 of 91 +t2a(2) +--R +--R Compiling function t2a with type PositiveInteger -> Polynomial +--R Integer +--R +--R 2 2 2 2 +--R (8) 6d + 6c + 6b + 6a +--R Type: Polynomial Integer +--E 8 + +--S 9 of 91 +t2b(2) +--R +--R Compiling function t2b with type PositiveInteger -> Expression +--R Integer +--R +--R 2 2 2 2 +--R (9) 6d + 6c + 6b + 6a +--R Type: Expression Integer +--E 9 + +--S 10 of 91 +t2a(2)-t2b(2) +--R +--R +--R (10) 0 +--R Type: Expression Integer +--E 10 + +--S 11 of 91 +t2a(4) +--R +--R +--R (11) +--R 4 2 2 2 2 4 2 2 2 4 2 2 4 +--R 6d + (12c + 12b + 12a )d + 6c + (12b + 12a )c + 6b + 12a b + 6a +--R Type: Polynomial Integer +--E 11 + +--S 12 of 91 +t2b(4) +--R +--R +--R (12) +--R 4 2 2 2 2 4 2 2 2 4 2 2 4 +--R 6d + (12c + 12b + 12a )d + 6c + (12b + 12a )c + 6b + 12a b + 6a +--R Type: Expression Integer +--E 12 + +--S 13 of 91 +t2a(4)-t2b(4) +--R +--R +--R (13) 0 +--R Type: Expression Integer +--E 13 +\end{chunk} + +\subsection{Boutin's Identity} +\[S\pm(x_1\pm x_2\pm \ldots \pm x_k)^k = k!\: 2^{k-1} x_1 x_2 \ldots x_k\] +where the exterior sign is the product of the interior signs so +the term is negative if there is an odd number of negative interior signs, +otherwise positive +\begin{chunk}{*} + +--S 14 of 91 +t3a1 := (a+b)^2 - (a-b)^2 +--R +--R +--R (14) 4a b +--R Type: Polynomial Integer +--E 14 + +--S 15 of 91 +t3b1 := 4*a*b +--R +--R +--R (15) 4a b +--R Type: Polynomial Integer +--E 15 + +--S 16 of 91 +t3a1-t3b1 +--R +--R +--R (16) 0 +--R Type: Polynomial Integer +--E 16 + +--S 17 of 91 +t3a2 := (a+b+c)^3 - (a-b+c)^3 - (a+b-c)^3 + (a-b-c)^3 +--R +--R +--R (17) 24a b c +--R Type: Polynomial Integer +--E 17 + +--S 18 of 91 +t3b2 := 24*a*b*c +--R +--R +--R (18) 24a b c +--R Type: Polynomial Integer +--E 18 + +--S 19 of 91 +t3a2-t3b2 +--R +--R +--R (19) 0 +--R Type: Polynomial Integer +--E 19 + +--S 20 of 91 +t3a3 := (a+b+c+d)^4 - (a-b+c+d)^4 - (a+b-c+d)^4 - (a+b+c-d)^4 + + (a-b-c+d)^4 + (a-b+c-d)^4 + (a+b-c-d)^4 - (a-b-c-d)^4 +--R +--R +--R (20) 192a b c d +--R Type: Polynomial Integer +--E 20 + +--S 21 of 91 +t3b3 := 192*a*b*c*d +--R +--R +--R (21) 192a b c d +--R Type: Polynomial Integer +--E 21 + +--S 22 of 91 +t3a3-t3b3 +--R +--R +--R (22) 0 +--R Type: Polynomial Integer +--E 22 + +\end{chunk} +We can create the general case using some functions. + +The ``bitlist'' function creates a list of the sign changes needed +to form each term. If a term is 4 variables long we need all possible +combinations of 3 signs. In order to generate this we create a list +of all possible bit combinations of the numbers from 0 to $2^{n-1}-1$, +which for the case of 4 would be from 0 to 7: +\begin{verbatim} + [[0,0,0],[0,0,1],[0,1,0],[0,1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]] +\end{verbatim} +We do this using an outer loop to generate the correct number of lists +and an inner loop to create each list. +\begin{chunk}{*} +--S 23 of 91 +bitlist(size:Integer):List List INT == + result:List List INT:=[] + size <= 1 => result + bound:PI:=size-1 + bitlength:INT:=2^bound + for i in (bitlength-1)::PI..0 by -1 repeat + t1:=[1::INT for k in 1..bound] + for j in 0..(#t1-1) repeat + if not bit?(i,j) then t1(bound-j):=0 + result:=cons(t1,result) + result +--R +--R Function declaration bitlist : Integer -> List List Integer has been +--R added to workspace. +--R Type: Void +--E 23 + +\end{chunk} +These are the test cases. +\begin{chunk}{*} +--S 24 of 91 +bitlist(1) +--R +--R Compiling function bitlist with type Integer -> List List Integer +--R +--R (24) [] +--R Type: List List Integer +--E 24 + +--S 25 of 91 +bitlist(2) +--R +--I Compiling function G7153 with type Integer -> Boolean +--I Compiling function G7332 with type NonNegativeInteger -> Boolean +--R +--R (25) [[0],[1]] +--R Type: List List Integer +--E 25 + +--S 26 of 91 +bitlist(3) +--R +--R +--R (26) [[0,0],[0,1],[1,0],[1,1]] +--R Type: List List Integer +--E 26 + +--S 27 of 91 +bitlist(4) +--R +--R +--R (27) [[0,0,0],[0,0,1],[0,1,0],[0,1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]] +--R Type: List List Integer +--E 27 + +\end{chunk} + +Now we need a function to generate a list of subscripted symbols +\begin{chunk}{*} +--S 28 of 91 +symgen(var:Symbol,size:PI):List Symbol == [var.[i] for i in size..1 by -1] +--R +--R Function declaration symgen : (Symbol,PositiveInteger) -> List +--R Symbol has been added to workspace. +--R Type: Void +--E 28 + +--S 29 of 91 +symgen('a,4) +--R +--R Compiling function symgen with type (Symbol,PositiveInteger) -> List +--R Symbol +--R +--R (29) [a ,a ,a ,a ] +--R 4 3 2 1 +--R Type: List Symbol +--E 29 + +\end{chunk} + +This is a function to generate the terms for Boutin's Identity. +Each term is of the form: +\[sign * (x_n\pm x_{n-1}\\pm \ldots \pm x_1)^n\] +where the sign is negative if the number of minus signs in the term is odd +\begin{chunk}{*} +--S 30 of 91 +term(size:PI,signs:List INT):Polynomial Integer == + syms:=symgen('x,size) + t1:POLY(INT):=first syms + sign:INT:=if odd? size then 1 else -1 + for i in 1..#signs repeat + if (signs.i = 0) + then t1:=t1-syms.(i+1) + else ( t1:=t1+syms.(i+1) ; sign:=sign*-1 ) + sign*(t1^size) +--R +--R Function declaration term : (PositiveInteger,List Integer) -> +--R Polynomial Integer has been added to workspace. +--R Type: Void +--E 30 +\end{chunk} +Now we test it by hand for the case $n=4$ +\begin{chunk}{*} + +--S 31 of 91 +factor term(4,[0,0,0]) +--R +--R Compiling function term with type (PositiveInteger,List Integer) -> +--R Polynomial Integer +--R +--R 4 +--R (31) - (x - x - x - x ) +--R 4 3 2 1 +--R Type: Factored Polynomial Integer +--E 31 + +--S 32 of 91 +factor term(4,[0,0,1]) +--R +--R +--R 4 +--R (32) (x - x - x + x ) +--R 4 3 2 1 +--R Type: Factored Polynomial Integer +--E 32 + +--S 33 of 91 +factor term(4,[0,1,0]) +--R +--R +--R 4 +--R (33) (x - x + x - x ) +--R 4 3 2 1 +--R Type: Factored Polynomial Integer +--E 33 + +--S 34 of 91 +factor term(4,[0,1,1]) +--R +--R +--R 4 +--R (34) - (x - x + x + x ) +--R 4 3 2 1 +--R Type: Factored Polynomial Integer +--E 34 + +--S 35 of 91 +factor term(4,[1,0,0]) +--R +--R +--R 4 +--R (35) (x + x - x - x ) +--R 4 3 2 1 +--R Type: Factored Polynomial Integer +--E 35 + +--S 36 of 91 +factor term(4,[1,0,1]) +--R +--R +--R 4 +--R (36) - (x + x - x + x ) +--R 4 3 2 1 +--R Type: Factored Polynomial Integer +--E 36 + +--S 37 of 91 +factor term(4,[1,1,0]) +--R +--R +--R 4 +--R (37) - (x + x + x - x ) +--R 4 3 2 1 +--R Type: Factored Polynomial Integer +--E 37 + +--S 38 of 91 +factor term(4,[1,1,1]) +--R +--R +--R 4 +--R (38) (x + x + x + x ) +--R 4 3 2 1 +--R Type: Factored Polynomial Integer +--E 38 + +\end{chunk} +And we test combining the terms using the bitlist function call. +\begin{chunk}{*} +--S 39 of 91 +map(x+->factor(term(1,x)),bitlist(1)) +--R +--R +--R (39) [] +--R Type: List Factored Polynomial Integer +--E 39 + +--S 40 of 91 +map(x+->factor(term(2,x)),bitlist(2)) +--R +--R +--R 2 2 +--R (40) [- (x - x ) ,(x + x ) ] +--R 2 1 2 1 +--R Type: List Factored Polynomial Integer +--E 40 + +--S 41 of 91 +map(x+->factor(term(3,x)),bitlist(3)) +--R +--R +--R 3 3 3 3 +--R (41) [(x - x - x ) ,- (x - x + x ) ,- (x + x - x ) ,(x + x + x ) ] +--R 3 2 1 3 2 1 3 2 1 3 2 1 +--R Type: List Factored Polynomial Integer +--E 41 + +--S 42 of 91 +map(x+->factor(term(4,x)),bitlist(4)) +--R +--R +--R (42) +--R 4 4 4 +--R [- (x - x - x - x ) , (x - x - x + x ) , (x - x + x - x ) , +--R 4 3 2 1 4 3 2 1 4 3 2 1 +--R 4 4 4 +--R - (x - x + x + x ) , (x + x - x - x ) , - (x + x - x + x ) , +--R 4 3 2 1 4 3 2 1 4 3 2 1 +--R 4 4 +--R - (x + x + x - x ) , (x + x + x + x ) ] +--R 4 3 2 1 4 3 2 1 +--R Type: List Factored Polynomial Integer +--E 42 + +\end{chunk} +Next we have two functions, one to create a generic left hand side +of Boutin's Identity: +\begin{chunk}{*} +--S 43 of 91 +lhs(size:PI):POLY(INT) == + size = 1 => 0::POLY(INT) + reduce(+,map(x+->term(size,x),bitlist(size))) +--R +--R Function declaration lhs : PositiveInteger -> Polynomial Integer has +--R been added to workspace. +--R Type: Void +--E 43 + +\end{chunk} +and one to create a generic right hand side of Boutin's Identity: +\begin{chunk}{*} +--S 44 of 91 +rhs(size:PI):POLY(INT) == + size = 1 => 0 + bound:PI:=(size-1) + factorial(size)*2^bound*reduce(*,symgen('x,size))@POLY(INT) +--R +--R Function declaration rhs : PositiveInteger -> Polynomial Integer has +--R been added to workspace. +--R Type: Void +--E 44 + +\end{chunk} +Now we look at the case where $n=2$, showing the factors, the left +hand side, the right hand side, and the fact that they are equal +by subtraction +\begin{chunk}{*} +--S 45 of 91 +map(x+->factor term(2,x),bitlist(2)) +--R +--R +--R 2 2 +--R (45) [- (x - x ) ,(x + x ) ] +--R 2 1 2 1 +--R Type: List Factored Polynomial Integer +--E 45 + +--S 46 of 91 +lhs(2) +--R +--R Compiling function lhs with type PositiveInteger -> Polynomial +--R Integer +--R +--R (46) 4x x +--R 1 2 +--R Type: Polynomial Integer +--E 46 + +--S 47 of 91 +rhs(2) +--R +--R Compiling function rhs with type PositiveInteger -> Polynomial +--R Integer +--R +--R (47) 4x x +--R 1 2 +--R Type: Polynomial Integer +--E 47 + +--S 48 of 91 +lhs(2)-rhs(2) +--R +--R +--R (48) 0 +--R Type: Polynomial Integer +--E 48 + +\end{chunk} +Now we look at the case where $n=3$, showing the factors, the left +hand side, the right hand side, and the fact that they are equal +by subtraction +\begin{chunk}{*} +--S 49 of 91 +map(x+->factor term(3,x),bitlist(3)) +--R +--R +--R 3 3 3 3 +--R (49) [(x - x - x ) ,- (x - x + x ) ,- (x + x - x ) ,(x + x + x ) ] +--R 3 2 1 3 2 1 3 2 1 3 2 1 +--R Type: List Factored Polynomial Integer +--E 49 + +--S 50 of 91 +lhs(3) +--R +--R +--R (50) 24x x x +--R 1 2 3 +--R Type: Polynomial Integer +--E 50 + +--S 51 of 91 +rhs(3) +--R +--R +--R (51) 24x x x +--R 1 2 3 +--R Type: Polynomial Integer +--E 51 + +--S 52 of 91 +lhs(3)-rhs(3) +--R +--R +--R (52) 0 +--R Type: Polynomial Integer +--E 52 + +\end{chunk} +Now we look at the case where $n=4$, showing the factors, the left +hand side, the right hand side, and the fact that they are equal +by subtraction +\begin{chunk}{*} +--S 53 of 91 +map(x+->factor term(4,x),bitlist(4)) +--R +--R +--R (53) +--R 4 4 4 +--R [- (x - x - x - x ) , (x - x - x + x ) , (x - x + x - x ) , +--R 4 3 2 1 4 3 2 1 4 3 2 1 +--R 4 4 4 +--R - (x - x + x + x ) , (x + x - x - x ) , - (x + x - x + x ) , +--R 4 3 2 1 4 3 2 1 4 3 2 1 +--R 4 4 +--R - (x + x + x - x ) , (x + x + x + x ) ] +--R 4 3 2 1 4 3 2 1 +--R Type: List Factored Polynomial Integer +--E 53 + +--S 54 of 91 +lhs(4) +--R +--R +--R (54) 192x x x x +--R 1 2 3 4 +--R Type: Polynomial Integer +--E 54 + +--S 55 of 91 +rhs(4) +--R +--R +--R (55) 192x x x x +--R 1 2 3 4 +--R Type: Polynomial Integer +--E 55 + +--S 56 of 91 +lhs(4)-rhs(4) +--R +--R +--R (56) 0 +--R Type: Polynomial Integer +--E 56 + +\end{chunk} +\subsection{Lagrange's Identity} +\[\left(\sum a_k^2\right) \left(\sum b_k^2\right) = +\left(\sum a_k b_k\right)^2 + \sum \left(a_k b_j - a_j b_k\right)^2\] + +We need two symbol generation functions. First, we need to generate +the units for the term +\[\left(\sum a_k b_k\right)^2\] +so that \verb|symgen2('a,'b,4)| results in +\begin{verbatim} + [a b ,a b ,a b ,a b ] + 4 4 3 3 2 2 1 1 +\end{verbatim} +\begin{chunk}{*} +--S 57 of 91 +symgen2(var1:Symbol,var2:Symbol,size:PI):List POLY INT == + [(var1.[i]*var2.[i]) for i in size..1 by -1] +--R +--R Function declaration symgen2 : (Symbol,Symbol,PositiveInteger) -> +--R List Polynomial Integer has been added to workspace. +--R Type: Void +--E 57 + +--S 58 of 91 +symgen2('a,'b,4) +--R +--R Compiling function symgen2 with type (Symbol,Symbol,PositiveInteger) +--R -> List Polynomial Integer +--R +--R (58) [a b ,a b ,a b ,a b ] +--R 4 4 3 3 2 2 1 1 +--R Type: List Polynomial Integer +--E 58 + +\end{chunk} +Next we need to generate the units for the term +\[\sum \left(a_k b_j - a_j b_k\right)^2\] +so that \verb|symgen3('a,'b,4)| results in +\begin{verbatim} + [0, a b - a b , a b - a b , a b - a b , 0, a b - a b , a b - a b , 0, + 3 4 4 3 2 4 4 2 1 4 4 1 2 3 3 2 1 3 3 1 + a b - a b , 0] + 1 2 2 1 +\end{verbatim} +\begin{chunk}{*} +--S 59 of 91 +symgen3(var1:Symbol,var2:Symbol,size:PI):LIST POLY INT == + result:LIST(POLY(INT)):=[] + for j in 1..size repeat + for k in 1..j repeat + p:POLY(INT):=var1.[k]*var2.[j]-var1.[j]*var2.[k] + result:=cons(p,result) + result +--R +--R Function declaration symgen3 : (Symbol,Symbol,PositiveInteger) -> +--R List Polynomial Integer has been added to workspace. +--R Type: Void +--E 59 + +--S 60 of 91 +symgen3('a,'b,4) +--R +--R Compiling function symgen3 with type (Symbol,Symbol,PositiveInteger) +--R -> List Polynomial Integer +--R +--R (60) +--R [0, a b - a b , a b - a b , a b - a b , 0, a b - a b , a b - a b , 0, +--R 3 4 4 3 2 4 4 2 1 4 4 1 2 3 3 2 1 3 3 1 +--R a b - a b , 0] +--R 1 2 2 1 +--R Type: List Polynomial Integer +--E 60 + +\end{chunk} +Now we are ready to generate and test the Lagrange Identities. +This function will take a given size and print all of the intermediate +working results. It eventually creates the left hand side (lhs) and +the right hand side (rhs) and subtracts them to show that they are equal. +\begin{chunk}{*} +--S 61 of 91 +lagrange(size:PI):POLY(INT) == + t1:=factor reduce(+,map(x+->x^2,symgen('a,size))) + print ["t1=",t1] + t2:=factor reduce(+,map(x+->x^2,symgen('b,size))) + print ["t2=",t2] + t3:=factor reduce(+,symgen2('a,'b,size))^2 + print ["t3=",t3] + t4:=factor reduce(+,map(x+->x^2,symgen3('a,'b,size))) + print ["t4=",t4] + lhs:=t1*t2 + print ["lhs=",lhs] + rhs:=t3+t4 + print ["rhs=",rhs] + lhs-rhs +--R +--R Function declaration lagrange : PositiveInteger -> Polynomial +--R Integer has been added to workspace. +--R Type: Void +--E 61 + +\end{chunk} +Now we test it for the case $n=2$ +\begin{chunk}{*} +--S 62 of 91 +lagrange(2) +--R +--R Function definition for lhs is being overwritten. +--R Function definition for rhs is being overwritten. +--R Compiling function lagrange with type PositiveInteger -> Polynomial +--R Integer +--R 2 2 +--R ["t1=",a + a ] +--R 2 1 +--R 2 2 +--R ["t2=",b + b ] +--R 2 1 +--R 2 +--R ["t3=",(a b + a b ) ] +--R 2 2 1 1 +--R 2 +--R ["t4=",(a b - a b ) ] +--R 1 2 2 1 +--R 2 2 2 2 +--R ["lhs=",(a + a )(b + b )] +--R 2 1 2 1 +--R 2 2 2 2 2 2 +--R ["rhs=",(a + a )b + (a + a )b ] +--R 2 1 2 2 1 1 +--R +--R (62) 0 +--R Type: Polynomial Integer +--E 62 + +\end{chunk} +Now we test it for the case $n=3$ +\begin{chunk}{*} +--S 63 of 91 +lagrange(3) +--R +--R 2 2 2 +--R ["t1=",a + a + a ] +--R 3 2 1 +--R 2 2 2 +--R ["t2=",b + b + b ] +--R 3 2 1 +--R 2 +--R ["t3=",(a b + a b + a b ) ] +--R 3 3 2 2 1 1 +--R ["t4=", +--R +--R 2 2 2 2 2 2 +--R (a + a )b + (- 2a a b - 2a a b )b + (a + a )b - 2a a b b +--R 2 1 3 2 3 2 1 3 1 3 3 1 2 1 2 1 2 +--R + +--R 2 2 2 +--R (a + a )b +--R 3 2 1 +--R ] +--R 2 2 2 2 2 2 +--R ["lhs=",(a + a + a )(b + b + b )] +--R 3 2 1 3 2 1 +--R 2 2 2 2 2 2 2 2 2 2 2 2 +--R ["rhs=",(a + a + a )b + (a + a + a )b + (a + a + a )b ] +--R 3 2 1 3 3 2 1 2 3 2 1 1 +--R +--R (63) 0 +--R Type: Polynomial Integer +--E 63 + +\end{chunk}{*} +\section{Form: $x^3+y^3+z^3=m$} +{\bf Theorem}: For any constant $m$, there is a rational solution to +$x^3+y^3+z^3=m$ (S. Ryley) +\[(p^3+qr)^3 + (-p^3+pr)^3 + (-qr)^3 = m(6mnp^2)^3\] +where $\{p,q,r\} = \{m^2+3n^3, m^2-3n^3, 36m^2n^3\}$ with $n$ arbitrary. +\begin{chunk}{*} +)clear all + +--S 64 of 91 +p:=m^2+3*n^3 +--R +--R +--R 3 2 +--R (1) 3n + m +--R Type: Polynomial Integer +--E 64 + +--S 65 of 91 +q:=m^2-3*n^3 +--R +--R +--R 3 2 +--R (2) - 3n + m +--R Type: Polynomial Integer +--E 65 + +--S 66 of 91 +r:=36*m^2*n^3 +--R +--R +--R 2 3 +--R (3) 36m n +--R Type: Polynomial Integer +--E 66 + +--S 67 of 91 +lhs:=(p^3+q*r)^3 + (-p^3+p*r)^3 + (-q*r)^3 +--R +--R +--R (4) +--R 4 21 6 18 8 15 10 12 12 9 +--R 157464m n + 314928m n + 262440m n + 116640m n + 29160m n +--R + +--R 14 6 16 3 +--R 3888m n + 216m n +--R Type: Polynomial Integer +--E 67 + +--S 68 of 91 +rhs:=m*(6*m*n*p^2)^3 +--R +--R +--R (5) +--R 4 21 6 18 8 15 10 12 12 9 +--R 157464m n + 314928m n + 262440m n + 116640m n + 29160m n +--R + +--R 14 6 16 3 +--R 3888m n + 216m n +--R Type: Polynomial Integer +--E 68 + +--S 69 of 91 +lhs-rhs +--R +--R +--R (6) 0 +--R Type: Polynomial Integer +--E 69 + +\end{chunk} +\section{Form: $x^4+y^4-z^4-t^4=a$} +{\bf Theorem}: For any constant $a$, there is a rational solution to +$x^4+y^4-z^4-t^4=a$ (R. Norrie) +\[((2a+b)c^3d)^4+(2ac^4-bd^4)^4-(2ac^4+bd^4)^4-((2a-b)c^3d)^4 = a(2bcd)^4\] +where $b=c^8-d^8$, for arbitrary $c,d$. +\begin{chunk}{*} +)clear all + +--S 70 of 91 +b:=c^8-d^8 +--R +--R +--R 8 8 +--R (1) - d + c +--R Type: Polynomial Integer +--E 70 + +--S 71 of 91 +lhs:=((2*a+b)*c^3*d)^4+(2*a*c^4-b*d^4)^4-(2*a*c^4+b*d^4)^4-((2*a-b)*c^3*d)^4 +--R +--R +--R 4 36 12 28 20 20 28 12 36 4 +--R (2) 16a c d - 64a c d + 96a c d - 64a c d + 16a c d +--R Type: Polynomial Integer +--E 71 + +--S 72 of 91 +rhs:=a*(2*b*c*d)^4 +--R +--R +--R 4 36 12 28 20 20 28 12 36 4 +--R (3) 16a c d - 64a c d + 96a c d - 64a c d + 16a c d +--R Type: Polynomial Integer +--E 72 + +--S 73 of 91 +lhs-rhs +--R +--R +--R (4) 0 +--R Type: Polynomial Integer +--E 73 + +\end{chunk} +\section{Form: $u^2x+x^2y+y^2z+z^2u=0$} +\subsection{C. Hermite} +\[\{u,x,y,z\}=\{a^2c-b^3, a^2b-ac^2, a^3-b^2c, bc^2-ab^2\}\] +\begin{chunk}{*} +)clear all + +--S 74 of 91 +u:=a^2*c-b^3 +--R +--R +--R 2 3 +--R (1) a c - b +--R Type: Polynomial Integer +--E 74 + +--S 75 of 91 +x:=a^2*b-a*c^2 +--R +--R +--R 2 2 +--R (2) - a c + a b +--R Type: Polynomial Integer +--E 75 + +--S 76 of 91 +y:=a^3-b^2*c +--R +--R +--R 2 3 +--R (3) - b c + a +--R Type: Polynomial Integer +--E 76 + +--S 77 of 91 +z:=b*c^2-a*b^2 +--R +--R +--R 2 2 +--R (4) b c - a b +--R Type: Polynomial Integer +--E 77 + +--S 78 of 91 +u^2*x+x^2*y+y^2*z+z^2*u +--R +--R +--R (5) 0 +--R Type: Polynomial Integer +--E 78 + +\end{chunk} +\subsection{S.Realis} +\[\{u,x,y,z\}=\{ab+b^2+c,3(ab-b^2+c),ab-3b^2-c,3(ab-b^2-c)\}\] +if $c=a^2-2ab+2b^2$ +\begin{chunk}{*} +)clear all + +--S 79 of 91 +c:=a^2-2*a*b+2*b^2 +--R +--R +--R 2 2 +--R (1) 2b - 2a b + a +--R Type: Polynomial Integer +--E 79 + +--S 80 of 91 +u:=a*b+b^2+c +--R +--R +--R 2 2 +--R (2) 3b - a b + a +--R Type: Polynomial Integer +--E 80 + +--S 81 of 91 +x:=3*(a*b-b^2+c) +--R +--R +--R 2 2 +--R (3) 3b - 3a b + 3a +--R Type: Polynomial Integer +--E 81 + +--S 82 of 91 +y:=a*b-3*b^2-c +--R +--R +--R 2 2 +--R (4) - 5b + 3a b - a +--R Type: Polynomial Integer +--E 82 + +--S 83 of 91 +z:=3*(a*b-b^2-c) +--R +--R +--R 2 2 +--R (5) - 9b + 9a b - 3a +--R Type: Polynomial Integer +--E 83 + +--S 84 of 91 +u^2*x+x^2*y+y^2*z+z^2*u +--R +--R +--R (6) 0 +--R Type: Polynomial Integer +--E 84 + +\end{chunk} +\subsection{M. Weill} +\[\{u,x,y,z\} = \{c, a^2d, -abc, ad\}\] +where $c=a^3b-1$ and $d=ab^2+1$ +\begin{chunk}{*} +)clear all + +--S 85 of 91 +c:=a^3*b-1 +--R +--R +--R 3 +--R (1) a b - 1 +--R Type: Polynomial Integer +--E 85 + +--S 86 of 91 +d:=a*b^2+1 +--R +--R +--R 2 +--R (2) a b + 1 +--R Type: Polynomial Integer +--E 86 + +--S 87 of 91 +u:=c +--R +--R +--R 3 +--R (3) a b - 1 +--R Type: Polynomial Integer +--E 87 + +--S 88 of 91 +x:=a^2*d +--R +--R +--R 3 2 2 +--R (4) a b + a +--R Type: Polynomial Integer +--E 88 + +--S 89 of 91 +y:=-a*b*c +--R +--R +--R 4 2 +--R (5) - a b + a b +--R Type: Polynomial Integer +--E 89 + +--S 90 of 91 +z:=a*d +--R +--R +--R 2 2 +--R (6) a b + a +--R Type: Polynomial Integer +--E 90 + +--S 91 of 91 +u^2*x+x^2*y+y^2*z+z^2*u +--R +--R +--R (7) 0 +--R Type: Polynomial Integer +--E 91 + +)spool +)lisp (bye) + +\end{chunk} +\eject +\begin{thebibliography}{99} +\bibitem{1} Titus Piezas, ``A Collection of Algebraic Identities''\\ +{\bf http://sites.google.com/site/tpiezas/001} +\end{thebibliography} +\end{document} + + +