'Create a new instance of ConditionalFiniteDomain class'

def __new__(cls, domain, condition):

    if (condition is True):
        return domain
    cond = rv_subs(condition)
    if (not cond.free_symbols.issubset(domain.free_symbols)):
        raise ValueError((('Condition    "%s"    contains    foreign    symbols    \n%s.\n' % (condition, tuple((cond.free_symbols - domain.free_symbols)))) + 'Will    be    unable    to    iterate    using    this    condition'))
    return Basic.__new__(cls, domain, cond)
