The order in FreeAbelianGroup
is broken and makes the domain unusable
(e.g., comparison of Set FreeAbelianGroup S
does not work properly)
For example here is a cycle:
----------------------------------------
Z2:=FreeAbelianGroup Symbol
a:= a::FreeAbelianGroup Symbol
b:= b::FreeAbelianGroup Symbol
z:= 0::FreeAbelianGroup Symbol
a < -b
-b < z
z < a
----------------------------------------
thus
axiom
a:= a::FreeAbelianGroup Symbol
Type: FreeAbelianGroup(Symbol)
axiom
b:= b::FreeAbelianGroup Symbol
Type: FreeAbelianGroup(Symbol)
axiom
z:= 0::FreeAbelianGroup Symbol
Type: FreeAbelianGroup(Symbol)
axiom
(a < -b)::Boolean
axiom
(-b < z)::Boolean
axiom
(z < a)::Boolean
proposed patch in the last few lines of free.spad:
545,546c545,546
< ta.gen < tb.gen => true
< ta.gen > tb.gen => false
---
> ta.gen < tb.gen => tb.exp > 0
> ta.gen > tb.gen => ta.exp < 0
apparently revlex order is intended but is not achieved in the current implementation,
as the sign of the trailing exponent is not taken into account.
Status: open => fix proposed
Fixed in
OpenAxiom