'Returns a 2-tuple of sets of morphisms between objects A and
B: one set of morphisms listed as premises, and the other set
of morphisms listed as conclusions.
Examples
>>> from sympy.categories import Object, NamedMorphism, Diagram
>>> from sympy import pretty
>>> A = Object("A")
>>> B = Object("B")
>>> C = Object("C")
>>> f = NamedMorphism(A, B, "f")
>>> g = NamedMorphism(B, C, "g")
>>> d = Diagram([f, g], {g * f: "unique"})
>>> print(pretty(d.hom(A, C), use_unicode=False))
({g*f:A-->C}, {g*f:A-->C})
See Also
Object, Morphism'

def hom(self, A, B):

    premises = EmptySet()
    conclusions = EmptySet()
    for morphism in self.premises.keys():
        if ((morphism.domain == A) and (morphism.codomain == B)):
            premises |= FiniteSet(morphism)
    for morphism in self.conclusions.keys():
        if ((morphism.domain == A) and (morphism.codomain == B)):
            conclusions |= FiniteSet(morphism)
    return (premises, conclusions)
