function b = is_jtriv(S) % is the monoid S J-trivial? % a monoid is J-trivial iff % for all a,b in S, SaS = SbS implies a=b b = 1; [n,n] = size(S); for i=1:n for j=i+1:n Si = Sab(S,i); Sj = Sab(S,j); b = ~seteq(Si,Sj); % we can't have i=j, so Si should not be equal to Sj if ~b, %keyboard break, end end if ~b, break, end end return function Si = Sab(S,a) [n,n] = size(S); Si = []; for i=1:n for j=1:n Si(end+1) = S(S(i,a),j); end end return