Set assumptions for TypedSymbol/cast_func/IntegerFunctionTwoArgsMixIn the SymPy way
After having a nearly week long discussion on assumptions in my SymPy PR, I got some idea of how the assumptions in SymPy are working.
It's interesting that you can use
Function.__new__(cls, integer=True) for
Function('f', interger=True) but not for subclassese of
Now things like
(2*f.shape).is_integer are working.