JuliaAlgebra / DynamicPolynomials.jl

Multivariate polynomials implementation of commutative and non-commutative variables
Other
59 stars 21 forks source link

Bug: comparison of noncommutative monomials #131

Open oisinfaust opened 1 year ago

oisinfaust commented 1 year ago
(code) pkg> st
Status `.../Project.toml`
  [7c1d4256] DynamicPolynomials v0.4.6
  [102ac46a] MultivariatePolynomials v0.4.7

julia> using DynamicPolynomials

julia> @ncpolyvar x[1:3]
(PolyVar{false}[x₁, x₂, x₃],)

julia> m1 = x[2]*x[1]
x₂x₁

julia> m2 = monomials(x, 2)[6]
x₂x₁

julia> m1 == m2
false

I expected m1 and m2 to compare equal. Note that

julia> variables(m1)
2-element Vector{PolyVar{false}}:
 x₂
 x₁

julia> variables(m2)
5-element Vector{PolyVar{false}}:
 x₁
 x₂
 x₃
 x₁
 x₂

This problem seems to also be present on master:

(code) pkg> st
Status `.../Project.toml`
  [7c1d4256] DynamicPolynomials v0.4.5 `https://github.com/JuliaAlgebra/DynamicPolynomials.jl.git#master`
  [102ac46a] MultivariatePolynomials v0.4.6 `https://github.com/JuliaAlgebra/MultivariatePolynomials.jl.git#master`

julia> using DynamicPolynomials

julia> @ncpolyvar x[1:3]
(Variable{DynamicPolynomials.NonCommutative{DynamicPolynomials.CreationOrder}, Graded{LexOrder}}[x₁, x₂, x₃],)

julia> m1 = x[2]*x[1]
x₂x₁

julia> m2 = monomials(x, 2)[4]
x₂x₁

julia> m1 == m2
false