Is this desired:

```
>>> a = FiniteSet(S.UniversalSet, 0, 1, 2)
>>> a
{0, 1, 2, UniversalSet()}
>>> S.UniversalSet.is_subset(a)
False
```

@isuruf

I think it is wrong.

@nishnik, I guess it depends on how you look at

`UniversalSet`

`UniversalSet`

is a contradiction itself. Is the powerset of `UniversalSet`

equal to the `UniversalSet`

? By definition it should be, but cantor's argument says the cardinality of powerset is higher
I think the output given is correct.

`UniversalSet`

is not a subset of `a`

because `a`

has only 4 elements while `UniversalSet`

has infinite number of elements
Any tips for building using VIsual Studio? I ran cmake-gui, but of course I get this: Could NOT find GMP (missing: GMP_LIBRARIES GMP_INCLUDE_DIRS)

If you want the MPIR binaries, you can get it at, https://anaconda.org/conda-forge/mpir/files

That's how we build symengine on appveyor, a CI service for windows.

https://github.com/symengine/symengine/blob/master/appveyor.yml#L53-L65 these lines describe how we build MPIR

I don't have access to an OSX, so can't test it

@isuruf when we call

Does

`find_generator`

on a `UExprPoly`

, what should be the behaviour? eg. `UExprPoly(x, {{1, y}})`

or `x*y`

Does

`find_gen`

return `x`

(as it's trivially the generator) or `x, y`

both?
I think it should be the latter, to keep things as general as possible

see sympy

For eg, what if someone wants to form a

`MIntPoly`

from the same example above
Oh, ok will look into it

What about other polynomials?

It's not handled at the moment, I think it should just return the generator simply

I would do what SymPy does. It's easier that way. Normally we should follow what SymPy does, but differ from SymPy if it involves doing something inefficiently.

@isuruf

Is this a bug?

Is this a bug?

```
>>> a = Union(Interval(0, 10), FiniteSet(13))
>>> a
[0, 10] U {13}
>>> a in Interval(-1, 15)
False
>>> Interval(-1,15).contains(a)
False
```