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:
Bases: sage.combinat.combinat.CombinatorialObject, sage.structure.element.Element
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
Returns the (left) action of the affine symmetric group on self.
INPUT:
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]
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. If self has outside (resp. inside) corners of content
modulo
, 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
Checks whether self contains other.
INPUT:
OUTPUT: a boolean
Returns True if the Ferrers diagram of self 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
Returns of the
-core self.
EXAMPLES:
sage: c = Core([2,1],4)
sage: c.k()
4
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
Returns the size of self as a partition.
EXAMPLES:
sage: Core([2,1],4).size()
3
sage: Core([4,2],3).size()
6
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 order (Bruhat) comparison on cores.
INPUT:
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):
...
AssertionError: The two cores do not have the same k
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]
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() and from_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]
Turns the core self into the partition identical to self.
EXAMPLES:
sage: mu = Core([2,1,1],3)
sage: mu.to_partition()
[2, 1, 1]
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 order comparison on cores.
INPUT:
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):
...
AssertionError: The two cores do not have the same k
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]
Bases: sage.structure.unique_representation.UniqueRepresentation, sage.structure.parent.Parent
The class of -cores of length
.
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
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]]
Bases: sage.structure.unique_representation.UniqueRepresentation, sage.structure.parent.Parent
The class of -cores of size
.
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
Returns the list of all -cores of size
.
EXAMPLES:
sage: C = Cores(3, size = 4)
sage: C.list()
[[3, 1], [2, 1, 1]]