code: def is_monotonic(expression, interval=S.Reals, symbol=None):
      """
      Return whether the function is monotonic in the given interval.
  
      Parameters
      ==========
  
      expression : Expr
          The target function which is being checked.
      interval : Set, optional
          The range of values in which we are testing (defaults to set of
          all real numbers).
      symbol : Symbol, optional
          The symbol present in expression which gets varied over the given range.
  
      Returns
      =======
  
      Boolean
          True if ``expression`` is monotonic in the given ``interval``,
          False otherwise.
  
      Raises
      ======
  
      NotImplementedError
          Monotonicity check has not been implemented for the queried function.
  
      Examples
      ========
  
      >>> from sympy import is_monotonic
      >>> from sympy.abc import x, y
      >>> from sympy import S, Interval, oo
      >>> is_monotonic(1/(x**2 - 3*x), Interval.open(S(3)/2, 3))
      True
      >>> is_monotonic(1/(x**2 - 3*x), Interval.open(1.5, 3))
      True
      >>> is_monotonic(1/(x**2 - 3*x), Interval.Lopen(3, oo))
      True
      >>> is_monotonic(x**3 - 3*x**2 + 4*x, S.Reals)
      True
      >>> is_monotonic(-x**2, S.Reals)
      False
      >>> is_monotonic(x**2 + y + 1, Interval(1, 2), x)
      True
  
      """
      from sympy.solvers.solveset import solveset
  
      expression = sympify(expression)
  
      free = expression.free_symbols
      if symbol is None and len(free) > 1:
          raise NotImplementedError(
              "is_monotonic has not yet been implemented"
              " for all multivariate expressions."
          )
  
      variable = symbol or (free.pop() if free else Symbol("x"))
      turning_points = solveset(
          expression.diff(variable), variable, interval
      )
      return interval.intersection(turning_points) is S.EmptySet
  
file_path: sympy/sympy/calculus/singularities.py
imports: from sympy.core.power import Pow
  from sympy.core.singleton import S
  from sympy.core.symbol import Symbol
  from sympy.core.sympify import sympify
  from sympy.functions.elementary.exponential import log
  from sympy.functions.elementary.trigonometric import sec, csc, cot, tan, cos
  from sympy.functions.elementary.hyperbolic import sech, csch, coth, tanh, cosh, asech, acsch, atanh, acoth
  from sympy.utilities.misc import filldedent
label_desc: Use image node_id 7 for calling a global function with example usage: is_monotonic(expression, interval, symbol) and returns: unknown