'Triangular matrix predicate.
``Q.triangular(X)`` is true if ``X`` is one that is either lower
triangular or upper triangular.
Examples
>>> from sympy import Q, ask, MatrixSymbol
>>> X = MatrixSymbol(\'X\', 4, 4)
>>> ask(Q.triangular(X), Q.upper_triangular(X))
True
>>> ask(Q.triangular(X), Q.lower_triangular(X))
True
References
.. [1] https://en.wikipedia.org/wiki/Triangular_matrix'

@predicate_memo
def triangular(self):

    return Predicate('triangular')
