Manipulation of boolean expressions



I seem to recall that someone had contributed code to manipulate boolean
expressions in various ways, such as converting to canonical forms
(conjunctive/disjunctive normal form, etc.), checking satisfiability,
finding compact equivalents (Karnaugh maps), etc.  But I can't find it now.
 Pointers?

Thanks,

            -s