combinatoriallogic