Ejemplo n.º 1
0
    def conclude(self,CD):
        A = CD["A"]
        B = CD["B"]
        AxB = Object(CD,"AxB")
        AxB.namescheme=('{}x{}',('A','B')) #this should be a pair (format string,tuple of names in chardiag), names from main diagram will be substitued when rule is implemented
        AxB.latexscheme=('{} \\times {}',('A','B'))
        pi1 = Morphism(AxB,A,"pi1")
        pi2 = Morphism(AxB,B,"pi2")
        pi1.latexscheme=('',())                  #suppress morphism name display
        pi2.latexscheme=('',())                  #suppress morphism name display

        ProductProperty(pi1,pi2)
Ejemplo n.º 2
0
def test2():        
    D=Diagram()
    P1=Object(D,'P1')
    P1.latex='P_1'
    P2=Object(D,'P2')
    P1.latex='P_1'

    id1=Identity(P1)
    id2=Identity(P2)
    
    P1xP2=Object(D,'P1xP2')
    P1xP2.latex="P_1 \oplus P_2"

    idprod=Identity(P1xP2)
    
    i1=Morphism(P1,P1xP2,'i1')
    i2=Morphism(P2,P1xP2,'i2')
    CoProductProperty(i1,i2)
    
    B=Object(D,'B')
    C=Object(D,'C')
    pi=Morphism(B,C)
    f=Morphism(P1xP2,C)
    Epimorphism(pi)
    pi.latex=r"\pi"
    f.latex=r"\varphi"
    Projective(P1)
    Projective(P2)

    P1.gridpos=(0,0)
    P2.gridpos=(0,2)
    P1xP2.gridpos=(0,1)
    B.gridpos=(1,1)
    C.gridpos=(2,1)
    P1.latex='P_1'
    P2.latex='P_2'
    P1xP2.latex='P_1 \oplus P_2'
    B.latex='B'
    C.latex='C'

    SRM = SimpleRuleMaster(D,maxMorphisms=1)
    diagSequence=[]
    while(True):
        result=SRM(numberOfExtensions=10,verbose=False,printlatex=True)
        if (result==False):
            break
        diagSequence.append(result)
    print processDiagSequence(diagSequence)
    return D
Ejemplo n.º 3
0
def test():
    '''tests projective property'''
    D=Diagram()
    P=Object(D,'P')
    B=Object(D,'B')
    C=Object(D,'C')
    pi=Morphism(B,C)
    f=Morphism(P,C)
    Epimorphism(pi)
    pi.latex=r"\pi"
    f.latex=r"\varphi"
    Projective(P)

    f=Morphism(P,B)
    SRM = SimpleRuleMaster(D)
    for i in xrange(10):
        SRM(verbose=True)
    return D
Ejemplo n.º 4
0
def test():
    '''constructs and displays all products of two objects'''
    D = Diagram()
    X = Object(D,"X")
    Y = Object(D,"Y")
    f1 = Morphism(X,Y,"f1")
    f1.name="f1"
    f1.latex=r"\phi"

    rule=ExistProduct
    homs=HomomorphismIterator(rule.CD,D)
    ers=[]
    for hom in homs:
        ers.append(ExtensionRequest(rule,hom))
    for ER in ers:
        ER.implement()
    
    
    return D
Ejemplo n.º 5
0
 def conclude(self,D):
     phi = Morphism(D["P"],D["N"],"phi")
     phi.namescheme=("{} x {}",("f","g"))
     phi.latexscheme=("{} \\oplus {}",("f","g"))
     Commute(D["f"],phi*D["i1"])
     Commute(D["g"],phi*D["i2"])
Ejemplo n.º 6
0
 def conclude(self,D):
     ftilde=Morphism(D['B'],D['I'])
     ftilde.namescheme=("{}tilde",("f"))
     ftilde.latexscheme=("\\tilde\{{}\}",("f"))
     Commute(D["f"],ftilde*D['iota'])