'Free symbols of a polynomial expression.
Examples
>>> from sympy import Poly
>>> from sympy.abc import x, y, z
>>> Poly(x**2 + 1).free_symbols
{x}
>>> Poly(x**2 + y).free_symbols
{x, y}
>>> Poly(x**2 + y, x).free_symbols
{x, y}
>>> Poly(x**2 + y, x, z).free_symbols
{x, y}'

@property
def free_symbols(self):

    symbols = set()
    gens = self.gens
    for i in range(len(gens)):
        for monom in self.monoms():
            if monom[i]:
                symbols |= gens[i].free_symbols
                break
    return (symbols | self.free_symbols_in_domain)
