from sympy import symbols, sin, srepr
x, y, z = symbols('x y z')
z = x * y
sin_z = sin(z)
expr = sin_z / 2
print(expr)
print(srepr(expr))
from sympy import preorder_traversal
for arg in preorder_traversal(expr):
print(arg)
from sympy import postorder_traversal
for arg in postorder_traversal(expr):
print(arg)
from sympy import MatrixSymbol, Matrix
A = MatrixSymbol('A', 4, 4)
B = MatrixSymbol('B', 4, 4)
print(A)
print(srepr(A))
C = A + B
print(C)
print(srepr(C))
A1 = A[:2, :]
A2 = A[2:, :]
print(A1)
print(srepr(A1))
A_ = Matrix(A1).row_join(Matrix(A2))
print(A_)