I got annoyed setting up methods for Boolean expressions and decided I would rather have sets predefined and ready to do whatever logic gate I want with them.
This is a Fan defined and displayed in Unity. It's an psuedo-hash table so I can use it in Unity.
List<string> jumpkicking = new List<string>{"airbourne","attacking"}
fan.And() // returns false
fan.Or() // returns true
fan.Subset(jumpkicking).And() // returns true
fan.Subset(jumpkicking).Or() // returns true
fan.Subset(jumpkicking).XOr() // returns false
fan.Subset(jumpkicking).XOne() // returns false