Hi, the following shows the steps needed to define the operator (note that I didn't implement the full conditional part of your definition). Also the equality comparisons might fail with floats.
def eig_vecmat(A):
lambdap = eig_plus(A)
lambdan = eig_minus(A)
a = A[0,0]
b = A[0,1]
c = A[1,0]
d = A[1,1]
return conditional(ne(c, 0),
as_matrix(((lambdap-d,lambdan-d), (c,c))),
conditional(ne(b, 0),
as_matrix(((b,b), (lambdap-a,lambdan-a))),
Identity(2)))