@staticmethod
    def Mul(expr, assumptions):
        if expr.is_number:
            return AskImaginaryHandler._number(expr, assumptions)
        result = False
        reals = 0
        for arg in expr.args:
            if ask(Q.imaginary(arg), assumptions):
                result = result ^ True
            elif not ask(Q.real(arg), assumptions):
                break
        else:
            if reals == len(expr.args):
                return False
            return result
Real*Imaginary      -> Imaginary
dataset/ETHPy150Open sympy/sympy/sympy/assumptions/handlers/sets.py/AskImaginaryHandler.Mul