We've been working on a new feature for Octeract Engine, namely to automatically extract SOS structure from a model and then exploit it.
While the literature is quite rich on what to do with SOS once we have them, I couldn't find any work on how to algorithmically detect the structure. So far we just home-brewed the detection algorithm and it works pretty well, but I was curious whether there's some theoretical work on the subject out there.
I'm aware that such detection will have bad theoretical complexity, however this is not an issue for us, so if you are aware of a bad complexity algorithm do post an answer - the engine uses Octeract Reformulator technology so we can easily detect abstract mathematical structure even in very large problems with or without set notation.