Cores¶
A -core is a partition from which no rim hook of size
can be removed.
Alternatively, a
-core is an integer partition such that the Ferrers
diagram for the partition contains no cells with a hook of size (a
multiple of)
.
Authors:
- Anne Schilling and Mike Zabrocki (2011): initial version
- Travis Scrimshaw (2012): Added latex output for Core class
-
class
sage.combinat.core.
Core
(parent, core)¶ Bases:
sage.combinat.combinat.CombinatorialElement
A
-core is an integer partition from which no rim hook of size
can be removed.
EXAMPLES:
sage: c = Core([2,1],4); c [2, 1] sage: c = Core([3,1],4); c Traceback (most recent call last): ... ValueError: [3, 1] is not a 4-core
-
affine_symmetric_group_action
(w, transposition=False)¶ Returns the (left) action of the affine symmetric group on
self
.INPUT:
w
is a tupe of integerswith
. If transposition is set to be True, then
is interpreted as a transposition
(see
_transposition_to_reduced_word()
).
The output is the (left) action of the product of the corresponding simple transpositions on
self
, that is. See
affine_symmetric_group_simple_action()
.EXAMPLES:
sage: c = Core([4,2],3) sage: c.affine_symmetric_group_action([0,1,0,2,1]) [8, 6, 4, 2] sage: c.affine_symmetric_group_action([0,2], transposition=True) [4, 2, 1, 1] sage: c = Core([11,8,5,5,3,3,1,1,1],4) sage: c.affine_symmetric_group_action([2,5],transposition=True) [11, 8, 7, 6, 5, 4, 3, 2, 1]
-
affine_symmetric_group_simple_action
(i)¶ Returns the action of the simple transposition
of the affine symmetric group on
self
.This gives the action of the affine symmetric group of type
on the
-core
self
. Ifself
has outside (resp. inside) corners of contentmodulo
, then these corners are added (resp. removed). Otherwise the action is trivial.
EXAMPLES:
sage: c = Core([4,2],3) sage: c.affine_symmetric_group_simple_action(0) [3, 1] sage: c.affine_symmetric_group_simple_action(1) [5, 3, 1] sage: c.affine_symmetric_group_simple_action(2) [4, 2]
This action corresponds to the left action by the
-th simple reflection in the affine symmetric group:
sage: c = Core([4,2],3) sage: W = c.to_grassmannian().parent() sage: i=0 sage: c.affine_symmetric_group_simple_action(i).to_grassmannian() == W.simple_reflection(i)*c.to_grassmannian() True sage: i=1 sage: c.affine_symmetric_group_simple_action(i).to_grassmannian() == W.simple_reflection(i)*c.to_grassmannian() True
-
contains
(other)¶ Checks whether
self
containsother
.INPUT:
other
– another-core or a list
OUTPUT: a boolean
Returns
True
if the Ferrers diagram ofself
contains the Ferrers diagram of other.EXAMPLES:
sage: c = Core([4,2],3) sage: x = Core([4,2,2,1,1],3) sage: x.contains(c) True sage: c.contains(x) False
-
k
()¶ Returns
of the
-core
self
.EXAMPLES:
sage: c = Core([2,1],4) sage: c.k() 4
-
length
()¶ Returns the length of
self
.The length of a
-core is the size of the corresponding
-bounded partition which agrees with the length of the corresponding Grassmannian element, see
to_grassmannian()
.EXAMPLES:
sage: c = Core([4,2],3); c.length() 4 sage: c.to_grassmannian().length() 4 sage: Core([9,5,3,2,1,1], 5).length() 13
-
size
()¶ Returns the size of
self
as a partition.EXAMPLES:
sage: Core([2,1],4).size() 3 sage: Core([4,2],3).size() 6
-
strong_covers
()¶ Returns a list of all elements that cover
self
in strong order.EXAMPLES:
sage: c = Core([1],3) sage: c.strong_covers() [[2], [1, 1]] sage: c = Core([4,2],3) sage: c.strong_covers() [[5, 3, 1], [4, 2, 1, 1]]
-
strong_down_list
()¶ Returns a list of all elements that are covered by
self
in strong order.EXAMPLES:
sage: c = Core([1],3) sage: c.strong_down_list() [[]] sage: c = Core([5,3,1],3) sage: c.strong_down_list() [[4, 2], [3, 1, 1]]
-
strong_le
(other)¶ Strong order (Bruhat) comparison on cores.
INPUT:
other
– another-core
OUTPUT: a boolean
Returns whether
self
<=other
in Bruhat (or strong) order.EXAMPLES:
sage: c = Core([4,2],3) sage: x = Core([4,2,2,1,1],3) sage: c.strong_le(x) True sage: c.strong_le([4,2,2,1,1]) True sage: x = Core([4,1],4) sage: c.strong_le(x) Traceback (most recent call last): ... ValueError: The two cores do not have the same k
-
to_bounded_partition
()¶ Bijection between
-cores and
-bounded partitions.
Maps the
-core
self
to the corresponding-bounded partition. This bijection is achieved by deleting all cells in
self
of hook length greater than.
EXAMPLES:
sage: gamma = Core([9,5,3,2,1,1], 5) sage: gamma.to_bounded_partition() [4, 3, 2, 2, 1, 1]
-
to_grassmannian
()¶ Bijection between
-cores and Grassmannian elements in the affine Weyl group of type
.
For further details, see the documentation of the method
from_kbounded_to_reduced_word()
andfrom_kbounded_to_grassmannian()
.EXAMPLES:
sage: c = Core([3,1,1],3) sage: w = c.to_grassmannian(); w [-1 1 1] [-2 2 1] [-2 1 2] sage: c.parent() 3-Cores of length 4 sage: w.parent() Weyl Group of type ['A', 2, 1] (as a matrix group acting on the root space) sage: c = Core([],3) sage: c.to_grassmannian() [1 0 0] [0 1 0] [0 0 1]
-
to_partition
()¶ Turns the core
self
into the partition identical toself
.EXAMPLES:
sage: mu = Core([2,1,1],3) sage: mu.to_partition() [2, 1, 1]
-
weak_covers
()¶ Returns a list of all elements that cover
self
in weak order.EXAMPLES:
sage: c = Core([1],3) sage: c.weak_covers() [[2], [1, 1]] sage: c = Core([4,2],3) sage: c.weak_covers() [[5, 3, 1]]
-
weak_le
(other)¶ Weak order comparison on cores.
INPUT:
other
– another-core
OUTPUT: a boolean
Returns whether
self
<=other
in weak order.EXAMPLES:
sage: c = Core([4,2],3) sage: x = Core([5,3,1],3) sage: c.weak_le(x) True sage: c.weak_le([5,3,1]) True sage: x = Core([4,2,2,1,1],3) sage: c.weak_le(x) False sage: x = Core([5,3,1],6) sage: c.weak_le(x) Traceback (most recent call last): ... ValueError: The two cores do not have the same k
-
-
sage.combinat.core.
Cores
(k, length=None, **kwargs)¶ A
-core is a partition from which no rim hook of size
can be removed. Alternatively, a
-core is an integer partition such that the Ferrers diagram for the partition contains no cells with a hook of size (a multiple of)
.
The
-cores generally have two notions of size which are useful for different applications. One is the number of cells in the Ferrers diagram with hook less than
, the other is the total number of cells of the Ferrers diagram. In the implementation in Sage, the first of notion is referred to as the
length
of the-core and the second is the
size
of the-core. The class of Cores requires that either the size or the length of the elements in the class is specified.
EXAMPLES:
We create the set of the
-cores of length
. Here the length of a
-core is the size of the corresponding
-bounded partition, see also
length()
:sage: C = Cores(4, 6); C 4-Cores of length 6 sage: C.list() [[6, 3], [5, 2, 1], [4, 1, 1, 1], [4, 2, 2], [3, 3, 1, 1], [3, 2, 1, 1, 1], [2, 2, 2, 1, 1, 1]] sage: C.cardinality() 7 sage: C.an_element() [6, 3]
We may also list the set of
-cores of size
, where the size is the number of boxes in the core, see also
size()
:sage: C = Cores(4, size=6); C 4-Cores of size 6 sage: C.list() [[4, 1, 1], [3, 2, 1], [3, 1, 1, 1]] sage: C.cardinality() 3 sage: C.an_element() [4, 1, 1]
-
class
sage.combinat.core.
Cores_length
(k, n)¶ Bases:
sage.structure.unique_representation.UniqueRepresentation
,sage.structure.parent.Parent
The class of
-cores of length
.
-
from_partition
(part)¶ Converts the partition
part
into a core (as the identity map).This is the inverse method to
to_partition()
.EXAMPLES:
sage: C = Cores(3,4) sage: c = C.from_partition([4,2]); c [4, 2] sage: mu = Partition([2,1,1]) sage: C = Cores(3,3) sage: C.from_partition(mu).to_partition() == mu True sage: mu = Partition([]) sage: C = Cores(3,0) sage: C.from_partition(mu).to_partition() == mu True
-
list
()¶ Returns the list of all
-cores of length
.
EXAMPLES:
sage: C = Cores(3,4) sage: C.list() [[4, 2], [3, 1, 1], [2, 2, 1, 1]]
-
-
class
sage.combinat.core.
Cores_size
(k, n)¶ Bases:
sage.structure.unique_representation.UniqueRepresentation
,sage.structure.parent.Parent
The class of
-cores of size
.
-
from_partition
(part)¶ Converts the partition
part
into a core (as the identity map).This is the inverse method to
to_partition()
.EXAMPLES:
sage: C = Cores(3,size=4) sage: c = C.from_partition([2,1,1]); c [2, 1, 1] sage: mu = Partition([2,1,1]) sage: C = Cores(3,size=4) sage: C.from_partition(mu).to_partition() == mu True sage: mu = Partition([]) sage: C = Cores(3,size=0) sage: C.from_partition(mu).to_partition() == mu True
-
list
()¶ Returns the list of all
-cores of size
.
EXAMPLES:
sage: C = Cores(3, size = 4) sage: C.list() [[3, 1], [2, 1, 1]]
-