Persistent.S
Signature of persistent graphs.
<b>Edges may be labeled or not</b>:
<b>Vertices may be concrete or abstract</b>:
<b>How to choose between concrete and abstract vertices for my graph implementation</b>?
Usually, if you fall into one of the following cases, use abstract vertices:
In other cases, it is certainly easier to use concrete vertices.
module Concrete
(V : Sig.COMPARABLE) :
Sig.P
with type V.t = V.t
and type V.label = V.t
and type E.t = V.t * V.t
and type E.label = unit
Persistent Unlabeled Graphs.
Abstract Persistent Unlabeled Graphs.
module ConcreteLabeled
(V : Sig.COMPARABLE)
(E : Sig.ORDERED_TYPE_DFT) :
Sig.P
with type V.t = V.t
and type V.label = V.t
and type E.t = V.t * E.t * V.t
and type E.label = E.t
Persistent Labeled Graphs.
module AbstractLabeled
(V : Sig.ANY_TYPE)
(E : Sig.ORDERED_TYPE_DFT) :
Sig.P with type V.label = V.t and type E.label = E.t
Abstract Persistent Labeled Graphs.