Opened 10 years ago
Last modified 6 years ago
#14012 new defect
Two implementations of free group algebra
Reported by: | Volker Braun | Owned by: | joyner |
---|---|---|---|
Priority: | major | Milestone: | sage-6.4 |
Component: | group theory | Keywords: | |
Cc: | Punarbasu Purkayastha, Travis Scrimshaw | Merged in: | |
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
There is also this inconsistency in the output of the following two functions. In language, they say the same thing, but they are not mathematically equal (according to the current implementation):
sage: G.<a,b> = FreeGroup() sage: test = (a).fox_derivative(a) sage: f = test.parent() sage: g = GroupAlgebra(G, ZZ) sage: print f Group algebra of Free Group on generators {a, b, c, d, e} over Integer Ring sage: print g Group algebra of group "Free Group on generators {a, b, c, d, e}" over base ring Integer Ring sage: print f == g False
--
Related discussion in combinat-devel.
Change History (15)
comment:1 Changed 10 years ago by
Description: | modified (diff) |
---|
comment:2 Changed 9 years ago by
Milestone: | sage-5.11 → sage-5.12 |
---|
comment:3 Changed 9 years ago by
Milestone: | sage-6.1 → sage-6.2 |
---|
comment:4 Changed 9 years ago by
Cc: | Travis Scrimshaw added |
---|
comment:5 Changed 9 years ago by
Milestone: | sage-6.2 → sage-6.3 |
---|
comment:6 Changed 8 years ago by
Milestone: | sage-6.3 → sage-6.4 |
---|
comment:7 follow-up: 8 Changed 6 years ago by
comment:8 follow-up: 9 Changed 6 years ago by
Replying to jakobkroeker:
Not sure if the concept of (true,false) is sufficient here. I think there should be at least an additional 'cannot answer the question' and 'incomparable'?
You don't understand the problem. They should be the same object because they are suppose to be the same group algebra since it comes from the same group.
comment:9 Changed 6 years ago by
Replying to tscrim:
Replying to jakobkroeker:
Not sure if the concept of (true,false) is sufficient here. I think there should be at least an additional 'cannot answer the question' and 'incomparable'?
You don't understand the problem. They should be the same object because they are suppose to be the same group algebra since it comes from the same group.
Well, then please correct me. Is that true that we have two different representations 'f' and 'g' of the same mathematical object and sage does not know how to check their equivalence (or does this incorretly) and therefore just returns false in that case. And this sage behaviour is in my opinion inadequate and breaks everyhing (returning 'false' in case sage in fact cannot give an answer or does not know an answer). So from my point of view the comparing concept in sage is unfortunate (everything is comparable)
comment:10 follow-up: 11 Changed 6 years ago by
This has nothing to do with comparisons. Instead it has to do with what objects are created. The same object should be created by both approaches; probably getting rid of the GroupAlgebra
class. See the sage-combinat-devel thread.
comment:11 Changed 6 years ago by
Replying to tscrim:
This has nothing to do with comparisons. Instead it has to do with what objects are created. The same object should be created by both approaches; probably getting rid of the
GroupAlgebra
class. See the sage-combinat-devel thread.
While I agree that one solution could be that the same object should be created by both approaches, I stronlgy disagree that the general issue has nothing to do with comparison.
This has nothing to do with comparisons
What are your arguments?
comment:12 Changed 6 years ago by
sage: G.<a,b> = FreeGroup() sage: test = (a).fox_derivative(a) sage: f = test.parent() sage: g = GroupAlgebra(G, ZZ) sage: f<g True sage: g<f True sage: f.parent() <class 'sage.combinat.free_module.CombinatorialFreeModule_with_category'> sage: g.parent() <class 'sage.algebras.group_algebra.GroupAlgebra_with_category'> sage: print f Group algebra of Free Group on generators {a, b} over Integer Ring sage: print g Group algebra of group "Free Group on generators {a, b}" over base ring Integer Ring
We also get that 'f<g' and 'g<f'. Wonderfull. So here '<' is only a binary operator with no further meaning; same for '==' ? Question: Is it at all legit to ask (in sage) for '==' ' or '<' and expect something mathematical (e.g. equivalence or ordering) regardless of the object type? If not, what are the alternatives (to do some math)?
comment:13 follow-up: 14 Changed 6 years ago by
I believe the point of the discussion on combinat-devel is that the second implementation (GroupAlgebra(G, ZZ)
) should just be removed. So why waste time working on comparisons between two objects, one of which shouldn't continue to exist?
comment:14 Changed 6 years ago by
Replying to jhpalmieri:
I believe the point of the discussion on combinat-devel is that the second implementation (
GroupAlgebra(G, ZZ)
) should just be removed. So why waste time working on comparisons between two objects, one of which shouldn't continue to exist?
I do not want to fix the comparisons between the two group algebra objects above. I just want to point out that from my point of view either
- asking sage for f==g and expecting something mathematical is invalid and thus this ticket is (1)
Or
- the way how comparisons are done in sage are unfortunate.(2)
if (1) holds, then I'm immediately questioning what would be the usual way to ask sage if 'f' is equal to 'g' mathematically for any mathematical objects 'f' and 'g', regardless whether sage can answer this question or not. And, I expect that sage would NOT return 'false' in case sage is not able to answer the question. 'false' already has a meaning which is NOT 'cannot answer the question'
comment:15 Changed 6 years ago by
If that's your question then make a new ticket. This one is specifically about the group algebras being different objects, hence fundamentally not about comparisons.
Also, we have already had quite a number of discussions about trinary logic and ==
versus "isomorphic". sage-devel has probably a dozen such threads.
Not sure if the concept of (true,false) is sufficient here. I think there should be at least an additional 'cannot answer the question' and 'incomparable'?