code: def pde_separate_mul(eq, fun, sep):
      """
      Helper function for searching multiplicative separable solutions.
  
      Consider an equation of two independent variables x, y and a dependent
      variable w, we look for the product of two functions depending on different
      arguments:
  
      `w(x, y, z) = X(x)*u(y, z)`
  
      Examples
      ========
  
      >>> from sympy import Function, Eq, pde_separate_mul, Derivative as D
      >>> from sympy.abc import x, y
      >>> u, X, Y = map(Function, 'uXY')
  
      >>> eq = Eq(D(u(x, y), x, 2), D(u(x, y), y, 2))
      >>> pde_separate_mul(eq, u(x, y), [X(x), Y(y)])
      [Derivative(X(x), (x, 2))/X(x), Derivative(Y(y), (y, 2))/Y(y)]
  
      """
      return pde_separate(eq, fun, sep, strategy="mul")
  
imports: from functools import reduce
  from itertools import combinations_with_replacement
  from sympy.simplify import simplify
  from sympy.core import Add, S
  from sympy.core.function import Function, expand, AppliedUndef, Subs
  from sympy.core.relational import Equality, Eq
  from sympy.core.symbol import Symbol, Wild, symbols
  from sympy.functions import exp
  from sympy.integrals.integrals import Integral, integrate
  from sympy.utilities.iterables import has_dups, is_sequence
  from sympy.utilities.misc import filldedent
  from sympy.solvers.deutils import _preprocess, ode_order, _desolve
  from sympy.solvers.solvers import solve
  from sympy.simplify.radsimp import collect
  import operator
label_desc: Use image node_id 12 for calling a global function with example usage: pde_separate_mul(eq, fun, sep) and returns: pde_separate