'Symmetric matrix predicate.
``Q.symmetric(x)`` is true iff ``x`` is a square matrix and is equal to
its transpose. Every square diagonal matrix is a symmetric matrix.
Examples
>>> from sympy import Q, ask, MatrixSymbol
>>> X = MatrixSymbol(\'X\', 2, 2)
>>> Y = MatrixSymbol(\'Y\', 2, 3)
>>> Z = MatrixSymbol(\'Z\', 2, 2)
>>> ask(Q.symmetric(X*Z), Q.symmetric(X) & Q.symmetric(Z))
True
>>> ask(Q.symmetric(X + Z), Q.symmetric(X) & Q.symmetric(Z))
True
>>> ask(Q.symmetric(Y))
False
References
.. [1] https://en.wikipedia.org/wiki/Symmetric_matrix'

@predicate_memo
def symmetric(self):

    return Predicate('symmetric')
