Std.EdgeInterface that every Graph edge should provide
Semantics of operations is denoted using mathematical model, described in Graph interface.
create x y l creates an edge connecting nodes x and y labeled with a a given label l
insert e g returns a graph g' with a set of edges extended with edge e. If src e or dst e wasn't in the set of nodes N, then it is extended as well, so that axioms of graph are preserved.
Postconditions:
- E(g') = E(g) ∪ {e}.update e l g if edge e exists in graph g then return a new graph g' in which edge e is associated with label l. Otherwise return g unchanged.
Postcondition:
- E(g) ⊆ E(g')
- N(g) ⊆ N(g')
- e ∉ E(g) → e ∉ E(g').
- e ∈ E(g) → ε(g')e = l.remove e g returns a graph g' that doesn't contain edge e.
Postconditions:
- E(g') = E(g) \ {e}.include Regular.Std.Opaque.S with type t := tinclude Core_kernel.Comparable.S with type t := tval comparator : (t, comparator_witness) Base__.Comparator.comparatormodule Replace_polymorphic_compare : sig ... endmodule Map : sig ... endmodule Set : sig ... endinclude Core_kernel.Hashable.S with type t := tval hash_fold_t :
Ppx_hash_lib.Std.Hash.state ->
t ->
Ppx_hash_lib.Std.Hash.stateval hash : t -> Ppx_hash_lib.Std.Hash.hash_valueval hashable : t Core_kernel__.Hashtbl.Hashable.tmodule Table : sig ... endmodule Hash_set : sig ... endmodule Hash_queue : sig ... end