As you see, I did a finite semigroup and then try to find its possible ideals in a very basic way (with the hand of a friend):
> f:=FreeSemigroup("a","b");;
a:=f.1;; b:=f.2;;
s:=f/[[a^3,a],[b^2,a^2],[b*a,a*b^3]];;
e:=Elements(s);;
w1:=List([1..Size(e)],i->Elements(SemigroupIdealByGenerators(s,[e[i]])));;
w2:=DuplicateFreeList(w1);;
w3 := Combinations(w2);;
for i in [1..Size(w3)] do
w3[i] := DuplicateFreeList(Flat(w3[i]));;
od;;
w3 := DuplicateFreeList(w3);
> [ [ ], [ b*a*b, b, b^2, b*a, b*a^2 ], [ a, a^2, a*b, a^2*b ] ]
Do you think that above codes suffice to make them visible appropriately? Thanks for your attention!
A bit of theory, for finite semigroups:
So, if you know the $\mathscr{D}$-classes of a finite semigroup, and the partial order $\leq_{\mathscr{D}}$, then you know everything about the ideals of the semigroup, and how they are interrelated.
In GAP, you can do:
you will see that your semigroup has two $\mathscr{D}$-classes and hence two ideals. If you have the Semigroups package, then you can also do:
and obtain the following picture of the $\mathscr{D}$-classes and their partial order:
You can also see that your semigroups is a copy of the direct product of the cyclic group of order 2 with itself, with an additional non-regular element on the top. The ideals are: the whole semigroup, and the group $C_2\times C_2$.