Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.

Commit

Permalink
Merge branch 'public/11187' of trac.sagemath.org:sage into public/ref…
Browse files Browse the repository at this point in the history
…lection_groups-11187
  • Loading branch information
Travis Scrimshaw committed Apr 19, 2016
2 parents 0aec256 + c5c43bc commit 244e6ff
Show file tree
Hide file tree
Showing 26 changed files with 6,810 additions and 627 deletions.
4 changes: 4 additions & 0 deletions src/doc/en/reference/categories/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ Individual Categories
sage/categories/commutative_ring_ideals
sage/categories/commutative_rings
sage/categories/complete_discrete_valuation
sage/categories/complex_reflection_groups
sage/categories/coxeter_group_algebras
sage/categories/coxeter_groups
sage/categories/crystals
Expand All @@ -70,6 +71,7 @@ Individual Categories
sage/categories/filtered_algebras_with_basis
sage/categories/filtered_modules
sage/categories/filtered_modules_with_basis
sage/categories/finite_complex_reflection_groups
sage/categories/finite_coxeter_groups
sage/categories/finite_crystals
sage/categories/finite_dimensional_algebras_with_basis
Expand All @@ -93,6 +95,7 @@ Individual Categories
sage/categories/function_fields
sage/categories/g_sets
sage/categories/gcd_domains
sage/categories/generalized_coxeter_groups
sage/categories/graded_algebras
sage/categories/graded_algebras_with_basis
sage/categories/graded_bialgebras
Expand Down Expand Up @@ -148,6 +151,7 @@ Individual Categories
sage/categories/sets_cat
sage/categories/sets_with_grading
sage/categories/sets_with_partial_maps
sage/categories/shephard_groups
sage/categories/simplicial_complexes
sage/categories/super_algebras
sage/categories/super_algebras_with_basis
Expand Down
2 changes: 2 additions & 0 deletions src/doc/en/reference/combinat/module_list.rst
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,8 @@ Comprehensive Module list
sage/combinat/root_system/non_symmetric_macdonald_polynomials
sage/combinat/root_system/pieri_factors
sage/combinat/root_system/plot
sage/combinat/root_system/reflection_group_complex
sage/combinat/root_system/reflection_group_real
sage/combinat/root_system/root_lattice_realization_algebras
sage/combinat/root_system/root_lattice_realizations
sage/combinat/root_system/root_space
Expand Down
6 changes: 3 additions & 3 deletions src/sage/categories/all.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from sage.misc.lazy_import import lazy_import

from category import Category

from category_types import(
Expand Down Expand Up @@ -117,10 +119,9 @@
from graded_bialgebras_with_basis import GradedBialgebrasWithBasis
from graded_hopf_algebras_with_basis import GradedHopfAlgebrasWithBasis


# Coxeter groups
from coxeter_groups import CoxeterGroups
from finite_coxeter_groups import FiniteCoxeterGroups
lazy_import('sage.categories.finite_coxeter_groups', 'FiniteCoxeterGroups')
from weyl_groups import WeylGroups
from finite_weyl_groups import FiniteWeylGroups
from affine_weyl_groups import AffineWeylGroups
Expand All @@ -133,5 +134,4 @@
from classical_crystals import ClassicalCrystals

# polyhedra
from sage.misc.lazy_import import lazy_import
lazy_import('sage.categories.polyhedra', 'PolyhedralSets')
14 changes: 9 additions & 5 deletions src/sage/categories/category.py
Original file line number Diff line number Diff line change
Expand Up @@ -1078,8 +1078,6 @@ def additional_structure(self):
Category of left modules over Integer Ring
sage: Coalgebras(QQ).additional_structure() # coproduct
Category of coalgebras over Rational Field
sage: CoxeterGroups().additional_structure() # distinguished generators
Category of coxeter groups
sage: Crystals().additional_structure() # crystal operators
Category of crystals
Expand Down Expand Up @@ -1176,9 +1174,15 @@ def additional_structure(self):
This method together with the methods overloading it
provide the basic data to determine, for a given category,
the super categories that define some structure (see
:meth:`structure`), and to test whether a
category is a full subcategory of some other category (see
:meth:`is_full_subcategory`).
:meth:`structure`), and to test whether a category is a
full subcategory of some other category (see
:meth:`is_full_subcategory`). For example, the category of
Coxeter groups is not full subcategory of the category of
groups since morphisms need to perserve the distinguished
generators::
sage: CoxeterGroups().is_full_subcategory(Groups())
False
The support for modeling full subcategories has been
introduced in :trac:`16340`.
Expand Down
3 changes: 2 additions & 1 deletion src/sage/categories/category_with_axiom.py
Original file line number Diff line number Diff line change
Expand Up @@ -1675,14 +1675,15 @@ class ``Sets.Finite``), or in a separate file (typically in a class
"Compact",
"Differentiable", "Smooth", "Analytic", "AlmostComplex",
"FinitelyGeneratedAsMagma",
"WellGenerated",
"Facade", "Finite", "Infinite",
"Complete",
"FiniteDimensional", "Connected", "WithBasis",
"Irreducible",
"Commutative", "Associative", "Inverse", "Unital", "Division", "NoZeroDivisors",
"AdditiveCommutative", "AdditiveAssociative", "AdditiveInverse", "AdditiveUnital",
"Distributive",
"Endset"
"Endset",
)

def uncamelcase(s,separator=" "):
Expand Down
147 changes: 147 additions & 0 deletions src/sage/categories/complex_reflection_groups.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
r"""
Complex reflection groups
"""
#*****************************************************************************
# Copyright (C) 2011-2015 Christian Stump <christian.stump at gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
# http://www.gnu.org/licenses/
#*****************************************************************************

from sage.misc.cachefunc import cached_method
from sage.misc.lazy_import import LazyImport
from sage.categories.category_singleton import Category_singleton
from sage.categories.complex_reflection_or_generalized_coxeter_groups import ComplexReflectionOrGeneralizedCoxeterGroups

class ComplexReflectionGroups(Category_singleton):
r"""
The category of complex reflection groups.
Let `V` be a complex vector space. A *complex reflection* is an
element of `\operatorname{GL}(V)` fixing an hyperplane pointwise
and acting by multiplication by a root of unity on a complementary
line.
A *complex reflection group* is a group `W` that is (isomorphic
to) a subgroup of some general linear group `\operatorname{GL}(V)`
generated by a distinguished set of complex reflections.
The dimension of `V` is the *rank* of `W`.
For a comprehensive treatment of complex reflection groups and
many definitions and theorems used here, we refer to [LT2009]_.
See also :wikipedia:`Reflection_group`.
.. SEEALSO::
:func:`ReflectionGroup` for usage examples of this category.
REFERENCES:
.. [LT2009] G.I. Lehrer and D.E. Taylor. *Unitary reflection groups*.
Australian Mathematical Society Lecture Series, 2009.
EXAMPLES::
sage: from sage.categories.complex_reflection_groups import ComplexReflectionGroups
sage: ComplexReflectionGroups()
Category of complex reflection groups
sage: ComplexReflectionGroups().super_categories()
[Category of complex reflection or generalized coxeter groups]
sage: ComplexReflectionGroups().all_super_categories()
[Category of complex reflection groups,
Category of complex reflection or generalized coxeter groups,
Category of groups,
Category of monoids,
Category of finitely generated semigroups,
Category of semigroups,
Category of finitely generated magmas,
Category of inverse unital magmas,
Category of unital magmas,
Category of magmas,
Category of enumerated sets,
Category of sets,
Category of sets with partial maps,
Category of objects]
An example of a reflection group::
sage: W = ComplexReflectionGroups().example(); W
5-colored permutations of size 3
``W`` is in the category of complex reflection groups::
sage: W in ComplexReflectionGroups()
True
TESTS::
sage: TestSuite(W).run()
sage: TestSuite(ComplexReflectionGroups()).run()
"""

@cached_method
def super_categories(self):
r"""
Return the super categories of ``self``.
EXAMPLES::
sage: from sage.categories.complex_reflection_groups import ComplexReflectionGroups
sage: ComplexReflectionGroups().super_categories()
[Category of complex reflection or generalized coxeter groups]
"""
return [ComplexReflectionOrGeneralizedCoxeterGroups()]

def additional_structure(self):
r"""
Return ``None``.
Indeed, all the structure complex reflection groups have in
addition to groups (simple reflections, ...) is already
defined in the super category.
.. SEEALSO:: :meth:`Category.additional_structure`
EXAMPLES::
sage: from sage.categories.complex_reflection_groups import ComplexReflectionGroups
sage: ComplexReflectionGroups().additional_structure()
"""
return None

def example(self):
r"""
Return an example of a complex reflection group.
EXAMPLES::
sage: from sage.categories.complex_reflection_groups import ComplexReflectionGroups
sage: ComplexReflectionGroups().example()
5-colored permutations of size 3
"""
from sage.combinat.colored_permutations import ColoredPermutations
return ColoredPermutations(5, 3)

class ParentMethods:

@cached_method
def rank(self):
r"""
Return the rank of ``self``.
The rank of ``self`` is the dimension of the smallest
faithfull reflection representation of ``self``.
EXAMPLES::
sage: W = CoxeterGroups().example(); W
The symmetric group on {0, ..., 3}
sage: W.rank()
3
"""

Finite = LazyImport('sage.categories.finite_complex_reflection_groups', 'FiniteComplexReflectionGroups', as_name='Finite')
Loading

0 comments on commit 244e6ff

Please sign in to comment.