3. Allows us to add morphisms in the obvious way.
+ 4. Allows us to invert morphisms.
+
If this seems a bit heavyweight, it is. I would have been happy to
use a the ring morphism that underlies the finite-dimensional
algebra morphism, but they don't seem to be callable on elements of
- our EJA, and you can't add them.
+ our EJA, and you can't add/invert them.
"""
def __add__(self, other):
"""
Add two EJA morphisms in the obvious way.
- EXAMPLES:
+ EXAMPLES::
sage: J = RealSymmetricEJA(3)
sage: x = J.zero()
- sage: y = J.zero()
+ sage: y = J.one()
sage: x.operator() + y.operator()
Morphism from Euclidean Jordan algebra of degree 6 over Rational
Field to Euclidean Jordan algebra of degree 6 over Rational Field
given by matrix
- [0 0 0 0 0 0]
- [0 0 0 0 0 0]
- [0 0 0 0 0 0]
- [0 0 0 0 0 0]
- [0 0 0 0 0 0]
- [0 0 0 0 0 0]
+ [1 0 0 0 0 0]
+ [0 1 0 0 0 0]
+ [0 0 1 0 0 0]
+ [0 0 0 1 0 0]
+ [0 0 0 0 1 0]
+ [0 0 0 0 0 1]
+
+ TESTS::
+
+ sage: set_random_seed()
+ sage: J = random_eja()
+ sage: x = J.random_element()
+ sage: y = J.random_element()
+ sage: (x.operator() + y.operator()) in J.Hom(J)
+ True
"""
P = self.parent()