Function Repository Resource:

AbstractPullback

Source Notebook

Represent the abstract pullback of a collection of morphisms with common codomain in an abstract category

Contributed by: Jonathan Gorard

ResourceFunction["AbstractPullback"][cospan,pull,proj,comp,id]

represents the abstract pullback of the (generalized) cospan cospan, with pullback symbol pull, projection morphism names proj, composition symbol comp and identity symbol id.

ResourceFunction["AbstractPullback"][,obuniv,morphuniv,morphuniq]

represents an abstract pullback with a universal property characterized by the "universal object“ obuniv, "universal morphisms“ morphuniv and "unique morphism“ morphuniq.

ResourceFunction["AbstractPullback"][assoc]

represents an abstract pullback using the association of (generalized) cospan, pullback symbol, projection morphism list, composition symbol, identity symbol, "universal object", "universal morphism" list and "unique morphism“ assoc.

ResourceFunction["AbstractPullback"][][AbstractCategory[]]

embeds an abstract pullback into the specified abstract category.

ResourceFunction["AbstractPullback"][ResourceFunction["AbstractPullback"][],pull,comp,id]

makes a new abstract pullback from an old pullback by imposing new pullback symbol pull, new composition symbol comp and new identity symbol id.

Details

The pullback of a cospan (i.e. a pair of morphisms with common codomain) consists of a distinguished object (the pullback object) together with a family of outgoing morphisms from this object (the projection morphisms), one for each domain in the cospan, in such a way that the resulting diagram commutes and that a certain universal property is satisfied. The universal property essentially indicates that the pullback object is the "most general" such object that can exist, by asserting that any other object with projection morphisms to the domains in the cospan that causes the resulting diagram to commute must also have a unique morphism to the pullback object that causes the resulting diagram to commute.
The wide pullback of a generalized cospan is an extension of the above construction to an arbitrary collection of morphisms with common codomain. An ordinary cospan is thus a generalized cospan of size 2, and an ordinary (binary) pullback is a wide pullback over a generalized cospan of size 2.
Abstract products correspond to a special case of abstract pullbacks in which the common codomain is a terminal object.
Abstract pullbacks are categorically dual to abstract pushouts.
Abstract pullbacks capture many familiar constructions from mathematics such as fibered products (in the category of commutative rings), pullback fiber bundles (in the category of topological spaces), preimages of subsets (in the category of sets), least common multiples (in the multiplicative monoid of positive integers), etc., and generalize them to arbitrary categories.
An abstract pullback may be characterized formally as a limit taken over a cospan (i.e. an index category consisting of a pair of morphisms with a common codomain); abstract wide pullbacks may, accordingly, be characterized formally as limits taken over generalized cospans (i.e. index categories consisting of collections of morphisms with a common codomain).
An abstract presentation of a (wide) pullback can therefore be given in terms of a collection of morphisms corresponding to a (generalized) cospan, a pullback symbol, a composition symbol, an identity symbol, and a collection of projection morphisms from the pullback object to the domains in the cospan, together with symbols for a "universal object", a collection of "universal morphisms" from the "universal object" to the domains in the cospan, and a "unique morphism" from the "universal object" to the pullback object, in order to characterize the universal property.
ResourceFunction["AbstractPullback"] supports the specification of abstract pullbacks either by eight associations/lists/symbols (an association of morphisms corresponding to a generalized cospan cospan, a pullback symbol pull, a list of projection morphism names proj, a composition symbol comp, an identity symbol id, a "universal object" symbol obuniv, a list of "universal morphism" names morphuniv and a "unique morphism" name morphuniq) or by an explicit association of the form <|"MorphismNames"morph,"MorphismDomains"dom,"CommonImage"img,"PullbackSymbol"pull,"ProjectionMorphismNames"proj,"CompositionSymbol"comp,"IdentitySymbol"id,"UniversalObjectName"obuniv,"UniversalMorphismNames"morphuniv,"UniqueMorphismName"morphuniq|>.
Where specified, the pullback symbol pull should be an operator of arbitrary arity, the composition symbol comp should be a binary operator and the identity symbol id should be a unary operator.
When specifying an abstract pullback by a collection of associations/lists/symbols, ResourceFunction["AbstractPullback"] allows one to omit the pullback symbol, the list of projection morphism names, the composition symbol, the identity symbol, the "universal object" symbol, the list of "universal morphism" names or the "unique morphism" name (or certain combinations of the above). When the pullback symbol, the composition symbol or the identity symbol is omitted, Times (×), CircleDot () and OverTilde () are assumed by default. When the list of projection morphism names is omitted, the default naming convention of p1, p2, is assumed. When the "universal object" or "unique morphism" symbols are omitted, Q and u are assumed by default. When the list of "universal morphism" names is omitted, the default naming convention of q1, q2, is assumed.
If the function succeeds in constructing the specified abstract pullback, it will return an ResourceFunction["AbstractPullback"] expression.
Objects and morphisms that form part of the defining universal property of the abstract pullback are indicated using ForAll () and Exists () quantifiers, as appropriate. Unique morphisms are designated using the special-purpose ∃! quantifier, and are indicated in all directed graph representations using dashed (rather than solid) lines. When commutativity of one diagram depends upon the commutativity of another, this is indicated within the governing equations using Implies ().
ResourceFunction["AbstractPullback"] expressions can be applied to AbstractCategory expressions in order to embed the corresponding pullback within the specified category (in such a way that the universal property is satisfied).
In ResourceFunction["AbstractPullback"], the following properties are supported:
"Objects"list of objects in the abstract pullback
"ObjectCount"number of objects in the abstract pullback
"MorphismAssociation"association of morphism names/edges in the abstract pullback
"MorphismNames"list of names of morphisms in the abstract pullback
"MorphismEdges"list of directed edges associated to morphisms in the abstract pullback
"MorphismCount"number of morphisms in the abstract pullback
"ReducedMorphismAssociation"association of morphism names/edges in the abstract pullback, modulo morphism equivalences
"ReducedMorphismNames"list of names of morphisms in the abstract pullback, modulo morphism equivalences
"ReducedMorphismEdges"list of directed edges associated to morphisms in the abstract pullback, modulo morphism equivalences
"ReducedMorphismCount"number of morphisms in the abstract pullback, modulo morphism equivalences
"SimpleMorphismAssociation"association of morphism names/edges in the abstract pullback, with self-loops and multiedges removed
"SimpleMorphismNames"list of names of morphisms in the abstract pullback, with self-loops and multiedges removed
"SimpleMorphismEdges"list of directed edges associated to morphisms in the abstract pullback, with self-loops and multiedges removed
"SimpleMorphismCount"number of morphisms in the abstract pullback, with self-loops and multiedges removed
"ReducedSimpleMorphismAssociation"association of morphism names/edges in the abstract pullback, with self-loops and multiedges removed, and modulo morphism equivalences
"ReducedSimpleMorphismNames"list of names of morphisms in the abstract pullback, with self-loops and multiedges removed, and modulo morphism equivalences
"ReducedSimpleMorphismEdges"list of directed edges associated to morphisms in the abstract pullback, with self-loops and multiedges removed, and modulo morphism equivalences
"ReducedSimpleMorphismCount"number of morphisms in the abstract pullback, with self-loops and multiedges removed, and modulo morphism equivalences
"UniversalObjects"list of objects in the abstract pullback characterizing the universal property
"UniversalObjectCount"number of objects in the abstract pullback characterizing the universal property
"UniversalMorphismAssociation"association of morphism names/edges in the abstract pullback characterizing the universal property
"UniversalMorphismNames"list of names of morphisms in the abstract pullback characterizing the universal property
"UniversalMorphismEdges"list of directed edges associated to morphisms in the abstract pullback characterizing the universal property
"UniversalMorphismCount"number of morphisms in the abstract pullback characterizing the universal property
"UniversalReducedMorphismAssociation"association of morphism names/edges in the abstract pullback characterizing the universal property, modulo morphism equivalences
"UniversalReducedMorphismNames"list of names of morphisms in the abstract pullback characterizing the universal property, modulo morphism equivalences
"UniversalReducedMorphismEdges"list of directed edges associated to morphisms in the abstract pullback characterizing the universal property, modulo morphism equivalences
"UniversalReducedMorphismCount"number of morphisms in the abstract pullback characterizing the universal property, modulo morphism equivalences
"UniversalSimpleMorphismAssociation"association of morphism names/edges in the abstract pullback characterizing the universal property, with self-loops and multiedges removed
"UniversalSimpleMorphismNames"list of names of morphisms in the abstract pullback characterizing the universal property, with self-loops and multiedges removed
"UniversalSimpleMorphismEdges"list of directed edges associated to morphisms in the abstract pullback characterizing the universal property, with self-loops and multiedges removed
"UniversalSimpleMorphismCount"number of morphisms in the abstract pullback characterizing the universal property, with self-loops and multiedges removed
"UniversalReducedSimpleMorphismAssociation"association of morphism names/edges in the abstract pullback characterizing the universal property, with self-loops and multiedges removed, and modulo morphism equivalences
"UniversalReducedSimpleMorphismNames"list of names of morphisms in the abstract pullback characterizing the universal property, with self-loops and multiedges removed, and modulo morphism equivalences
"UniversalReducedSimpleMorphismEdges"list of directed edges associated to morphisms in the abstract pullback characterizing the universal property, with self-loops and multiedges removed, and modulo morphism equivalences
"UniversalReducedSimpleMorphismCount"number of morphisms in the abstract pullback characterizing the universal property, with all self-loops and multiedges removed, and modulo morphism equivalences
"PullbackSymbol"symbol used to denote pullbacks of objects (should be an operator of arbitrary arity)
"CompositionSymbol"symbol used to denote morphism composition (should be a binary operator)
"IdentitySymbol"symbol used to denote identity morphisms (should be a unary operator)
"PullbackCategory"abstract category with morphisms representing the abstract pullback
"UniversalPullbackCategory"abstract category with morphisms characterizing the universal property of the abstract pullback
"PullbackEquations"list of equations required to force the pullback diagram to commute
"UniversalPullbackEquations"list of equations required to force the pullback diagram to commute, plus those implicitly imposed by the requirement that the universal property of the abstract pullback is satisfied
"FullLabeledGraph"directed graph form of the abstract pullback with labels on the morphisms
"FullUnlabeledGraph"directed graph form of the abstract pullback with no labels on the morphisms
"ReducedLabeledGraph"directed graph form of the abstract pullback, modulo morphism equivalences, with labels on the morphisms
"ReducedUnlabeledGraph"directed graph form of the abstract pullback, modulo morphism equivalences, with no labels on the morphisms
"SimpleLabeledGraph"directed graph form of the abstract pullback, with self-loops and multiedges removed, with labels on the morphisms
"SimpleUnlabeledGraph"directed graph form of the abstract pullback, with self-loops and multiedges removed, with no labels on the morphisms
"ReducedSimpleLabeledGraph"directed graph form of the abstract pullback, with self-loops and multiedges removed, modulo morphism equivalences, with labels on the morphisms
"ReducedSimpleUnlabeledGraph"directed graph form of the abstract pullback, with self-loops and multiedges removed, modulo morphism equivalences, with no labels on the morphisms
"UniversalFullLabeledGraph"directed graph form characterizing the universal property of the abstract pullback, with labels on the morphisms
"UniversalFullUnlabeledGraph"directed graph form characterizing the universal property of the abstract pullback, with no labels on the morphisms
"UniversalReducedLabeledGraph"directed graph form characterizing the universal property of the abstract pullback, modulo morphism equivalences, with labels on the morphisms
"UniversalReducedUnlabeledGraph"directed graph form characterizing the universal property of the abstract pullback, modulo morphism equivalences, with no labels on the morphisms
"UniversalSimpleLabeledGraph"directed graph form characterizing the universal property of the abstract pullback, with self-loops and multiedges removed, with labels on the morphisms
"UniversalSimpleUnlabeledGraph"directed graph form characterizing the universal property of the abstract pullback, with self-loops and multiedges removed, with no labels on the morphisms
"UniversalReducedSimpleLabeledGraph"directed graph form characterizing the universal property of the abstract pullback, with self-loops and multiedges removed, modulo morphism equivalences, with labels on the morphisms
"UniversalReducedSimpleUnlabeledGraph"directed graph form characterizing the universal property of the abstract pullback, with self-loops and multiedges removed, modulo morphism equivalences, with no labels on the morphisms
"AssociationForm"abstract pullback represented as an association of a list of (generalized) cospan morphism names, a list of (generalized) cospan morphism domains, a common image object, a pullback symbol, a list of projection morphism names, a composition symbol, an identity symbol, a "universal object" name, a list of "universal morphism" names and a "unique morphism" name
"Properties"list of properties

Examples

Basic Examples (3) 

Construct a simple abstract pullback of morphisms f and g from objects A and B to a common object T:

In[1]:=
pullback = ResourceFunction["AbstractPullback"][<|f -> {A, T}, g -> {B, T}|>]
Out[1]=

Show the full directed graph with labels on the morphisms:

In[2]:=
pullback["FullLabeledGraph"]
Out[2]=

Show the full directed graph without labels on the morphisms:

In[3]:=
pullback["FullUnlabeledGraph"]
Out[3]=

Show the reduced directed graph, with all equivalences between morphisms imposed and with labels on the morphisms, illustrating that the pullback diagram commutes:

In[4]:=
pullback["ReducedLabeledGraph"]
Out[4]=

Show the reduced directed graph without labels on the morphisms:

In[5]:=
pullback["ReducedUnlabeledGraph"]
Out[5]=

Show the full directed graph characterizing the universal property, with labels on the morphisms:

In[6]:=
pullback["UniversalFullLabeledGraph"]
Out[6]=

Show the full directed graph characterizing the universal property, without labels on the morphisms:

In[7]:=
pullback["UniversalFullUnlabeledGraph"]
Out[7]=

Show the Association of morphisms:

In[8]:=
pullback["MorphismAssociation"]
Out[8]=

Show the Association of (quantified) morphisms characterizing the universal property:

In[9]:=
pullback["UniversalMorphismAssociation"]
Out[9]=

Show the list of directed edges characterizing the universal property:

In[10]:=
pullback["UniversalMorphismEdges"]
Out[10]=

Show the list of equations required to force the pullback diagram to commute:

In[11]:=
pullback["PullbackEquations"]
Out[11]=

Show the list of equations required to force the pullback diagram to commute, plus the equations characterizing the universal property:

In[12]:=
pullback["UniversalPullbackEquations"]
Out[12]=

Construct an abstract (wide) pullback of morphisms f, g and h from objects U, V and W to a common object P, but with pullback symbol , projection morphisms r1, r2 and r3, composition and identity symbols and ─, and with a universal property characterized by universal object Y, universal morphisms o1, o2 and o3, and unique morphism o:

In[13]:=
pullback = ResourceFunction[
  "AbstractPullback"][<|f -> {U, P}, g -> {V, P}, h -> {W, P}|>, CircleTimes, {r1, r2, r3}, CirclePlus, OverBar, Y, {o1, o2, o3}, o]
Out[13]=

Show the full directed graph characterizing the universal property, with labels on the morphisms:

In[14]:=
pullback["UniversalFullLabeledGraph"]
Out[14]=

Show the full directed graph characterizing the universal property, without labels on the morphisms:

In[15]:=
pullback["UniversalFullUnlabeledGraph"]
Out[15]=

Show the reduced directed graph characterizing the universal property, with all equivalences between morphisms imposed and with labels on the morphisms:

In[16]:=
pullback["UniversalReducedLabeledGraph"]
Out[16]=

Show the reduced directed graph characterizing the universal property, without labels on the morphisms:

In[17]:=
pullback["UniversalReducedUnlabeledGraph"]
Out[17]=

Show the Association of morphisms, with all equivalences between morphisms imposed:

In[18]:=
pullback["ReducedMorphismAssociation"]
Out[18]=

Show the Association of morphisms characterizing the universal property, with all equivalences between morphisms imposed:

In[19]:=
pullback["UniversalReducedMorphismAssociation"]
Out[19]=

Show the list of equations required to force the (wide) pullback diagram to commute, plus the equations characterizing the universal property:

In[20]:=
pullback["UniversalPullbackEquations"]
Out[20]=

Show the association form of the abstract (wide) pullback:

In[21]:=
pullback["AssociationForm"]
Out[21]=

Construct an abstract pullback of morphisms f and g from objects X and Y to a common object Z:

In[22]:=
pullback = ResourceFunction["AbstractPullback"][<|f -> {X, Z}, g -> {Y, Z}|>]
Out[22]=

Construct an abstract category consisting of f and g, plus morphisms to X and Y from some common object U:

In[23]:=
category = ResourceFunction["AbstractCategory"][<|i -> {U, X}, j -> {U, Y}, f -> {X, Z}, g -> {Y, Z}|>]
Out[23]=

Embed the abstract pullback into the abstract category:

In[24]:=
newCategory = pullback[category]
Out[24]=

Note that, since the commutativity condition on morphisms i and j is not satisfied, the universal property is not invoked:

In[25]:=
newCategory["FullLabeledGraph"]
Out[25]=
In[26]:=
newCategory["MorphismEquivalences"]
Out[26]=

Force the commutativity condition on morphisms i and j to be satisfied:

In[27]:=
category2 = ResourceFunction["AbstractCategory"][<|i -> {U, X}, j -> {U, Y}, f -> {X, Z}, g -> {Y, Z}|>, {}, {CircleDot[f, i] == CircleDot[g, j]}]
Out[27]=

Embed the abstract pullback into the new abstract category (in such a way that the universal property is satisfied):

In[28]:=
newCategory2 = pullback[category2]
Out[28]=
In[29]:=
newCategory2["FullLabeledGraph"]
Out[29]=

Validate that the universal property is indeed satisfied:

In[30]:=
newCategory2["ReducedLabeledGraph"]
Out[30]=
In[31]:=
newCategory2["MorphismEquivalences"]
Out[31]=

Construct a more complicated abstract category consisting of additional morphisms to X and Y from a further common object V (such that these new morphisms also satisfy the requisite commutativity conditions):

In[32]:=
category3 = ResourceFunction["AbstractCategory"][<|i -> {U, X}, j -> {U, Y}, k -> {V, X}, l -> {V, Y}, f -> {X, Z}, g -> {Y, Z}|>, {}, {CircleDot[f, i] == CircleDot[g, j], CircleDot[f, k] == CircleDot[g, l]}]
Out[32]=

Embed the abstract pullback into the more complicated abstract category and validate that the universal property is still satisfied:

In[33]:=
newCategory3 = pullback[category3]
Out[33]=
In[34]:=
newCategory3["FullLabeledGraph"]
Out[34]=
In[35]:=
newCategory3["ReducedLabeledGraph"]
Out[35]=
In[36]:=
newCategory3["MorphismEquivalences"]
Out[36]=

Compute minimal abstract category representations of the abstract pullback and its defining universal property, respectively:

In[37]:=
pullback["PullbackCategory"]
Out[37]=
In[38]:=
pullback["UniversalPullbackCategory"]
Out[38]=

Scope (2) 

Abstract pullbacks can be constructed from an association of morphisms with a common codomain (i.e. a generalized cospan), a pullback symbol, a list of names of projection morphisms, a composition symbol and an identity symbol:

In[39]:=
pullback = ResourceFunction[
  "AbstractPullback"][<|f -> {X, W}, g -> {Y, W}, h -> {Z, W}|>, CircleTimes, {r1, r2, r3}, CirclePlus, OverBar]
Out[39]=
In[40]:=
pullback["UniversalFullLabeledGraph"]
Out[40]=

A "universal object" symbol, a list of names of "universal morphisms" and a "unique morphism" symbol can also be specified, in order to characterize the universal property fully:

In[41]:=
pullback2 = ResourceFunction[
  "AbstractPullback"][<|f -> {X, W}, g -> {Y, W}, h -> {Z, W}|>, CircleTimes, {r1, r2, r3}, CirclePlus, OverBar, U, {o1, o2, o3}, o]
Out[41]=
In[42]:=
pullback2["UniversalFullLabeledGraph"]
Out[42]=

Abstract pullbacks can also be constructed directly from an association of morphisms with a common codomain (i.e. a generalized cospan) and a list of names of projection morphisms along with composition and identity symbols:

In[43]:=
pullback3 = ResourceFunction[
  "AbstractPullback"][<|f -> {X, Z}, g -> {Y, Z}|>, {g1, g2}, CircleTimes, OverBar]
Out[43]=
In[44]:=
pullback3["UniversalFullLabeledGraph"]
Out[44]=

Or from a morphism association (for the generalized cospan) with pullback, composition and identity symbols alone:

In[45]:=
pullback4 = ResourceFunction["AbstractPullback"][<|f -> {X, Z}, g -> {Y, Z}|>, CircleTimes, CirclePlus, OverBar]
Out[45]=
In[46]:=
pullback4["UniversalFullLabeledGraph"]
Out[46]=

If any of these arguments is not explicitly specified, the appropriate defaults are assumed automatically:

In[47]:=
pullback5 = ResourceFunction[
  "AbstractPullback"][<|f -> {U, P}, g -> {W, P}, h -> {V, P}|>]
Out[47]=
In[48]:=
pullback5["UniversalFullLabeledGraph"]
Out[48]=

New pullback, composition and identity symbols can be specified for any existing abstract pullback:

In[49]:=
pullback6 = ResourceFunction["AbstractPullback"][pullback5, CircleTimes, CirclePlus, OverBar]
Out[49]=
In[50]:=
pullback6["UniversalFullLabeledGraph"]
Out[50]=

From an explicit association:

In[51]:=
ResourceFunction[
 "AbstractPullback"][<|"MorphismNames" -> {f, g}, "MorphismDomains" -> {A, B}, "CommonImage" -> P, "PullbackSymbol" -> CircleTimes, "ProjectionMorphismNames" -> {p1, p2}, "CompositionSymbol" -> CirclePlus, "IdentitySymbol" -> OverBar, "UniversalObjectName" -> Y, "UniversalMorphismNames" -> {f1, f2}, "UniqueMorphismName" -> u|>]
Out[51]=

Construct an abstract pullback of morphisms f, g, h and i from objects X, Y, Z and W to a common object T:

In[52]:=
pullback = ResourceFunction[
  "AbstractPullback"][<|f -> {X, T}, g -> {Y, T}, h -> {Z, T}, i -> {W, T}|>]
Out[52]=

Show the list of properties:

In[53]:=
pullback["Properties"]
Out[53]=

Show the list of objects in the abstract pullback:

In[54]:=
pullback["Objects"]
Out[54]=

Show the number of objects in the abstract pullback:

In[55]:=
pullback["ObjectCount"]
Out[55]=

Show the association of morphisms in the abstract pullback:

In[56]:=
pullback["MorphismAssociation"]
Out[56]=

Show the list of names of morphisms in the abstract pullback:

In[57]:=
pullback["MorphismNames"]
Out[57]=

Show the list of directed edges corresponding to morphisms in the abstract pullback:

In[58]:=
pullback["MorphismEdges"]
Out[58]=

Show the number of morphisms in the abstract pullback:

In[59]:=
pullback["MorphismCount"]
Out[59]=

Show the association of reduced morphisms (modded out by all morphism equivalences) in the abstract pullback:

In[60]:=
pullback["ReducedMorphismAssociation"]
Out[60]=

Show the list of names of reduced morphisms (modded out by all morphism equivalences) in the abstract pullback:

In[61]:=
pullback["ReducedMorphismNames"]
Out[61]=

Show the list of directed edges corresponding to reduced morphisms (modded out by all morphism equivalences) in the abstract pullback:

In[62]:=
pullback["ReducedMorphismEdges"]
Out[62]=

Show the number of reduced morphisms, modded out by all morphism equivalences, in the abstract pullback:

In[63]:=
pullback["ReducedMorphismCount"]
Out[63]=

Show the association of simple morphisms, with all self-loops and multiedges removed, in the abstract pullback:

In[64]:=
pullback["SimpleMorphismAssociation"]
Out[64]=

Show the list of names of simple morphisms, with all self-loops and multiedges removed, in the abstract pullback:

In[65]:=
pullback["SimpleMorphismNames"]
Out[65]=

Show the list of directed edges corresponding to simple morphisms, with all self-loops and multiedges removed, in the abstract pullback:

In[66]:=
pullback["SimpleMorphismEdges"]
Out[66]=

Show the number of simple morphisms, with all self-loops and multiedges removed, in the abstract pullback:

In[67]:=
pullback["SimpleMorphismCount"]
Out[67]=

Show the association of reduced simple morphisms, with all self-loops and multiedges removed, plus all morphism equivalences modded out, in the abstract pullback:

In[68]:=
pullback["ReducedSimpleMorphismAssociation"]
Out[68]=

Show the list of names of reduced simple morphisms, with all self-loops and multiedges removed, plus all morphism equivalences modded out, in the abstract pullback:

In[69]:=
pullback["ReducedSimpleMorphismNames"]
Out[69]=

Show the list of directed edges corresponding to reduced simple morphisms, with all self-loops and multiedges removed, plus all morphism equivalences modded out, in the abstract pullback:

In[70]:=
pullback["ReducedSimpleMorphismEdges"]
Out[70]=

Show the number of reduced simple morphisms, with all self-loops and multiedges removed, plus all morphism equivalences modded out, in the abstract pullback:

In[71]:=
pullback["ReducedSimpleMorphismCount"]
Out[71]=

Show the list of objects characterizing the universal property of the abstract pullback:

In[72]:=
pullback["UniversalObjects"]
Out[72]=

Show the number of objects characterizing the universal property of the abstract pullback:

In[73]:=
pullback["UniversalObjectCount"]
Out[73]=

Show the association of morphisms characterizing the universal property of the abstract pullback:

In[74]:=
pullback["UniversalMorphismAssociation"]
Out[74]=

Show the list of names of morphisms characterizing the universal property of the abstract pullback:

In[75]:=
pullback["UniversalMorphismNames"]
Out[75]=

Show the list of directed edges corresponding to morphisms characterizing the universal property of the abstract pullback:

In[76]:=
pullback["UniversalMorphismEdges"]
Out[76]=

Show the number of morphisms characterizing the universal property of the abstract pullback:

In[77]:=
pullback["UniversalMorphismCount"]
Out[77]=

Show the association of reduced morphisms, modded out by all morphism equivalences, characterizing the universal property of the abstract pullback:

In[78]:=
pullback["UniversalReducedMorphismAssociation"]
Out[78]=

Show the list of names of reduced morphisms, modded out by all morphism equivalences, characterizing the universal property of the abstract pullback:

In[79]:=
pullback["UniversalReducedMorphismNames"]
Out[79]=

Show the list of directed edges corresponding to reduced morphisms, modded out by all morphism equivalences, characterizing the universal property of the abstract pullback:

In[80]:=
pullback["UniversalReducedMorphismEdges"]
Out[80]=

Show the number of reduced morphisms, modded out by all morphism equivalences, characterizing the universal property of the abstract pullback:

In[81]:=
pullback["UniversalReducedMorphismCount"]
Out[81]=

Show the association of simple morphisms (with all self-loops and multiedges removed) characterizing the universal property of the abstract pullback:

In[82]:=
pullback["UniversalSimpleMorphismAssociation"]
Out[82]=

Show the list of names of simple morphisms, with all self-loops and multiedges removed, characterizing the universal property of the abstract pullback:

In[83]:=
pullback["UniversalSimpleMorphismNames"]
Out[83]=

Show the list of directed edges corresponding to simple morphisms, with all self-loops and multiedges removed, characterizing the universal property of the abstract pullback:

In[84]:=
pullback["UniversalSimpleMorphismEdges"]
Out[84]=

Show the number of simple morphisms, with all self-loops and multiedges removed, characterizing the universal property of the abstract pullback:

In[85]:=
pullback["UniversalSimpleMorphismCount"]
Out[85]=

Show the association of reduced simple morphisms, with all self-loops and multiedges removed, plus all morphism equivalences modded out, characterizing the universal property of the abstract pullback:

In[86]:=
pullback["UniversalReducedSimpleMorphismAssociation"]
Out[86]=

Show the list of names of reduced simple morphisms, with all self-loops and multiedges removed, plus all morphism equivalences modded out, characterizing the universal property of the abstract pullback:

In[87]:=
pullback["UniversalReducedSimpleMorphismNames"]
Out[87]=

Show the list of directed edges corresponding to reduced simple morphisms, with all self-loops and multiedges removed, plus all morphism equivalences modded out, characterizing the universal property of the abstract pullback:

In[88]:=
pullback["UniversalReducedSimpleMorphismEdges"]
Out[88]=

Show the number of reduced simple morphisms, with all self-loops and multiedges removed, plus all morphism equivalences modded out, characterizing the universal property of the abstract pullback:

In[89]:=
pullback["UniversalReducedSimpleMorphismCount"]
Out[89]=

Show the (arbitrary arity) symbol used to denote the abstract pullback operation:

In[90]:=
pullback["PullbackSymbol"]
Out[90]=

Show the (binary) symbol used to denote morphism composition in the abstract pullback:

In[91]:=
pullback["CompositionSymbol"]
Out[91]=

Show the unary symbol used to denote identity morphisms on objects in the abstract pullback:

In[92]:=
pullback["IdentitySymbol"]
Out[92]=

Compute the abstract category whose morphisms represent the abstract pullback:

In[93]:=
pullback["PullbackCategory"]
Out[93]=

Compute the abstract category whose morphisms characterize the universal property of the abstract pullback:

In[94]:=
pullback["UniversalPullbackCategory"]
Out[94]=

Show the list of equations required to force the abstract pullback diagram to commute:

In[95]:=
pullback["PullbackEquations"]
Out[95]=

Show the list of equations required to force the abstract pullback diagram to commute, plus the equations implicitly imposed by the requirement that the universal property of the abstract pullback is satisfied:

In[96]:=
pullback["UniversalPullbackEquations"]
Out[96]=

Show the full directed graph with labels on the morphisms of the abstract pullback:

In[97]:=
pullback["FullLabeledGraph"]
Out[97]=

Show the full directed graph without labels on the morphisms of the abstract pullback:

In[98]:=
pullback["FullUnlabeledGraph"]
Out[98]=

Show the reduced directed graph, with all equivalences between morphisms imposed and with labels on the morphisms of the abstract pullback:

In[99]:=
pullback["ReducedLabeledGraph"]
Out[99]=

Show the reduced directed graph, with all equivalences between morphisms imposed and without labels on the morphisms of the abstract pullback:

In[100]:=
pullback["ReducedUnlabeledGraph"]
Out[100]=

Show the simple directed graph, with all self-loops and multiedges removed and with labels on the morphisms of the abstract pullback:

In[101]:=
pullback["SimpleLabeledGraph"]
Out[101]=

Show the simple directed graph, with all self-loops and multiedges removed and without labels on the morphisms of the abstract pullback:

In[102]:=
pullback["SimpleUnlabeledGraph"]
Out[102]=

Show the reduced simple directed graph, with all self-loops and multiedges removed, plus all equivalences between morphisms modded out and with labels on the morphisms of the abstract pullback:

In[103]:=
pullback["ReducedSimpleLabeledGraph"]
Out[103]=

Show the reduced simple directed graph, with all self-loops and multiedges removed, plus all equivalences between morphisms modded out and without labels on the morphisms of the abstract pullback:

In[104]:=
pullback["ReducedSimpleUnlabeledGraph"]
Out[104]=

Show the full directed graph characterizing the universal property of the abstract pullback, with labels on the morphisms:

In[105]:=
pullback["UniversalFullLabeledGraph"]
Out[105]=

Show the full directed graph characterizing the universal property of the abstract pullback, without labels on the morphisms:

In[106]:=
pullback["UniversalFullUnlabeledGraph"]
Out[106]=

Show the reduced directed graph characterizing the universal property of the abstract pullback, with all equivalences between morphisms imposed and with labels on the morphisms:

In[107]:=
pullback["UniversalReducedLabeledGraph"]
Out[107]=

Show the reduced directed graph characterizing the universal property of the abstract pullback, with all equivalences between morphisms imposed and without labels on the morphisms:

In[108]:=
pullback["UniversalReducedUnlabeledGraph"]
Out[108]=

Show the simple directed graph characterizing the universal property of the abstract pullback, with all self-loops and multiedges removed and with labels on the morphisms:

In[109]:=
pullback["UniversalSimpleLabeledGraph"]
Out[109]=

Show the simple directed graph characterizing the universal property of the abstract pullback, with all self-loops and multiedges removed and without labels on the morphisms:

In[110]:=
pullback["UniversalSimpleUnlabeledGraph"]
Out[110]=

Show the reduced simple directed graph characterizing the universal property of the abstract pullback, with all self-loops and multiedges removed, plus all equivalences between morphisms modded out and with labels on the morphisms:

In[111]:=
pullback["UniversalReducedSimpleLabeledGraph"]
Out[111]=

Show the reduced simple directed graph characterizing the universal property of the abstract pullback, with all self-loops and multiedges removed, plus all equivalences between morphisms modded out and without labels on the morphisms:

In[112]:=
pullback["UniversalReducedSimpleUnlabeledGraph"]
Out[112]=

Show the explicit association form of the pullback:

In[113]:=
pullback["AssociationForm"]
Out[113]=

Publisher

Jonathan Gorard

Version History

  • 1.0.0 – 25 April 2022

Source Metadata

Related Resources

License Information