algsys with unexpected extra solutions



Hi list,

here is another algsys mystery for me.
Consider the following three equivalent examples,
where the third will give 4 extra solutions
due to floating point calculations.
But couldn't this be avoided with the available information a=0?

Regards Andre

------- algsys-bug7.mac --------
display2d : false;

sols : algsys([b^5-1],[b]);
print(length(sols));
sols : algsys([a,b^5-1],[a,b]);
print(length(sols));
sols : algsys([a,b^5+10*a^2*b^3+5*a^4*b-1],[a,b]);
print(length(sols));
------- algsys-bug7.mac --------

------- algsys-bug7.txt --------
Maxima 5.27.0 http://maxima.sourceforge.net
using Lisp SBCL 1.0.57-1.fc17
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1)                       batch(algsys-bug7.mac)

read and interpret file: /home/user/algsys-bug7.mac
(%i2)                          display2d : false
(%o2) false
(%i3) sols:algsys([b^5-1],[b])
(%o3) [[b = 1],[b = -.5877852522924731*%i-.8090169943749475],
        [b = .5877852522924731*%i-.8090169943749475],
        [b = .3090169943749475-.9510565162951535*%i],
        [b = .9510565162951535*%i+.3090169943749475]]
(%i4) print(length(sols))
5
(%o4) 5
(%i5) sols:algsys([a,b^5-1],[a,b])
(%o5) [[a = 0,b = 1],[a = 0.0,b = .9510565162951535*%i+.3090169943749475],
        [a = 0.0,b = .3090169943749475-.9510565162951535*%i],
        [a = 0.0,b = .5877852522924731*%i-.8090169943749475],
        [a = 0.0,b = -.5877852522924731*%i-.8090169943749475]]
(%i6) print(length(sols))
5
(%o6) 5
(%i7) sols:algsys([a,-1+5*a^4*b+10*a^2*b^3+b^5],[a,b])
(%o7) [[a = -3.365478305086219e-9*%i-5.52504774056774e-10,
         b = .9510565162951535*%i+.3090169943749475],
        [a = 3.3654783050862186e-9*%i+5.52504774056774e-10,
         b = .9510565162951535*%i+.3090169943749475],
        [a = 5.525047740567723e-10-3.365478305086219e-9*%i,
         b = .3090169943749475-.9510565162951535*%i],
        [a = 3.3654783050862186e-9*%i-5.525047740567731e-10,
         b = .3090169943749475-.9510565162951535*%i],
        [a = 7.371443719820873e-10-4.6541463951360895e-9*%i,
         b = .5877852522924731*%i-.8090169943749475],
        [a = 4.6541463951360895e-9*%i-7.371443719820879e-10,
         b = .5877852522924731*%i-.8090169943749475],
        [a = -4.65414639513609e-9*%i-7.371443719820894e-10,
         b = -.5877852522924731*%i-.8090169943749475],
        [a = 4.6541463951360895e-9*%i+7.371443719820898e-10,
         b = -.5877852522924731*%i-.8090169943749475],[a = 0,b = 1]]
(%i8) print(length(sols))
9
(%o8) 9
(%o8) "/home/user/algsys-bug7.mac"
------- algsys-bug7.txt --------

-------------- next part --------------
Maxima 5.27.0 http://maxima.sourceforge.net
using Lisp SBCL 1.0.57-1.fc17
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1)                       batch(algsys-bug7.mac)

read and interpret file: /home/user/algsys-bug7.mac
(%i2)                          display2d : false
(%o2) false
(%i3) sols:algsys([b^5-1],[b])
(%o3) [[b = 1],[b = -.5877852522924731*%i-.8090169943749475],
       [b = .5877852522924731*%i-.8090169943749475],
       [b = .3090169943749475-.9510565162951535*%i],
       [b = .9510565162951535*%i+.3090169943749475]]
(%i4) print(length(sols))
5 
(%o4) 5
(%i5) sols:algsys([a,b^5-1],[a,b])
(%o5) [[a = 0,b = 1],[a = 0.0,b = .9510565162951535*%i+.3090169943749475],
       [a = 0.0,b = .3090169943749475-.9510565162951535*%i],
       [a = 0.0,b = .5877852522924731*%i-.8090169943749475],
       [a = 0.0,b = -.5877852522924731*%i-.8090169943749475]]
(%i6) print(length(sols))
5 
(%o6) 5
(%i7) sols:algsys([a,-1+5*a^4*b+10*a^2*b^3+b^5],[a,b])
(%o7) [[a = -3.365478305086219e-9*%i-5.52504774056774e-10,
        b = .9510565162951535*%i+.3090169943749475],
       [a = 3.3654783050862186e-9*%i+5.52504774056774e-10,
        b = .9510565162951535*%i+.3090169943749475],
       [a = 5.525047740567723e-10-3.365478305086219e-9*%i,
        b = .3090169943749475-.9510565162951535*%i],
       [a = 3.3654783050862186e-9*%i-5.525047740567731e-10,
        b = .3090169943749475-.9510565162951535*%i],
       [a = 7.371443719820873e-10-4.6541463951360895e-9*%i,
        b = .5877852522924731*%i-.8090169943749475],
       [a = 4.6541463951360895e-9*%i-7.371443719820879e-10,
        b = .5877852522924731*%i-.8090169943749475],
       [a = -4.65414639513609e-9*%i-7.371443719820894e-10,
        b = -.5877852522924731*%i-.8090169943749475],
       [a = 4.6541463951360895e-9*%i+7.371443719820898e-10,
        b = -.5877852522924731*%i-.8090169943749475],[a = 0,b = 1]]
(%i8) print(length(sols))
9 
(%o8) 9
(%o8) "/home/user/algsys-bug7.mac"
-------------- next part --------------
display2d : false;

sols : algsys([b^5-1],[b]);
print(length(sols));
sols : algsys([a,b^5-1],[a,b]);
print(length(sols));
sols : algsys([a,b^5+10*a^2*b^3+5*a^4*b-1],[a,b]);
print(length(sols));