def indexify(expr): """ Given a SymPy expression, return a new SymPy expression in which all AbstractFunction objects have been converted into Indexed objects. """ mapper = {} for i in retrieve_functions(expr): try: if i.is_AbstractFunction: mapper[i] = i.indexify() except AttributeError: pass return expr.xreplace(mapper)