Univariate Laurent Polynomial Ring in t over Integer Ring
sage: a = P(0); a
0
sage: b = t - t; b
0
sage: a.__class__
<type 'sage.rings.polynomial.laurent_polynomial.LaurentPolynomial_univariate'>
sage: b.__class__
<type 'sage.rings.polynomial.laurent_polynomial.LaurentPolynomial_univariate'>
sage: a._fraction_pair()
(0, 1)
sage: b._fraction_pair()
(0, 1)
sage: a == b
True
hash(a)
0
hash(b)
1
Is this a known issue? I wasn't able to find it in any current tickets. I know that hashing of mathematical objects is a difficult area, and in fact should be disabled except for objects with a quickly computable canonical form (like, say, univariate Laurent polynomials over the integers), but it seems that when two objects both call themselves zero they ought to have the same hash.
—Tracy Hall