Symbolics.jl: bug in unique() involving negative Floats?

Hello there!

I encountered the weirdest behavior of the unique() function when throwing symbols at it:

using Symbolics

@variables a b

unique([-(a+1), -1.0(a+1)]) # 1-element Vector{Num}: -1 - a
unique([-a-b, -1(a+b)])     # 1-element Vector{Num}: -a - b
unique([2a+2b, 2.0(a+b)])   # 1-element Vector{Num}: 2a + 2b
unique([-(a+b), -1.0(a+b)]) # 2-element Vector{Num}: -a - b      -a - b
isequal(-(a+b), -1.0(a+b))  # true

unique() seems to work as expected for linear manipulations involving Int and positive Float, but not negative Float.

According to the unique() documentation it is supposed to behave like isequal(), but this is clearly not the case here. I tried to look under the hood of unique() to figure out the problem, but I don’t understand anything, still too much of a noob it seems…

Please let me know whether or not this is a bug and if I can do anything to open a bug report or so (never done that).


P.S.: Using Julia 1.7 and Symbolics 4.3

For bug reports please open an issue on the repo.