doublepushout
Double pushout (DPO) is a formal framework for graph transformation based on category-theoretic pushouts. In DPO, a rule is represented as a span L <- K -> R, where L describes the pattern to be deleted or replaced, R describes what will be added, and K is the interface graph that is preserved during the transformation. A host graph G can be transformed by a match m: L -> G, which must satisfy the gluing condition (also called the dangling condition). This condition ensures that removing the part L\K does not leave edges whose endpoints have been deleted.
The transformation proceeds via two pushouts in a commutative diagram. First, a pushout is formed from the
DPO relies on the existence of pushouts and pushout complements, typically in adhesive categories such as graphs
In comparison with the single-pushout (SPO) approach, DPO imposes stricter matching requirements to avoid dangling edges,
---