# HG changeset patch
# User Robert Bradshaw <robertwb@math.washington.edu>
# Date 1284849691 25200
# Node ID eec399f88e2219466677cb7502950eaf982a102c
# Parent 117000f776a9b985d9a3e3254d75fe1807918e8e
#9944 - Categories for polynomial rings.
diff -r 117000f776a9 -r eec399f88e22 sage/categories/principal_ideal_domains.py
a
|
b
|
|
9 | 9 | #****************************************************************************** |
10 | 10 | |
11 | 11 | from sage.categories.category import Category |
12 | | from sage.categories.basic import GcdDomains |
13 | 12 | from sage.misc.cachefunc import cached_method |
14 | 13 | |
15 | 14 | class PrincipalIdealDomains(Category): |
… |
… |
|
27 | 26 | sage: PrincipalIdealDomains() |
28 | 27 | Category of principal ideal domains |
29 | 28 | sage: PrincipalIdealDomains().super_categories() |
30 | | [Category of gcd domains] |
| 29 | [Category of unique factorization domains] |
31 | 30 | |
32 | 31 | See also: http://en.wikipedia.org/wiki/Principal_ideal_domain |
33 | 32 | |
… |
… |
|
42 | 41 | EXAMPLES:: |
43 | 42 | |
44 | 43 | sage: PrincipalIdealDomains().super_categories() |
45 | | [Category of gcd domains] |
| 44 | [Category of unique factorization domains] |
46 | 45 | """ |
47 | | return [GcdDomains()] |
| 46 | from sage.categories.basic import UniqueFactorizationDomains |
| 47 | return [UniqueFactorizationDomains()] |
48 | 48 | |
49 | 49 | class ParentMethods: |
50 | 50 | pass |
diff -r 117000f776a9 -r eec399f88e22 sage/rings/polynomial/polynomial_ring.py
a
|
b
|
|
94 | 94 | |
95 | 95 | from sage.structure.element import Element |
96 | 96 | import sage.algebras.algebra |
| 97 | import sage.categories.basic as categories |
97 | 98 | import sage.rings.commutative_ring as commutative_ring |
98 | 99 | import sage.rings.commutative_algebra as commutative_algebra |
99 | 100 | import sage.rings.ring as ring |
… |
… |
|
183 | 184 | 0 |
184 | 185 | sage: (x - 2/3)*(x^2 - 8*x + 16) |
185 | 186 | x^3 - 26/3*x^2 + 64/3*x - 32/3 |
| 187 | |
| 188 | sage: category(ZZ['x']) |
| 189 | Category of unique factorization domains |
| 190 | sage: category(GF(7)['x']) |
| 191 | Category of euclidean domains |
186 | 192 | """ |
187 | | sage.algebras.algebra.Algebra.__init__(self, base_ring, names=name, normalize=True) |
| 193 | R_cat = base_ring.category() |
| 194 | if R_cat.is_subcategory(categories.Fields()): |
| 195 | category = categories.EuclideanDomains() |
| 196 | elif R_cat.is_subcategory(categories.UniqueFactorizationDomains()): |
| 197 | category = categories.UniqueFactorizationDomains() |
| 198 | elif R_cat.is_subcategory(categories.IntegralDomains()): |
| 199 | category = categories.IntegralDomains() |
| 200 | else: |
| 201 | category = categories.CommutativeRings() |
| 202 | sage.algebras.algebra.Algebra.__init__(self, base_ring, names=name, normalize=True, category=category) |
188 | 203 | self.__is_sparse = sparse |
189 | 204 | if element_class: |
190 | 205 | self._polynomial_class = element_class |