Module Link.Ports

module Ports: sig .. end
This module implements multisets of nodes as maps.

type t 

Standard operations on maps


val choose : t -> (int * int) option
val compare : (int -> int -> int) -> t -> t -> int
val empty : t
val equal : (int -> int -> bool) -> t -> t -> bool
val filter : (int -> int -> bool) -> t -> t
val fold : (int -> int -> 'b -> 'b) -> t -> 'b -> 'b
val is_empty : t -> bool
val max_binding : t -> (int * int) option
val min_binding : t -> (int * int) option

Additional functions


val to_string : t -> string
to_string s gives the string representation of port set s. For example:

{(0, 0), (1, 3)}.

val of_nodes : Nodes.t -> t
of_nodes ns transform a set of nodes into a set of ports.
val types : t -> Nodes.t -> string list
Construct a list of control strings.
val to_IntSet : t -> IntSet.t
to_IntSet ps returns a set of node identifiers form a set of ports.
val apply : Iso.t -> t -> t
Apply an isomorphism.
val arity : t -> int -> int option
val compat_list : t -> t -> Nodes.t -> Nodes.t -> Cnf.lit list list
Construct a list of possible node assignments starting from two compatible port sets.
val offset : t -> int -> t
val add : int -> t -> t
val sum : t -> t -> t
val cardinal : t -> int