updated mpost for the best
This commit is contained in:
parent
556ac267fb
commit
26c58f5509
1 changed files with 75 additions and 66 deletions
|
@ -141,9 +141,9 @@ From this graph we can conclude without any ambiguity that:
|
||||||
|
|
||||||
\\[ob(C)=\\{A,B,C\\}\\]
|
\\[ob(C)=\\{A,B,C\\}\\]
|
||||||
and
|
and
|
||||||
\\[\hom(C)=\\{f,g,h,idA,idB,idC\\}\\]
|
\\[\hom(C)=\\{f,g,h,id_A,id_B,id_C\\}\\]
|
||||||
|
|
||||||
Instantaneously, we understand that we can get rid of all \\(idX\\) arrows.
|
Instantaneously, we understand that we can get rid of all \\(id_i\\) arrows.
|
||||||
|
|
||||||
But in reality, we lack an important information.
|
But in reality, we lack an important information.
|
||||||
What is \\(∘\\)?
|
What is \\(∘\\)?
|
||||||
|
@ -182,77 +182,86 @@ label.rt(btex $h = g \circ f$ etex, .5[z5,z6]);
|
||||||
</mpost>
|
</mpost>
|
||||||
|
|
||||||
Now we have a complete representation.
|
Now we have a complete representation.
|
||||||
We don't have to represent \\(idX\\), we know there are there.
|
We don't have to represent \\(id_i\\), we know there are there.
|
||||||
And we also don't have to represent composition implying \\(idX\\) morphisms.
|
And we also don't have to represent composition implying \\(id_i\\) morphisms.
|
||||||
But, even this little graph look complex.
|
But, even this little graph look complex.
|
||||||
To show just how complex things can be;
|
To show just how complex things can be;
|
||||||
we just double the number morphisms between different objects.
|
we just double the number morphisms between different objects.
|
||||||
|
|
||||||
<graph title="Naïve Category Representation Mess">
|
<mpost title="Naïve Category Representation Mess (∘ representation)">
|
||||||
|
z0=origin;
|
||||||
|
z1=(2gu,gu);
|
||||||
|
z2=(4gu,0);
|
||||||
|
|
||||||
A[pos="0,0!"]
|
drawState(z0,btex $A$ etex);
|
||||||
B[pos="4,0!"]
|
drawState(z1,btex $B$ etex);
|
||||||
C[pos="8,0!"]
|
drawState(z2,btex $C$ etex);
|
||||||
f[pos="2,1!",label="", fixedsize="false", width=0,height=0,shape=none];
|
|
||||||
A -> f[label="f", arrowhead=None]
|
|
||||||
f -> B
|
|
||||||
|
|
||||||
fp[pos="2,0.5!",label="", fixedsize="false", width=0,height=0,shape=none];
|
drawEdgeWithAngle(z0,z1,btex $f$ etex,35);
|
||||||
A -> fp[label="f'", arrowhead=None]
|
drawEdge(z0,z1,btex $f'$ etex);
|
||||||
fp -> B
|
drawEdgeWithAngle(z1,z2,btex $g$ etex,35);
|
||||||
|
drawEdge(z1,z2,btex $g'$ etex);
|
||||||
|
drawEdgeWithAngle(z0,z2,btex $h$ etex,-10);
|
||||||
|
drawEdgeWithAngle(z0,z2,btex $h'$ etex,-35);
|
||||||
|
|
||||||
g[pos="6,0.5!",label="", fixedsize="false", width=0,height=0,shape=none];
|
def drawLink(expr f,g,h,l,propf,propg,proph,propfg) =
|
||||||
B -> g[label="g", arrowhead=None]
|
begingroup
|
||||||
g -> C
|
pair midf,midg,midh,midfg;
|
||||||
|
midf=point propf of f;
|
||||||
|
midg=point propg of g;
|
||||||
|
|
||||||
gp[pos="6,1!",label="", fixedsize="false", width=0,height=0,shape=none];
|
path fg; fg:=midf .. midg;
|
||||||
B -> gp[label="g'", arrowhead=None]
|
draw fg dashed evenly;
|
||||||
gp -> C
|
|
||||||
|
|
||||||
fg[pos="6,0!",label="", fixedsize="false", width=0,height=0,shape=none];
|
midfg = point propfg of fg;
|
||||||
fpg[pos="2.5,-1.5!",label="", fixedsize="false", width=0,height=0,shape=none];
|
midh = point proph of h;
|
||||||
fgp[pos="5.5,-1.5!",label="", fixedsize="false", width=0,height=0,shape=none];
|
path bigarrow;
|
||||||
fpgp[pos="2,0!",label="", fixedsize="false", width=0,height=0,shape=none];
|
bigarrow := subpath (.1,.9) of midfg .. midh;
|
||||||
AC[pos="4,-1!",label="", fixedsize="false", width=0,height=0,shape=none];
|
drawarrow bigarrow withpen pencircle scaled 1.5;
|
||||||
ApCp[pos="4,-3!",label="", fixedsize="false", width=0,height=0,shape=none];
|
|
||||||
|
|
||||||
f -> fg [color="red",style=dashed,arrowhead=None]
|
label.rt(l, point .5 of bigarrow);
|
||||||
fg -> g [color="red",style=dashed,arrowhead=None]
|
endgroup;
|
||||||
fg -> AC [color="red",style=bold,fontcolor="red",label="h=g∘f"]
|
enddef;
|
||||||
|
|
||||||
fp -> fpgp [color="yellow",style=dashed,arrowhead=None]
|
path f,fp,g,gp,h,hp;
|
||||||
fpgp -> gp [color="yellow",style=dashed,arrowhead=None]
|
|
||||||
fpgp -> AC [color="yellow",style=bold,fontcolor="yellow",label="h=g'∘f'"]
|
|
||||||
|
|
||||||
fp -> fpg [color="blue",style=dashed,arrowhead=None]
|
f=edgeAngle(z0,z1,35);
|
||||||
fpg -> g [color="blue",style=dashed,arrowhead=None]
|
fp=edge(z0,z1);
|
||||||
fpg -> ApCp [color="blue",style=bold,fontcolor="blue",label="h'=g∘f'"]
|
g=edgeAngle(z1,z2,35);
|
||||||
|
gp=edge(z1,z2);
|
||||||
f -> fgp [color="violet",style=dashed,arrowhead=None]
|
h=edgeAngle(z0,z2,-10);
|
||||||
fgp -> gp [color="violet",style=dashed,arrowhead=None]
|
hp=edgeAngle(z0,z2,-35);
|
||||||
fgp -> ApCp [color="violet",style=bold,fontcolor="violet",label="h'=g'∘f"]
|
|
||||||
|
|
||||||
A -> AC [label="h",arrowhead=None]
|
|
||||||
AC -> C
|
|
||||||
|
|
||||||
A -> ApCp [label="h'",arrowhead=None]
|
|
||||||
ApCp -> C
|
|
||||||
|
|
||||||
|
|
||||||
</graph>
|
drawoptions( withcolor red );
|
||||||
|
drawLink(f,g,h,btex $g\circ f$ etex, .5,.5,.4,.3);
|
||||||
|
drawoptions( withcolor blue );
|
||||||
|
drawLink(fp,gp,h,btex $h=g'\circ f'$ etex, .5,.5,.55,.7);
|
||||||
|
drawoptions( withcolor yellow );
|
||||||
|
drawLink(f,gp,hp,btex $h'=g'\circ f$ etex, .5,.5,.1,.2);
|
||||||
|
drawoptions( withcolor green );
|
||||||
|
drawLink(fp,g,hp,btex $h'=g\circ f'$ etex, .5,.5,.9,.8);
|
||||||
|
|
||||||
By removing the graphical representation of ∘ we could create a more readable representation.
|
</mpost>
|
||||||
|
|
||||||
<graph title="Fewer Details Category Representation">
|
Another representation of the preceding category:
|
||||||
|
|
||||||
A -> B[label="f"]
|
<mpost title="Another representation">
|
||||||
A -> B[label="f'"]
|
z0=origin;
|
||||||
B -> C[label="g"]
|
z1=(2gu,gu);
|
||||||
B -> C[label="g'"]
|
z2=(4gu,0);
|
||||||
A -> C [label="h\n=g∘f\n=g'∘f'"]
|
|
||||||
A -> C [label="h'\n=g'∘f\n=g∘f'"]
|
|
||||||
|
|
||||||
</graph>
|
drawState(z0,btex $A$ etex);
|
||||||
|
drawState(z1,btex $B$ etex);
|
||||||
|
drawState(z2,btex $C$ etex);
|
||||||
|
|
||||||
|
drawEdgeWithAngle(z0,z1,btex $f$ etex,35);
|
||||||
|
drawEdge(z0,z1,btex $f'$ etex);
|
||||||
|
drawEdgeWithAngle(z1,z2,btex $g$ etex,35);
|
||||||
|
drawEdge(z1,z2,btex $g'$ etex);
|
||||||
|
drawEdgeWithAngle(z0,z2,btex $h=g\circ f=g'\circ f'$ etex,-10);
|
||||||
|
drawEdgeWithAngle(z0,z2,btex $h'=g\circ f'=g'\circ f$ etex,-35);
|
||||||
|
</mpost>
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
|
|
||||||
|
@ -264,9 +273,9 @@ z0=(0,0);
|
||||||
z1=2(u,0);
|
z1=2(u,0);
|
||||||
z2=2(2u,0);
|
z2=2(2u,0);
|
||||||
|
|
||||||
drawedge(z0,z1,"");
|
draw edge(z0,z1);
|
||||||
drawedge(z1,z2,"");
|
draw edge(z1,z2);
|
||||||
drawedgeangle(z0,z2,"",50);
|
draw edgeAngle(z0,z2,50);
|
||||||
|
|
||||||
drawstate(z0);
|
drawstate(z0);
|
||||||
drawstate(z1);
|
drawstate(z1);
|
||||||
|
@ -285,10 +294,10 @@ drawedge(z1,z2,btex $g$ etex);
|
||||||
z0=(0,0); z1=(4u,0); z2=(2u,-3u);
|
z0=(0,0); z1=(4u,0); z2=(2u,-3u);
|
||||||
drawstate(z0); drawstate(z1); drawstate(z2);
|
drawstate(z0); drawstate(z1); drawstate(z2);
|
||||||
|
|
||||||
drawedgeangle(z0,z1,"",35);
|
draw nl_edgeAngle(z0,z1,35);
|
||||||
drawedgeangle(z1,z0,"",-145);
|
draw nl_edgeAngle(z1,z0,-145);
|
||||||
drawedge(z0,z2,"");
|
draw edge(z0,z2);
|
||||||
drawedge(z1,z2,"");
|
draw edge(z1,z2);
|
||||||
</mpost>
|
</mpost>
|
||||||
|
|
||||||
<mpost title="Not a category; no \(A→C\) while there exists \(A→B\) and \(B→C\)">
|
<mpost title="Not a category; no \(A→C\) while there exists \(A→B\) and \(B→C\)">
|
||||||
|
@ -297,10 +306,10 @@ drawState(z0,btex $A$ etex);
|
||||||
drawState(z1,btex $B$ etex);
|
drawState(z1,btex $B$ etex);
|
||||||
drawState(z2,btex $C$ etex);
|
drawState(z2,btex $C$ etex);
|
||||||
|
|
||||||
drawEdgeWithAngle(z0,z1,"",35);
|
draw edgeAngle(z0,z1,35);
|
||||||
drawEdgeWithAngle(z1,z0,"",-145);
|
draw edgeAngle(z1,z0,-145);
|
||||||
drawEdge(z1,z2,"");
|
draw edge(z1,z2);
|
||||||
drawEdge(z2,z0,"");
|
draw edge(z2,z0);
|
||||||
</mpost>
|
</mpost>
|
||||||
|
|
||||||
<graph title="Cannot be a category ; no possible associative ∘<br/>\((h∘g)∘f=idB∘f=f≠h=h∘idA=h∘(g∘f)\)">
|
<graph title="Cannot be a category ; no possible associative ∘<br/>\((h∘g)∘f=idB∘f=f≠h=h∘idA=h∘(g∘f)\)">
|
||||||
|
|
Loading…
Reference in a new issue