This repository has been archived by the owner on Jan 30, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding some more stubs for categories.
- Loading branch information
Travis Scrimshaw
committed
Apr 12, 2015
1 parent
bdb08fb
commit 68b85e9
Showing
13 changed files
with
576 additions
and
110 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
r""" | ||
CW Complexes | ||
""" | ||
#***************************************************************************** | ||
# Copyright (C) 2015 Travis Scrimshaw <tscrim at ucdavis.edu> | ||
# | ||
# Distributed under the terms of the GNU General Public License (GPL) | ||
# http://www.gnu.org/licenses/ | ||
#****************************************************************************** | ||
|
||
from sage.misc.abstract_method import abstract_method | ||
from sage.misc.cachefunc import cached_method | ||
from sage.categories.category_singleton import Category_singleton | ||
from sage.categories.category_with_axiom import CategoryWithAxiom | ||
from sage.categories.sets_cat import Sets | ||
|
||
class CWComplexes(Category_singleton): | ||
r""" | ||
The category of CW complexes. | ||
A CW complex is a Closure-finite cell complex in the Weak toplogy. | ||
REFERENCES: | ||
- :wikipedia:`CW_complex` | ||
EXAMPLES:: | ||
sage: from sage.categories.cw_complexes import CWComplexes | ||
sage: C = CWComplexes(); C | ||
Category of CW complexes | ||
TESTS:: | ||
sage: TestSuite(C).run() | ||
""" | ||
@cached_method | ||
def super_categories(self): | ||
""" | ||
EXAMPLES:: | ||
sage: from sage.categories.cw_complexes import CWComplexes | ||
sage: CWComplexes().super_categories() | ||
[Category of topological spaces] | ||
""" | ||
return [Sets().Topological()] | ||
|
||
def _repr_object_names(self): | ||
""" | ||
EXAMPLES:: | ||
sage: from sage.categories.cw_complexes import CWComplexes | ||
sage: CWComplexes() | ||
Category of CW complexes | ||
""" | ||
return "CW complexes" | ||
|
||
class SubcategoryMethods: | ||
@cached_method | ||
def Connected(self): | ||
""" | ||
Return the full subcategory of the connected objects of ``self``. | ||
EXAMPLES:: | ||
sage: from sage.categories.cw_complexes import CWComplexes | ||
sage: CWComplexes().Connected() | ||
Category of connected CW complexes | ||
TESTS:: | ||
sage: TestSuite(CWComplexes().Connected()).run() | ||
sage: CWComplexes().Connected.__module__ | ||
'sage.categories.cw_complexes' | ||
""" | ||
return self._with_axiom('Connected') | ||
|
||
@cached_method | ||
def FiniteDimensional(self): | ||
""" | ||
Return the full subcategory of the finite dimensional | ||
objects of ``self``. | ||
EXAMPLES:: | ||
sage: from sage.categories.cw_complexes import CWComplexes | ||
sage: C = CWComplexes().FiniteDimensional(); C | ||
Category of finite dimensional CW complexes | ||
TESTS:: | ||
sage: from sage.categories.cw_complexes import CWComplexes | ||
sage: C = CWComplexes().FiniteDimensional() | ||
sage: TestSuite(C).run() | ||
sage: CWComplexes().Connected().FiniteDimensional.__module__ | ||
'sage.categories.cw_complexes' | ||
""" | ||
return self._with_axiom('FiniteDimensional') | ||
|
||
class Connected(CategoryWithAxiom): | ||
""" | ||
The category of connected CW complexes. | ||
""" | ||
|
||
class FiniteDimensional(CategoryWithAxiom): | ||
""" | ||
Category of finite dimensional CW complexes. | ||
""" | ||
|
||
class Finite(CategoryWithAxiom): | ||
""" | ||
Category of finite CW complexes. | ||
""" | ||
def extra_super_categories(self): | ||
""" | ||
Return the extra super categories of ``self``. | ||
A finite CW complex is a compact finite-dimensional CW complex. | ||
""" | ||
return [CWComplexes().FiniteDimensional(), Sets().Topological().Compact()] | ||
|
||
class ParentMethods: | ||
@cached_method | ||
def dimension(self): | ||
""" | ||
Return the dimension of ``self``. | ||
""" | ||
return max(c.dimension() for c in self.cells()) | ||
|
||
def Compact_extra_super_categories(self): | ||
""" | ||
Return extraneous super categories for ``CWComplexes().Compact()``. | ||
A compact CW complex is finite, see Proposition A.1 in [Hat]_. | ||
.. TODO:: | ||
Fix the name of finite CW complexes. | ||
EXAMPLES:: | ||
sage: from sage.categories.cw_complexes import CWComplexes | ||
sage: CWComplexes().Compact() | ||
Category of finite finite dimensional CW complexes | ||
sage: CWComplexes().Compact() is CWComplexes().Finite() | ||
True | ||
""" | ||
return (Sets().Finite(),) | ||
|
||
class ParentMethods: | ||
@abstract_method | ||
def dimension(self): | ||
""" | ||
Return the dimension of ``self``. | ||
""" | ||
|
||
@abstract_method(optional=True) | ||
def cells(self): | ||
""" | ||
Return the cells of ``self``. | ||
""" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
""" | ||
Graphs | ||
""" | ||
#***************************************************************************** | ||
# Copyright (C) 2015 Travis Scrimshaw <tscrim at ucdavis.edu> | ||
# | ||
# Distributed under the terms of the GNU General Public License (GPL) | ||
# http://www.gnu.org/licenses/ | ||
#****************************************************************************** | ||
|
||
#from sage.misc.abstract_method import abstract_method | ||
from sage.misc.cachefunc import cached_method | ||
from sage.categories.category_singleton import Category_singleton | ||
from sage.categories.simplicial_complexes import SimplicialComplexes | ||
|
||
class Graphs(Category_singleton): | ||
r""" | ||
The category of graphs. | ||
EXAMPLES:: | ||
sage: from sage.categories.graphs import Graphs | ||
sage: C = Graphs(); C | ||
Category of graphs | ||
TESTS:: | ||
sage: TestSuite(C).run() | ||
""" | ||
@cached_method | ||
def super_categories(self): | ||
""" | ||
EXAMPLES:: | ||
sage: from sage.categories.graphs import Graphs | ||
sage: Graphs().super_categories() | ||
[Category of simplicial complexes] | ||
""" | ||
return [SimplicialComplexes()] | ||
|
||
class ParentMethods: | ||
def dimension(self): | ||
""" | ||
Return the dimension of ``self`` as a CW complex. | ||
""" | ||
if self.edges(): | ||
return 1 | ||
return 0 | ||
|
||
def facets(self): | ||
""" | ||
Return the facets of ``self``. | ||
""" | ||
return self.edges() | ||
|
||
def faces(self): | ||
""" | ||
Return the faces of ``self``. | ||
""" | ||
return set(self.edges()).union(self.vertices()) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.