Path: blob/master/sage/categories/commutative_rings.py
4072 views
r"""1Commutative rings2"""3#*****************************************************************************4# Copyright (C) 2005 David Kohel <[email protected]>5# William Stein <[email protected]>6# 2008 Teresa Gomez-Diaz (CNRS) <[email protected]>7# 2008-2009 Nicolas M. Thiery <nthiery at users.sf.net>8#9# Distributed under the terms of the GNU General Public License (GPL)10# http://www.gnu.org/licenses/11#******************************************************************************1213from sage.categories.category import Category14from sage.categories.category_singleton import Category_singleton15from sage.misc.cachefunc import cached_method1617class CommutativeRings(Category_singleton):18"""19The category of commutative rings2021commutative rings with unity, i.e. rings with commutative * and22a multiplicative identity2324EXAMPLES::2526sage: CommutativeRings()27Category of commutative rings28sage: CommutativeRings().super_categories()29[Category of rings]3031TESTS::3233sage: TestSuite(CommutativeRings()).run()3435sage: QQ['x,y,z'] in CommutativeRings()36True37sage: GroupAlgebra(DihedralGroup(3), QQ) in CommutativeRings()38False39sage: MatrixSpace(QQ,2,2) in CommutativeRings()40False4142GroupAlgebra should be fixed::4344sage: GroupAlgebra(CyclicPermutationGroup(3), QQ) in CommutativeRings() # todo: not implemented45True4647"""4849@cached_method50def super_categories(self):51"""52EXAMPLES::5354sage: CommutativeRings().super_categories()55[Category of rings]56"""57from sage.categories.rings import Rings58return [Rings()]5960class ParentMethods:61def is_commutative(self):62"""63Return True, since commutative rings are commutative.6465EXAMPLES::6667sage: Parent(QQ,category=CommutativeRings()).is_commutative()68True6970"""71return True7273class ElementMethods:74pass757677