#NEWLINE# @ staticmethod #NEWLINE# def reduce( A , B ) : #NEWLINE# #INDENT# '\n        Simplify a :class:`Complement`.\n\n        ' #NEWLINE# if ( ( B == S . UniversalSet ) or A . is_subset ( B ) ) : #NEWLINE# #INDENT# return EmptySet ( ) #NEWLINE# #UNINDENT# if isinstance ( result , Union ) : #NEWLINE# #INDENT# return Intersection ( ( s . complement ( A ) for s in B . args ) ) #NEWLINE# #UNINDENT# result = B . _complement ( A ) #NEWLINE# if ( result != None ) : #NEWLINE# #INDENT# return result #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# return Complement ( A , B , evaluate = False )