SWI-Prolog / roadmap

Discuss future development
21 stars 3 forks source link

CLP(B) in SWISH: Draw Binary Decision Diagrams from residual goals #22

Closed triska closed 4 years ago

triska commented 9 years ago

BDDs play an important role in circuit verification and model checking, and for several applications, it is valuable to draw BDDs as directed acyclic graphs in SWISH. This strengthens the use of SWI-Prolog and SWISH as a teaching tool when BDDs are involved. Importantly, using library(clpb) is much more convenient than resorting to a lower-level library to produce BDDs.

When using CPLP(B) in SWISH, BDDs can be drawn using the bdd renderer. However, this still falls a bit short in cases where the projection to sat/1 residual goals takes too long. The main shortcoming is that setting Prolog flags in SWISH does not affect the projection to residual goals. A way to work around this is shown in SWISH issue 25.

The main task left in this roadmap item is to carefully think through the interface between renderers and constraint libraries, so that such cases can be handled more uniformly. See SWISH issue 27 for a discussion of the issues involved.