(expr, assumptions)
return test_closed_group(expr, assumptions, Q.integer)
Integer + Integer       -> Integer
        Integer + !Integer      -> !Integer
        !Integer + !Integer -> ?
Integer + Integer       -> Integer
        Integer + !Integer      -> !Integer
        !Integer + !Integer -> ?
Integer + Integer - > Integer Integer + !Integer - > !Integer !Integer + !Integer - > ?
def Add(expr, assumptions):
        """
        Integer + Integer       -> Integer
        Integer + !Integer      -> !Integer
        !Integer + !Integer -> ?
        """
        if expr.is_number:
            return AskIntegerHandler._number(expr, assumptions)
        return test_closed_group(expr, assumptions, Q.integer)
def Add ( expr , assumptions ) : if expr . is_number : return AskIntegerHandler . _number ( expr , assumptions ) return test_closed_group ( expr , assumptions , Q . integer )