Mildly unrelated, but I wanted to point out the awesomeness of the K-map[1] for handling simple minimization problems like these. Unfortunately, once your dimensions get large it becomes difficult for humans to visualize the optimizations, which is where Espresso[2][3] comes in handy. [1] http://en.wikipedia.org/wiki/Karnaugh_map [2] http://embedded.eecs.berkeley.edu/pubs/downloads/espresso/in... [3] ftp://ftp.cs.man…
http://code.google.com/p/eqntott/
I haven't touched this code since 2008, so beware of grues, but I remember it being a really slick system for minimizing boolean logic when you combine eqntott with espresso. Just the thing for an electrical engineering student who's sick of doing K-maps, which described me nicely at the time.