Pattern recognition:
- Boolean variables: each topping is either included or not
- Constraints: "at least one of these two" = disjunction
- Two preferences per person = exactly literals per clause
This is textbook -SAT.
Translation:
- "I want " = literal
- "I don't want " = literal
- "At least one of or " = clause
Build the implication graph and check satisfiability.