Module Zdd

Copyright Inria © 2025

This module implements families of finite sets, implemented as ZDDs (Zero-Suppressed Binary Decision Diagrams).

On top of this implementation, this module also provides structures for upward-closed and downward-closed set families.

Warning: be aware that this implementation is not thread safe, as it uses references and hash tables internally.

Copyright Inria © 2025

module type T = sig ... end

Signature of types for which set families can be created

module type S = sig ... end

The signature of set families

module type UPSET = sig ... end

Signature of upward-closed sets, represented as the set of their minimal elements

module type DOWNSET = sig ... end

Signature of downward-closed sets, represented as the set of their maximal elements

module Make_ZddZE (X : sig ... end) : sig ... end

Functor that creates a structure of set families using an implementation of ZDDs using zero-attributed edges

module Make_Zdd (X : sig ... end) : sig ... end

Functor that creates a structure of set families using a classic implementation of ZDDs

module Make (X : T) : S with type elt = X.t

Functor that creates a structure of set families

module UpSet (X : T) : UPSET with type elt = X.t

Functor that creates a structure of upward closed sets

module DownSet (X : T) : DOWNSET with type elt = X.t

Functor that creates a structure of downward closed sets