'Upper triangular matrix predicate.
A matrix ``M`` is called upper triangular matrix if :math:`M_{ij}=0`
for :math:`i<j`.
Examples
>>> from sympy import Q, ask, ZeroMatrix, Identity
>>> ask(Q.upper_triangular(Identity(3)))
True
>>> ask(Q.upper_triangular(ZeroMatrix(3, 3)))
True
References
.. [1] http://mathworld.wolfram.com/UpperTriangularMatrix.html'

@predicate_memo
def upper_triangular(self):

    return Predicate('upper_triangular')
