+def is_lyapunov_like_on(L,K):
+ r"""
+ Determine whether or not ``L`` is Lyapunov-like on ``K``.
+
+ We say that ``L`` is Lyapunov-like on a closed convex cone ``K`` if
+ `\left\langle L\left\lparenx\right\rparen,s\right\rangle = 0` for
+ all pairs `\left\langle x,s \right\rangle` in the complementarity
+ set of ``K``. This property need only be checked for generators of
+ ``K`` and its dual.
+
+ An operator is Lyapunov-like on ``K`` if and only if both the
+ operator itself and its negation are cross-positive on ``K``.
+
+ To reliably check whether or not ``L`` is Lyapunov-like, its base
+ ring must be either exact (for example, the rationals) or ``SR``. An
+ exact ring is more reliable, but in some cases a matrix whose
+ entries contain symbolic constants like ``e`` and ``pi`` will work.
+
+ INPUT:
+
+ - ``L`` -- A matrix over either an exact ring or ``SR``.
+
+ - ``K`` -- A polyhedral closed convex cone.
+
+ OUTPUT:
+
+ If the base ring of ``L`` is exact, then ``True`` will be returned if
+ and only if ``L`` is Lyapunov-like on ``K``.
+
+ If the base ring of ``L`` is ``SR``, then the situation is more
+ complicated:
+
+ - ``True`` will be returned if it can be proven that ``L``
+ is Lyapunov-like on ``K``.
+ - ``False`` will be returned if it can be proven that ``L``
+ is not Lyapunov-like on ``K``.
+ - ``False`` will also be returned if we can't decide; specifically
+ if we arrive at a symbolic inequality that cannot be resolved.
+
+ .. SEEALSO::
+
+ :func:`is_positive_on`,
+ :func:`is_cross_positive_on`,
+ :func:`is_Z_operator_on`