Boolean algebra in Maxima -> boolsimp



> For example I want to factor boolean expression
> (a and b) or (a and c)     into     a and (b or c)

The current boolsimp simply allows Maxima to treat boolean expressions like
other expressions in Maxima, and provides very little simplification or
other operations.  It simplifies expressions involving constants, e.g. (q or
true) => true, (if true then a else b) => a.  But it does not do any other
simplifications, not even (q or q) => q, if q then r else r => r, etc.

Barton Willis and I are working on additional simplifications for boolean
expressions; Barton is concentrating on the hard part -- dealing with
inequalities, and I am doing the easy part -- boolean algebra.

The transformation (a and b) or (a and c) => a and (b or c) can be performed
by distributing 'and' over 'or' (or is it the other way round?), and will be
supported, as will CNF and DNF.

                  -s