| LIB "decodegb.lib";
intvec vopt = option(get);
list l=FLpreprocess(3,1,11,2,"");
def r=l[1];
setring r;
int s_work=l[2];
//the check matrix of [11,6,5] ternary code
matrix h[5][11]=1,0,0,0,0,1,1,1,-1,-1,0,
0,1,0,0,0,1,1,-1,1,0,-1,
0,0,1,0,0,1,-1,1,0,1,-1,
0,0,0,1,0,1,-1,0,1,-1,1,
0,0,0,0,1,1,0,-1,-1,1,1;
matrix g=dual_code(h);
matrix x[1][6];
matrix y[1][11]=encode(x,g);
//disturb with 2 errors
matrix rec[1][11]=errorInsert(y,list(2,4),list(1,-1));
//the Fitzgerald-Lax system
ideal sys=sysFL(h,rec,2,1,s_work);
print(sys);
==> x1(3)^3-x1(3),
==> x1(2)^3-x1(2),
==> x1(3)^2*x1(1)-x1(3)*x1(1),
==> x1(2)*x1(1),
==> x1(1)^2-x1(1),
==> x1(6)^3-x1(6),
==> x1(5)^3-x1(5),
==> x1(6)^2*x1(4)-x1(6)*x1(4),
==> x1(5)*x1(4),
==> x1(4)^2-x1(4),
==> x1(1)^3-x1(1),
==> x1(4)^3-x1(4),
==> e(1)^2-1,
==> e(2)^2-1,
==> -e(2)*x1(6)^2+e(2)*x1(6)*x1(5)^2-e(2)*x1(6)*x1(4)+e(2)*x1(5)^2+e(2)*x1(5)\
+e(2)*x1(4)+e(2)-e(1)*x1(3)^2+e(1)*x1(3)*x1(2)^2-e(1)*x1(3)*x1(1)+e(1)*x1\
(2)^2+e(1)*x1(2)+e(1)*x1(1)+e(1),
==> -e(2)*x1(6)^2+e(2)*x1(6)*x1(5)^2+e(2)*x1(6)*x1(5)+e(2)*x1(6)*x1(4)-e(2)*x\
1(6)-e(2)*x1(5)^2+e(2)*x1(5)-e(1)*x1(3)^2+e(1)*x1(3)*x1(2)^2+e(1)*x1(3)*x\
1(2)+e(1)*x1(3)*x1(1)-e(1)*x1(3)-e(1)*x1(2)^2+e(1)*x1(2)-1,
==> -e(2)*x1(6)^2*x1(5)^2+e(2)*x1(6)^2*x1(5)-e(2)*x1(6)^2-e(2)*x1(6)*x1(5)^2+\
e(2)*x1(6)*x1(5)+e(2)*x1(6)*x1(4)+e(2)*x1(6)+e(2)*x1(5)^2-e(2)*x1(5)+e(2)\
*x1(4)-e(1)*x1(3)^2*x1(2)^2+e(1)*x1(3)^2*x1(2)-e(1)*x1(3)^2-e(1)*x1(3)*x1\
(2)^2+e(1)*x1(3)*x1(2)+e(1)*x1(3)*x1(1)+e(1)*x1(3)+e(1)*x1(2)^2-e(1)*x1(2\
)+e(1)*x1(1),
==> -e(2)*x1(6)^2*x1(5)^2-e(2)*x1(6)^2*x1(5)+e(2)*x1(6)*x1(5)^2-e(2)*x1(6)*x1\
(4)+e(2)*x1(5)-e(2)*x1(4)-e(1)*x1(3)^2*x1(2)^2-e(1)*x1(3)^2*x1(2)+e(1)*x1\
(3)*x1(2)^2-e(1)*x1(3)*x1(1)+e(1)*x1(2)-e(1)*x1(1)+1,
==> e(2)*x1(6)^2*x1(5)+e(2)*x1(4)+e(1)*x1(3)^2*x1(2)+e(1)*x1(1)
option(redSB);
ideal red_sys=std(sys);
red_sys;
==> red_sys[1]=x1(1)
==> red_sys[2]=x1(2)^2-x1(2)
==> red_sys[3]=x1(3)+x1(2)-1
==> red_sys[4]=e(1)-x1(2)-1
==> red_sys[5]=x1(4)
==> red_sys[6]=x1(5)+x1(2)-1
==> red_sys[7]=x1(6)-x1(2)
==> red_sys[8]=e(2)+x1(2)+1
// read the solutions from this redGB
// the points are (0,0,1) and (0,1,0) with error values 1 and -1 resp.
// use list points to find error positions;
points;
==> [1]:
==> _[1,1]=0
==> _[2,1]=0
==> _[3,1]=0
==> [2]:
==> _[1,1]=0
==> _[2,1]=0
==> _[3,1]=1
==> [3]:
==> _[1,1]=0
==> _[2,1]=0
==> _[3,1]=-1
==> [4]:
==> _[1,1]=0
==> _[2,1]=1
==> _[3,1]=0
==> [5]:
==> _[1,1]=0
==> _[2,1]=1
==> _[3,1]=1
==> [6]:
==> _[1,1]=0
==> _[2,1]=1
==> _[3,1]=-1
==> [7]:
==> _[1,1]=0
==> _[2,1]=-1
==> _[3,1]=0
==> [8]:
==> _[1,1]=0
==> _[2,1]=-1
==> _[3,1]=1
==> [9]:
==> _[1,1]=0
==> _[2,1]=-1
==> _[3,1]=-1
==> [10]:
==> _[1,1]=1
==> _[2,1]=0
==> _[3,1]=0
==> [11]:
==> _[1,1]=1
==> _[2,1]=0
==> _[3,1]=1
==> [12]:
==> _[1,1]=1
==> _[2,1]=0
==> _[3,1]=-1
==> [13]:
==> _[1,1]=1
==> _[2,1]=1
==> _[3,1]=0
==> [14]:
==> _[1,1]=1
==> _[2,1]=1
==> _[3,1]=1
==> [15]:
==> _[1,1]=1
==> _[2,1]=1
==> _[3,1]=-1
==> [16]:
==> _[1,1]=1
==> _[2,1]=-1
==> _[3,1]=0
==> [17]:
==> _[1,1]=1
==> _[2,1]=-1
==> _[3,1]=1
==> [18]:
==> _[1,1]=1
==> _[2,1]=-1
==> _[3,1]=-1
==> [19]:
==> _[1,1]=-1
==> _[2,1]=0
==> _[3,1]=0
==> [20]:
==> _[1,1]=-1
==> _[2,1]=0
==> _[3,1]=1
==> [21]:
==> _[1,1]=-1
==> _[2,1]=0
==> _[3,1]=-1
==> [22]:
==> _[1,1]=-1
==> _[2,1]=1
==> _[3,1]=0
==> [23]:
==> _[1,1]=-1
==> _[2,1]=1
==> _[3,1]=1
==> [24]:
==> _[1,1]=-1
==> _[2,1]=1
==> _[3,1]=-1
==> [25]:
==> _[1,1]=-1
==> _[2,1]=-1
==> _[3,1]=0
==> [26]:
==> _[1,1]=-1
==> _[2,1]=-1
==> _[3,1]=1
==> [27]:
==> _[1,1]=-1
==> _[2,1]=-1
==> _[3,1]=-1
option(set,vopt);
|