(expr, assumptions)
Hermitian**Integer  -> !Antihermitian
        Antihermitian**Even -> !Antihermitian
        Antihermitian**Odd  -> Antihermitian
Hermitian**Integer  -> !Antihermitian
        Antihermitian**Even -> !Antihermitian
        Antihermitian**Odd  -> Antihermitian
Hermitian ** Integer - > !Antihermitian Antihermitian ** Even - > !Antihermitian Antihermitian ** Odd - > Antihermitian
def Pow(expr, assumptions):
        """
        Hermitian**Integer  -> !Antihermitian
        Antihermitian**Even -> !Antihermitian
        Antihermitian**Odd  -> Antihermitian
        """
        if expr.is_number:
            return AskImaginaryHandler._number(expr, assumptions)
        if ask(Q.hermitian(expr.base), assumptions):
            if ask(Q.integer(expr.exp), assumptions):
                return False
        elif ask(Q.antihermitian(expr.base), assumptions):
            if ask(Q.even(expr.exp), assumptions):
                return False
            elif ask(Q.odd(expr.exp), assumptions):
                return True
def Pow ( expr , assumptions ) : if expr . is_number : return AskImaginaryHandler . _number ( expr , assumptions ) if ask ( Q . hermitian ( expr . base ) , assumptions ) : if ask ( Q . integer ( expr . exp ) , assumptions ) : return False elif ask ( Q . antihermitian ( expr . base ) , assumptions ) : if ask ( Q . even ( expr . exp ) , assumptions ) : return False elif ask ( Q . odd ( expr . exp ) , assumptions ) : return True