(self, formula, args, **kwargs)
return self.mgr.And(r1,r2)
a <-> b =  (!a | b) & (!b | a) = !( a & !b ) & !(b & !a)
a <-> b =  (!a | b) & (!b | a) = !( a & !b ) & !(b & !a)
a < - > b = ( !a | b ) & ( !b | a ) = ! ( a & !b ) & ! ( b & !a )
def walk_iff(self, formula, args, **kwargs):
        """ a <-> b =  (!a | b) & (!b | a) = !( a & !b ) & !(b & !a)"""
        lhs, rhs = args
        r1 = self.mgr.Not(self.mgr.And(lhs, self.mgr.Not(rhs)))
        r2 = self.mgr.Not(self.mgr.And(rhs, self.mgr.Not(lhs)))
        return self.mgr.And(r1,r2)
def walk_iff ( self , formula , args , * * kwargs ) : lhs , rhs = args r1 = self . mgr . Not ( self . mgr . And ( lhs , self . mgr . Not ( rhs ) ) ) r2 = self . mgr . Not ( self . mgr . And ( rhs , self . mgr . Not ( lhs ) ) ) return self . mgr . And ( r1 , r2 )