Hi,

I'm currently writing a programme for synchronising automatas, its creates an array and adds words or matrices to the array that aren't already in. I am currently getting an error when i try and run my procedure though and i'm unsure of the problem, any help would be appreciated, here is my code so far.

Thanks!

proc_cerny1:=proc(A::Matrix,B::Matrix,C::Vector[row],N)

local x, S, i, j, T, R, y, found;

x:=2^N;

S:=Array(0..(x-1));

S[0]:=C;

i:=0;

j:=1;

found:=false;

while (i<(x-1) and i<>j) do

T:=S[i].A;

for y from 0 to j do

if LinearAlgebra:-Equal(S[y],T) then

found:=true;

if (found=false) then

S[j]:=T;

j:=j+1;

end if:

end if:

od:

R:=S[i].B;

for y from 0 to j do

if LinearAlgebra:-Equal(S[y],T) then

found:=true;

if (found=false) then

S[j]:=R;

j:=j+1;

i:=i+1;

end if:

end if:

od:

od:

print(S);

end proc:

The error i'm getting is when i input this:

proc_cerny1(Matrix([[1,0,0],[1,0,0],[1,0,0]]),Matrix([[0,1,0],[0,0,1],[0,0,1]]),Vector(1..3,1,orientation=row),3);

and the error is:

Error, (in LinearAlgebra:-Equal) invalid input: LinearAlgebra:-Equal expects its 1st argument, X, to be of type {Matrix, Vector} but received 0