Pick out tokens
Remove superfluous nesting, promote like terms, pick out AND and NOT and OR, distribute negation
cartesian product of disjunctive terms, as an OR() of AND()'s