Question: Does additionally create new variables?

Hi, 
I'm very stunned by the results displayed in the worksheet below.
It seems that adding extra assumptions on a variable already constrained with "assume" has disturbing side effects ?

Here is a simplified worksheet that exhibits the phenomenon.
Basically I want to solve the equation a*x-b =b with respect to x.
In a first step I set assumptions on a and b and Maple returns x=0, as expected.
Next I add a new condition on b and ask Maple to solve the equation again. I intain this strange result: x=(b~ - b~)/a~.

Am I doing something wrong?

Thanks in advance


 

restart:

anames(user);

assume(a > 0):
assume(b > 0):

f := a*x+b

a*x+b

(1)

g := f=b:
simplify(g);
solve(g, a);

a*x+b = b

 

Warning, solve may be ignoring assumptions on the input variables.

 

0

(2)

anames(user);

b, g, f, a

(3)

additionally(b > a)

h := f=b:
simplify(h);
solve(h, a);

a*x+b = b

 

Warning, solve may be ignoring assumptions on the input variables.

 

anames(user)  # additionally(b > a) doesn(t introduce a new variable

b, h, g, f, a

(4)

indets(g);
indets(h);  # why do I have b~ twice ?
            # This is probably the reason why solve(h, a) doesn't work

{a, b, x}

 

{a, b, b, x}

(5)

lprint(indets(h))

{a, b, b, x}

 

# strange...

solve(h, indets(h)[1]);

simplify(%);

Warning, solve may be ignoring assumptions on the input variables.

 

-(b-b)/x

 

-(b-b)/x

(6)

# remark, dismantle explains nothing about the distinction between b~ and b~


EQUATION(3)
   POLY(6)
      EXPSEQ(4)
         NAME(4): a
         NAME(4): b
         NAME(4): x
      DEGREES(HW): ^2 ^1 ^0 ^1
      INTPOS(2): 1
      DEGREES(HW): ^1 ^0 ^1 ^0
      INTPOS(2): 1
   NAME(4): b
 

 

dismantle(h)


EQUATION(3)
   POLY(6)
      EXPSEQ(4)
         NAME(4): a
         NAME(4): b
         NAME(4): x
      DEGREES(HW): ^2 ^1 ^0 ^1
      INTPOS(2): 1
      DEGREES(HW): ^1 ^0 ^1 ^0
      INTPOS(2): 1
   NAME(4): b
 

 
 

 


 

Download MultipleAssumptions.mw

 

Please Wait...