Skip to contents

Graphs

Graph schemas, constructors, and accessors

Graph()
Create a directed graph
LabelledGraph()
Create a labelled graph
WeightedGraph()
Create a weighted graph
SchGraph
Directed graph schema: V (vertices), E (edges), src, tgt
SchLabelledGraph
Labelled graph schema (vertex and edge labels)
SchReflexiveGraph
Reflexive graph schema: adds refl : V → E
SchSymmetricGraph
Symmetric graph schema: adds inv : E → E (edge involution)
SchWeightedGraph
Weighted graph schema
add_edge()
Add an edge from s to t
add_vertex()
Add a vertex, returning its ID
add_vertices()
Add multiple vertices
complete_graph()
Complete graph on n vertices
cycle_graph()
Cycle graph: 1 → 2 → ... → n → 1
path_graph()
Path graph: 1 → 2 → ... → n
edge_src()
Source of edge(s)
edge_tgt()
Target of edge(s)
ne()
Number of edges
neighbors()
Neighbors of vertex v
nv()
Number of vertices

Limits & Colimits

Categorical limits, colimits, and universal constructions

product()
Product (categorical product) of two ACSets
coproduct()
Coproduct (disjoint union) with injection morphisms
pushout()
Pushout of ACSets along two morphisms from a common apex
pullback()
Pullback of ACSets along a cospan
equalizer()
Equalizer of two parallel ACSet transformations
coequalizer()
Coequalizer of two parallel ACSet transformations
initial()
Initial object: zero parts
terminal()
Terminal object: exactly one part per object type
from_initial()
Unique morphism from initial object
to_terminal()
Unique morphism to terminal object

Graph Rewriting

Double-pushout and sesqui-pushout rewriting

Rule() rule()
Rewriting rules
rewrite()
Apply a rule to a graph, finding the first valid match
rewrite_match()
Apply a rewrite rule at a specific match
get_matches()
Find all matches of a rule in a graph
pushout_complement()
Compute pushout complement (DPO step 1)
final_pullback_complement()
Compute the final pullback complement (FPC) for SqPO rewriting
cascading_complement()
Cascading deletion: compute subobject of G after removing matched elements

Undirected Wiring Diagrams

Compositional interfaces via UWDs

SchUWD
UWD Schema
UWD() uwd()
Undirected wiring diagrams
relation()
Create a wiring diagram using relation-style DSL
box_spec()
Shorthand for creating a relation box spec
nlegs()
Get the number of legs (feet) of a structured cospan
foot_sizes()
Get the foot sizes of a structured cospan

Data Migration

Functorial data migration between schemas

delta_migrate()
Perform delta (pullback) migration
sigma_migrate()
Sigma (left pushforward) migration
FinCat()
Finite category (presented by an ACSet schema)
FinFunctor()
Functor between finite categories (schema morphism)

Typed ACSets

ACSets typed over a base ACSet

TypedACSet()
Typed ACSet: an ACSet with a typing morphism to a type system
typed_acset()
Create a typed ACSet
typed_product()
Typed product of typed ACSets
typed_coproduct()
Typed coproduct of typed ACSets
discrete_typed()
Create a discrete typed ACSet from a type assignment
flatten_typed()
Flatten a typed ACSet (forget the typing)

ACSet Transformations & Homomorphisms

Morphisms between ACSets

ACSetTransformation()
ACSet transformation (natural transformation between ACSets)
compose_transformations()
Compose two ACSet transformations
id_transformation()
Identity transformation
is_natural()
Check naturality of an ACSet transformation
is_typed_morphism()
Check if a morphism between typed ACSets preserves typing
find_homomorphism()
Find a homomorphism between two ACSets
find_all_homomorphisms()
Find all homomorphisms between two ACSets
is_homomorphic()
Check if a homomorphism exists
discrete_acset()
Create a discrete (empty) ACSet with n parts in a given object

Structured Cospans

Open systems via structured cospans

StructuredCospan()
Structured multicospan (open system with multiple legs/feet)
structured_cospan()
Create a structured cospan (open system)
open_acset()
Open an ACSet by specifying interface legs
compose_cospans()
Compose two structured cospans along a shared foot
oapply_cospans()
Compose a list of structured cospans via a UWD
otimes_cospans()
Monoidal product of two structured cospans (side-by-side)
cospan_apex()
Extract the apex from a structured cospan
make_leg()
Create a leg morphism from a discrete foot into an apex

Visualization

Graphviz DOT output for graphs and diagrams

to_dot()
Convert an ACSet to DOT format string
to_graphviz()
Render an ACSet as an interactive diagram via DiagrammeR
generic_to_dot()
Convert an arbitrary ACSet to DOT format
graph_to_dot()
Convert a graph ACSet to DOT format
uwd_to_dot()
Render a UWD as a DOT diagram
petri_to_dot()
Render a Petri net as a bipartite DOT graph