Symbolics not simplifying fully

When multiplying expr * expr^-1 . Symbolics.simplify / Symbolics.simplify_fractions don’t return 1

julia> using Symbolics

julia> @variables m mol
2-element Vector{Num}:
   m
 mol

julia> simplify(eval(Meta.parse("m^3*mol^-1")) * eval(Meta.parse("m^-3*mol")))
(m^3)*((1 / m)^3)
julia> simplify_fractions(eval(Meta.parse("m^3*mol^-1")) * eval(Meta.parse("m^-3*mol")))
(m^3)*((1 / m)^3)

What am I missing?

The cancellation is not well defined for m=0, could that be why?

If that were the case, I would expect the mol variables to not cancel either because of mol=0

1 Like

Naively, (added Symbolics)

julia> @variables x
1-element Vector{Num}:
 x

julia> x*inv(x)
1

julia> x^2*inv(x)^2
(x^2)*((1 / x)^2)

julia> x^2*inv(x)*inv(x)
1