Question: Unexpected evaluation

I crated this "defs.mpl" File:
assume(a>0,b>=a,b>d,L>b,u>0,u<L):
def4 := ['L' = 2865, 'a' = 315, 'b' = 315, 'd' = 210, 'h' = 140]:
def5 := ['L' = 2865, 'a' = 315, 'b' = 315, 'd' = 280, 'h' = 140]:

clear:=proc()
 unassign('L',' a',' b',' d',' h');
 assume(a>0,b>=a,b>d,L>b,u>0,u<L);
 is(b>0);
end proc:

reassign:=proc(defs)
 clear();
 assume(a>0,b>=a,b>d,L>b,u>0,u<L);
 assign(defs);
 defs;
end proc:

Then it produced this Output:

> read "defs.mpl"
> assign(def4);
> def4;
          [2865 = 2865, 315 = 315, 315 = 315, 210 = 210, 140 = 140]

> clear();
                                     true

> def4;
                [L = 2865, a = 315, b = 315, d = 210, h = 140]

> reassign(def5);
                [L = 2865, a = 315, b = 315, d = 280, h = 140]

> def5;
               [L = 2865, a = 315, b = 315, d = 280, 140 = 140]

> def4;
               [L = 2865, a = 315, b = 315, d = 210, 140 = 140]

Why is here 'h' replaced by its value, while the other variable names are printed as expected.

In my Settings I specified that assumed variables shall not have an annotation.

Please Wait...