Calculating the smallest control function (conjuntive normal form)
You are missing that X = X v X. You can use the same term multiple times to produce different factors. For example you combine NOT(S3) &amp; S2 &amp; S1 with S3 &amp; S2 &amp; S1 to get S2 &amp; S1. But also you combine S3 &amp; NOT(S2) &amp; S1 with S3 &amp; S2 &amp; S1 to get S3 &amp; S1. Last you combine S3 &amp; S2 &amp; NOT(S1) with S3 &amp; S2 &amp; S1 to get S3 &amp; S2.

Easier than manipulating the function directly to get the conjuntive normal form though is using a Karnaugh map. The multiple use of S3 &amp; S2 &amp; S1 coresponds with overlapping regions in the map.