On 4/10/08, Alexey Beshenov <al at beshenov.ru> wrote:
> Now it accepts any atom. Of course, it shouldn't be so; I think there should
> be a feature which marks symbols as "logic":
>
> (%o1) declare (logic, feature)$
> (%o2) declare (x, logic)$
> (%o3) declare ("AND", logic)$
I think "boolean" is a better name here.
> It performs a kind of expand(...) for Zhegalkin polynomials and it relies on
> pattern-matching (also, it seems that it does redundant things). I know, it's
> a very bad idea.
Well, I think it's OK to work out the list of objects, operators,
and identities first, before worrying too much about efficiency.
> By the way, it would be nice to have ability to tell simplifier that op1 is
> distributive wrt op2 and expand expressions involving op1 and op2.
I have often thought so myself. I think a notation such as
declare ("FOO", distributes_over ("BAR"));
would be useful. Dunno how hard Maxima should try to
apply such declarations.
> 0 and 1 are used for shorter I/O.
I think those have to be changed to false and true.
It's going to be disconcerting to users to find out that
if x OR y then foo;
integerp(x) AND floatnump(y);
can't work.
Thanks for working on this topic --
Robert Dodier