Boolean algebra package



Hi List;

Does anyone know what it would take to implement a Boolean algebra package for Maxima?  I have been thinking of doing this for while but I am not sure where to start.  Any helpful links would be nice.  I was planning on allowing just the following types of predicates: 

P(a,b):= a < b;
P(a,b):= a <= b; 
P(a,b):= a > b;
P(a,b):= a >= b;
P(a,b):= equal(a, b);
P(a,b):= notequal(a, b);

along with the three connecters ?and?, ?or? and ?not?.  

so you could do stuff like 

if a<m or a >= m then cos(x) else sin(x);

This would just simplify to cos(x), currently it does not simplify.  More complex conditionals are obviously possible.

I don?t know much about what it would take to do this or if it is too hard, or too much work.  I have studied logic design, so I know about some simplifications of Booleans, but this whole idea is a little scary to take on without some help.

Richard Hennessy