'This method returns the symbols in the object, excluding those
that take on a specific value (i.e. the dummy symbols).
Examples
>>> from sympy import Sum
>>> from sympy.abc import x, y
>>> Sum(x, (x, y, 1)).free_symbols
{y}'

@property
def free_symbols(self):

    (function, limits) = (self.function, self.limits)
    isyms = function.free_symbols
    for xab in limits:
        if (len(xab) == 1):
            isyms.add(xab[0])
            continue
        if (xab[0] in isyms):
            isyms.remove(xab[0])
        for i in xab[1:]:
            isyms.update(i.free_symbols)
    return isyms
