caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* BDD reloaded
@ 2008-11-12 15:11 Pietro Abate
  2008-11-12 16:15 ` [Caml-list] " Alain Frisch
  2008-11-25 17:35 ` David MENTRE
  0 siblings, 2 replies; 3+ messages in thread
From: Pietro Abate @ 2008-11-12 15:11 UTC (permalink / raw)
  To: caml-list

Hi all,

I've done my homework and I've collected few links about bdd
libraries. I still have few questions: 

+ Is there a native (and efficient) ocaml BDD implementation ? In
  particular, as pointed out on this mailing list, with variable ordering
  and other possible optimizations that can be compared in speed with
  buddy/cudd (c/c++).

= From what I can see, the answer is no. A lot of toy implementations
  though...

+ Do you know if there is an ocaml binding for buddy ? 

= I guess no, but I hope I'm wrong...

+ Does anybody have experience with the bindings done at inrialpes to
  CUDD ? Is this project still actively maintained / used ? How does it
  compare efficiency-wise with other bdd libraries ?

+ If I was to start writing my ocaml bindings, which c/c++ library would
  you advice ? Buddy seems widely used, but I wasn't able to find any
  hard evidence that it is the best bdd library available... Do you know 
  of any paper surveying different bdd implementations ?

thanks :)
p

----------------------------- My links for reference ----------------

Please add to the list if you know of other libraries that I forgot to
mention. This might end up to be a FAQ...

==Ocaml libraries (bindings and native in no particular order) :==

* Jean-Christophe Filliâtre (ocaml implementation)
http://www.lri.fr/~filliatr/ftp/publis/hash-consing2.ps.gz Paper
http://www.lri.fr/~filliatr/ftp/ocaml/bdd/ Code

* bindings to the CUDD BDD library
http://www.inrialpes.fr/pop-art/people/bjeannet/mlxxxidl-forge/ Code

* Olivier Michel (ocaml implementation)
http://www.ibisc.univ-evry.fr/~michel/BDD/ Code

* Xavier Leroy (part of an experimental sat solver) 
https://gforge.inria.fr/plugins/scmsvn/viewcvs.php/attic/xlsat/?root=sodiac Code

* John Harrison
http://www.cl.cam.ac.uk/~jrh13/atp/OCaml/bdd.ml Code

* Ocaml implementation (who is the author ?)
http://oops.tepkom.ru/projects/ocamlbdd/ Wiki

==C/C++ Libraries==

* http://buddy.wiki.sourceforge.net/ Buddy

* http://vlsicad.eecs.umich.edu/BK/Slots/cache/www.itu.dk/research/buddy/index.html Old version of Buddy 

* http://vlsi.colorado.edu/~fabio/CUDD/cuddIntro.html CUDD

* many other cited in the wikipedia link on bdds


==Relevant Mailing list Messages==

The ocaml ml has several references to BDDs. These are 3 interesting threads
that I've used as a starting point for my research. 

In this thread
http://caml.inria.fr/pub/ml-archives/caml-list/2000/01/405b651014b09c51c691aab72d69166a.en.html
there is mention of a possible binding for JÞrn Lind-Nielsen's BDD
library BuDDy. I'm wondering if this binding was ever released.

In this thread
http://groups.google.com/group/fa.caml/browse_frm/thread/4af5391f52279e38/550b7df324ae1900#550b7df324ae1900
Alain Frish points out that none of existing ocaml libraries implements
automatic reordering of variables... And I don't know if the state of affairs
is changed at this regard.

In this thread
http://caml.inria.fr/pub/ml-archives/caml-list/2001/04/8bbf7629ef3ef299c16f78bd2b986e36.en.html
David Mentre announces a preliminary work on binding for the cudd
library, but the link is broken... this link currently is broken:
http://www-rocq.inria.fr/~mentre/software/ocaml-bdd/ 
and there is a mention to a caml-light implementation of a robdd library
that I was also not able to retrieve.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] BDD reloaded
  2008-11-12 15:11 BDD reloaded Pietro Abate
@ 2008-11-12 16:15 ` Alain Frisch
  2008-11-25 17:35 ` David MENTRE
  1 sibling, 0 replies; 3+ messages in thread
From: Alain Frisch @ 2008-11-12 16:15 UTC (permalink / raw)
  To: Pietro Abate; +Cc: caml-list

Pietro Abate wrote:
> + Do you know if there is an ocaml binding for buddy ? 
> 
> = I guess no, but I hope I'm wrong...

I believe that Akihiko Tozawa wrote such a binding for his XSLT0 
typechecker. You should check with him.


-- Alain


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] BDD reloaded
  2008-11-12 15:11 BDD reloaded Pietro Abate
  2008-11-12 16:15 ` [Caml-list] " Alain Frisch
@ 2008-11-25 17:35 ` David MENTRE
  1 sibling, 0 replies; 3+ messages in thread
From: David MENTRE @ 2008-11-25 17:35 UTC (permalink / raw)
  To: Pietro Abate; +Cc: caml-list

Hello Mr. Abate,

Sorry for the late reply[1].

Pietro Abate <Pietro.Abate@pps.jussieu.fr> writes:

> In this thread
> http://caml.inria.fr/pub/ml-archives/caml-list/2001/04/8bbf7629ef3ef299c16f78bd2b986e36.en.html
> David Mentre announces a preliminary work on binding for the cudd
> library, but the link is broken... this link currently is broken:
> http://www-rocq.inria.fr/~mentre/software/ocaml-bdd/ 
> and there is a mention to a caml-light implementation of a robdd library
> that I was also not able to retrieve.

The code was a binding for CMU bdd library
(http://www.cs.cmu.edu/~modelcheck/bdd.html). It was working great at
that time (OCaml 3.00) and is rather simple. I have no idea if it would
still work with recent OCaml (let me know).

I put the archive on the web. Code is under a BSD license.

 http://www.linux-france.org/~dmentre/code/OcamlBdd.tar.gz

Code provided as is. I mean... really. ;-)

Yours,
d.

Footnotes: 
[1]  And many thanks to Alan for his CWN that keeps us informed! 

-- 
GPG/PGP key: A3AD7A2A David MENTRE <dmentre@linux-france.org>
 5996 CC46 4612 9CA4 3562  D7AC 6C67 9E96 A3AD 7A2A


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-11-25 17:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-11-12 15:11 BDD reloaded Pietro Abate
2008-11-12 16:15 ` [Caml-list] " Alain Frisch
2008-11-25 17:35 ` David MENTRE

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).