# Singular

#### D.10.2.3 sysNewton

Procedure from library `decodegb.lib` (see decodegb_lib).

Usage:
sysNewton (n,defset,t,q,m,[tr]); n,t,q,m,tr int, defset is list int's
 ``` - n is length, - defset is the defining set, - t is the number of errors, - q is basefield size, - m is degree extension of the splitting field, - if tr>0 it indicates that Newton identities in triangular form should be constructed ```

Return:
the ring to work with the generalized Newton identities (in triangular form if applicable) containing the ideal with name 'newton'

Theory:
Based on 'defset' of the given cyclic code, the procedure constructs the corresponding ideal 'newton' with the generalized Newton identities. With its help one can solve the decoding problem. For basics of the method Generalized Newton identities.

Example:
 ```LIB "decodegb.lib"; // Newton identities for a binary 3-error-correcting cyclic code of //length 31 with defining set (1,5,7) int n=31; // length list defset=1,5,7; //defining set int t=3; // number of errors int q=2; // basefield size int m=5; // degree extension of the splitting field int tr=1; // indicator of triangular form of Newton identities def A=sysNewton(n,defset,t,q,m); setring A; A; // shows the ring we are working in ==> // characteristic : 2 ==> // 1 parameter : a ==> // minpoly : 0 ==> // number of vars : 34 ==> // block 1 : ordering lp ==> // : names S(31) S(30) S(29) S(28) S(27) S(26) S(25) \ S(24) S(23) S(22) S(21) S(20) S(19) S(18) S(17) S(16) S(15) S(14) S(13) S\ (12) S(11) S(10) S(9) S(8) S(6) S(4) S(3) S(2) sigma(1) sigma(2) sigma(3)\ S(7) S(5) S(1) ==> // block 2 : ordering C print(newton); // generalized Newton identities ==> S(31)*sigma(1)+S(30)*sigma(2)+S(29)*sigma(3)+S(1), ==> S(31)*sigma(2)+S(30)*sigma(3)+S(2)+sigma(1)*S(1), ==> S(31)*sigma(3)+S(3)+S(2)*sigma(1)+sigma(2)*S(1), ==> S(4)+S(3)*sigma(1)+S(2)*sigma(2)+sigma(3)*S(1), ==> S(4)*sigma(1)+S(3)*sigma(2)+S(2)*sigma(3)+S(5), ==> S(6)+S(4)*sigma(2)+S(3)*sigma(3)+sigma(1)*S(5), ==> S(6)*sigma(1)+S(4)*sigma(3)+sigma(2)*S(5)+S(7), ==> S(8)+S(6)*sigma(2)+sigma(1)*S(7)+sigma(3)*S(5), ==> S(9)+S(8)*sigma(1)+S(6)*sigma(3)+sigma(2)*S(7), ==> S(10)+S(9)*sigma(1)+S(8)*sigma(2)+sigma(3)*S(7), ==> S(11)+S(10)*sigma(1)+S(9)*sigma(2)+S(8)*sigma(3), ==> S(12)+S(11)*sigma(1)+S(10)*sigma(2)+S(9)*sigma(3), ==> S(13)+S(12)*sigma(1)+S(11)*sigma(2)+S(10)*sigma(3), ==> S(14)+S(13)*sigma(1)+S(12)*sigma(2)+S(11)*sigma(3), ==> S(15)+S(14)*sigma(1)+S(13)*sigma(2)+S(12)*sigma(3), ==> S(16)+S(15)*sigma(1)+S(14)*sigma(2)+S(13)*sigma(3), ==> S(17)+S(16)*sigma(1)+S(15)*sigma(2)+S(14)*sigma(3), ==> S(18)+S(17)*sigma(1)+S(16)*sigma(2)+S(15)*sigma(3), ==> S(19)+S(18)*sigma(1)+S(17)*sigma(2)+S(16)*sigma(3), ==> S(20)+S(19)*sigma(1)+S(18)*sigma(2)+S(17)*sigma(3), ==> S(21)+S(20)*sigma(1)+S(19)*sigma(2)+S(18)*sigma(3), ==> S(22)+S(21)*sigma(1)+S(20)*sigma(2)+S(19)*sigma(3), ==> S(23)+S(22)*sigma(1)+S(21)*sigma(2)+S(20)*sigma(3), ==> S(24)+S(23)*sigma(1)+S(22)*sigma(2)+S(21)*sigma(3), ==> S(25)+S(24)*sigma(1)+S(23)*sigma(2)+S(22)*sigma(3), ==> S(26)+S(25)*sigma(1)+S(24)*sigma(2)+S(23)*sigma(3), ==> S(27)+S(26)*sigma(1)+S(25)*sigma(2)+S(24)*sigma(3), ==> S(28)+S(27)*sigma(1)+S(26)*sigma(2)+S(25)*sigma(3), ==> S(29)+S(28)*sigma(1)+S(27)*sigma(2)+S(26)*sigma(3), ==> S(30)+S(29)*sigma(1)+S(28)*sigma(2)+S(27)*sigma(3), ==> S(31)+S(30)*sigma(1)+S(29)*sigma(2)+S(28)*sigma(3), ==> sigma(1)^32+sigma(1), ==> sigma(2)^32+sigma(2), ==> sigma(3)^32+sigma(3), ==> S(2)+S(1)^2, ==> S(4)+S(2)^2, ==> S(6)+S(3)^2, ==> S(8)+S(4)^2, ==> S(10)+S(5)^2, ==> S(12)+S(6)^2, ==> S(14)+S(7)^2, ==> S(16)+S(8)^2, ==> S(18)+S(9)^2, ==> S(20)+S(10)^2, ==> S(22)+S(11)^2, ==> S(24)+S(12)^2, ==> S(26)+S(13)^2, ==> S(28)+S(14)^2, ==> S(30)+S(15)^2, ==> S(16)^2+S(1), ==> S(17)^2+S(3), ==> S(18)^2+S(5), ==> S(19)^2+S(7), ==> S(20)^2+S(9), ==> S(21)^2+S(11), ==> S(22)^2+S(13), ==> S(23)^2+S(15), ==> S(24)^2+S(17), ==> S(25)^2+S(19), ==> S(26)^2+S(21), ==> S(27)^2+S(23), ==> S(28)^2+S(25), ==> S(29)^2+S(27), ==> S(30)^2+S(29), ==> S(31)^2+S(31) //=============================== A=sysNewton(n,defset,t,q,m,tr); setring A; print(newton); // generalized Newton identities in triangular form ==> sigma(1)+S(1), ==> S(2)+sigma(1)*S(1), ==> S(3)+S(2)*sigma(1)+sigma(2)*S(1)+sigma(3), ==> S(4)+S(3)*sigma(1)+S(2)*sigma(2)+sigma(3)*S(1), ==> S(4)*sigma(1)+S(3)*sigma(2)+S(2)*sigma(3)+S(5), ==> S(6)+S(4)*sigma(2)+S(3)*sigma(3)+sigma(1)*S(5), ==> S(6)*sigma(1)+S(4)*sigma(3)+sigma(2)*S(5)+S(7), ==> S(8)+S(6)*sigma(2)+sigma(1)*S(7)+sigma(3)*S(5), ==> S(9)+S(8)*sigma(1)+S(6)*sigma(3)+sigma(2)*S(7), ==> S(10)+S(9)*sigma(1)+S(8)*sigma(2)+sigma(3)*S(7), ==> S(11)+S(10)*sigma(1)+S(9)*sigma(2)+S(8)*sigma(3), ==> S(12)+S(11)*sigma(1)+S(10)*sigma(2)+S(9)*sigma(3), ==> S(13)+S(12)*sigma(1)+S(11)*sigma(2)+S(10)*sigma(3), ==> S(14)+S(13)*sigma(1)+S(12)*sigma(2)+S(11)*sigma(3), ==> S(15)+S(14)*sigma(1)+S(13)*sigma(2)+S(12)*sigma(3), ==> S(16)+S(15)*sigma(1)+S(14)*sigma(2)+S(13)*sigma(3), ==> S(17)+S(16)*sigma(1)+S(15)*sigma(2)+S(14)*sigma(3), ==> S(18)+S(17)*sigma(1)+S(16)*sigma(2)+S(15)*sigma(3), ==> S(19)+S(18)*sigma(1)+S(17)*sigma(2)+S(16)*sigma(3), ==> S(20)+S(19)*sigma(1)+S(18)*sigma(2)+S(17)*sigma(3), ==> S(21)+S(20)*sigma(1)+S(19)*sigma(2)+S(18)*sigma(3), ==> S(22)+S(21)*sigma(1)+S(20)*sigma(2)+S(19)*sigma(3), ==> S(23)+S(22)*sigma(1)+S(21)*sigma(2)+S(20)*sigma(3), ==> S(24)+S(23)*sigma(1)+S(22)*sigma(2)+S(21)*sigma(3), ==> S(25)+S(24)*sigma(1)+S(23)*sigma(2)+S(22)*sigma(3), ==> S(26)+S(25)*sigma(1)+S(24)*sigma(2)+S(23)*sigma(3), ==> S(27)+S(26)*sigma(1)+S(25)*sigma(2)+S(24)*sigma(3), ==> S(28)+S(27)*sigma(1)+S(26)*sigma(2)+S(25)*sigma(3), ==> S(29)+S(28)*sigma(1)+S(27)*sigma(2)+S(26)*sigma(3), ==> S(30)+S(29)*sigma(1)+S(28)*sigma(2)+S(27)*sigma(3), ==> S(31)+S(30)*sigma(1)+S(29)*sigma(2)+S(28)*sigma(3), ==> sigma(1)^32+sigma(1), ==> sigma(2)^32+sigma(2), ==> sigma(3)^32+sigma(3), ==> S(2)+S(1)^2, ==> S(4)+S(2)^2, ==> S(6)+S(3)^2, ==> S(8)+S(4)^2, ==> S(10)+S(5)^2, ==> S(12)+S(6)^2, ==> S(14)+S(7)^2, ==> S(16)+S(8)^2, ==> S(18)+S(9)^2, ==> S(20)+S(10)^2, ==> S(22)+S(11)^2, ==> S(24)+S(12)^2, ==> S(26)+S(13)^2, ==> S(28)+S(14)^2, ==> S(30)+S(15)^2, ==> S(16)^2+S(1), ==> S(17)^2+S(3), ==> S(18)^2+S(5), ==> S(19)^2+S(7), ==> S(20)^2+S(9), ==> S(21)^2+S(11), ==> S(22)^2+S(13), ==> S(23)^2+S(15), ==> S(24)^2+S(17), ==> S(25)^2+S(19), ==> S(26)^2+S(21), ==> S(27)^2+S(23), ==> S(28)^2+S(25), ==> S(29)^2+S(27), ==> S(30)^2+S(29), ==> S(31)^2+S(31) ```