diff --git a/src/sage/algebras/quatalg/quaternion_algebra.py b/src/sage/algebras/quatalg/quaternion_algebra.py index 5a615b43978..34a6dfda820 100644 --- a/src/sage/algebras/quatalg/quaternion_algebra.py +++ b/src/sage/algebras/quatalg/quaternion_algebra.py @@ -2393,8 +2393,35 @@ def _richcmp_(self, right, op): sage: I != I # indirect doctest False + + TESTS:: + + sage: B = QuaternionAlgebra(QQ,-1,-11) + sage: i,j,k = B.gens() + sage: I = B.ideal([1,i,j,i*j]) + sage: I == I + True + sage: O = B.ideal([1,i,(i+j)/2,(1+i*j)/2]) + sage: I <= O + True + sage: I >= O + False + sage: I != O + True + sage: I == O + False + sage: I != I + False + sage: I < I + False + sage: I < O + True + sage: I <= I + True + sage: O >= O + True """ - return self.basis_matrix()._richcmp_(right.basis_matrix(), op) + return self.free_module().__richcmp__(right.free_module(), op) def __hash__(self): """ diff --git a/src/sage/modular/quatalg/brandt.py b/src/sage/modular/quatalg/brandt.py index 1c74d953f6d..bfe7f71f8df 100644 --- a/src/sage/modular/quatalg/brandt.py +++ b/src/sage/modular/quatalg/brandt.py @@ -1365,7 +1365,10 @@ def right_ideals(self, B=None): ideals_theta[J_theta] = [J] verbose("found %s of %s ideals" % (len(ideals), self.dimension()), level=2) if len(ideals) >= self.dimension(): - ideals = tuple(sorted(ideals)) + # order by basis matrix (as ideals were previously + # ordered) for backward compatibility and + # deterministic order of the output + ideals = tuple(sorted(ideals, key=lambda x: x.basis_matrix())) self.__right_ideals = ideals return ideals got_something_new = True