def __init__(self): Homomorphism.__init__(self,CD,CD) self.CD = CD self.newMorphisms = [F.compose(G,dry = True)] self.newObjects = [] self.newProperties = [] self.extension = extension self.partialInverse = extension
from ExtensionRequest import ExtensionRequest from Diagram import Object,Morphism,Diagram from Homomorphism.base import Homomorphism from base import Rule from Rule.abelianProperty import isMorphismZero CD = Diagram() A = Object(CD,"A") B = Object(CD,"B") C = Object(CD,"C") F = Morphism(B,C,"F") G = Morphism(A,B,"G") #A -> B -> C extension = Homomorphism(CD,CD) extension.set_node_image(A, A) extension.set_node_image(B, B) extension.set_node_image(C, C) extension.set_edge_image(F, F) extension.set_edge_image(G, G) class ComposeRuleClass(Rule): name = "ComposeRule" def __init__(self): Homomorphism.__init__(self,CD,CD) self.CD = CD self.newMorphisms = [F.compose(G,dry = True)] self.newObjects = [] self.newProperties = [] self.extension = extension
def get_edge_image(self,item): res = Homomorphism.get_edge_image(self,item) if res is not None: return res if isinstance(item,Identity): return getIdentity(self.edgeMap[item.source])