problem with is();



Hello again,

First a question:  I am trying to test some complicated inequalities. 
 Since they don't seem to be true in general, I need to figure out the 
conditions on k, ka and kc which make them true. I'm  wondering if there 
is some easier way to do this than assume() and is() and lots of 
intervention?  Do we have something like a whenis() function, which 
would return a set of conditions under which an inequality holds?

Second, I think that I may have found a problem with Maxima's reasoning: 
 I wonder if this is a bug, or whether I'm expecting too much of Maxima. 
 C28 is true, as it should be.  I think C29 should be true, too, by 
transitivity and C31.  I added curly-braces in D30; they  should line up 
vertically, for in case the formatting gets messed up.


(C28) is(3*k-1<kc);

(D28)                      TRUE
(C29) is(3*k-1<2*kc);

MACSYMA was unable to evaluate the predicate:
ERREXP1
 -- an error.  Quitting.  To debug this try DEBUGMODE(TRUE);)
(C30) facts(initial);

                                                                         
   {2 - ka    }  {kc + 1    }        { 3 k  }
(D30) [kc + ka - 1 > 0, 1 > ka, 1 > kc, k > {------}, {------} > k,{ 
---} > kc,
                                                                        
    { 3            }  { 3           }         {  2    }

                    ka + 3 k - 2 > 0, kc - 3 k + 1 > 0, kc > 0]
(C31) is(kc<2*kc);

(D31)                      TRUE
(C32) is(3*k-1<2*kc);

MACSYMA was unable to evaluate the predicate:
ERREXP1
 -- an error.  Quitting.  To debug this try DEBUGMODE(TRUE);)
(C33)
By the way, this is Maxima 5.6 on gcl 2.4 on Redhat 7.1.

Thanks,
Nels