'Check for logical equivalence.
Pass the expression (self <-> other) to the theorem prover.
If the prover says it is valid, then the self and other are equal.
:param other: an ``Expression`` to check equality against
:param prover: a ``nltk.inference.api.Prover``'

def equiv(self, other, prover=None):

    assert isinstance(other, Expression), (u'%s    is    not    an    Expression' % other)
    if (prover is None):
        from nltk.inference import Prover9
        prover = Prover9()
    bicond = IffExpression(self.simplify(), other.simplify())
    return prover.prove(bicond)
