Sets With a Grading

class sage.categories.sets_with_grading.SetsWithGrading(s=None)

Bases: sage.categories.category.Category

The category of sets with a grading.

A set with a grading is a set \(S\) equipped with a grading by some other set \(I\) (by default the set \(\NN\) of the non-negative integers):

\[S = \biguplus_{i\in I} S_i\]

where the graded components \(S_i\) are (usually finite) sets. The grading function maps each element \(s\) of \(S\) to its grade \(i\), so that \(s\in S_i\).

From implementation point of view, if the graded set is enumerated then each graded component should be enumerated (there is a check in the method _test_graded_components()). The contrary needs not be true.

To implement this category, a parent must either implement graded_component() or subset(). If only subset() is implemented, the first argument must be the grading for compatibility with graded_component(). Additionally either the parent must implement grading() or its elements must implement a method grade(). See the example sage.categories.examples.sets_with_grading.NonNegativeIntegers.

Finally, if the graded set is enumerated (see EnumeratedSets) then each graded component should be enumerated. The contrary needs not be true.

EXAMPLES:

A typical example of a set with a grading is the set of non-negative integers graded by themselves:

sage: N = SetsWithGrading().example(); N
Non negative integers
sage: N.category()
Category of facade sets with grading
sage: N.grading_set()
Non negative integers

The grading function is given by N.grading:

sage: N.grading(4)
4

The graded component \(S_i\) is the set of all integer partitions of \(i\):

sage: N.graded_component(grade = 5)
{5}
sage: N.graded_component(grade = 42)
{42}

Here are some information about this category:

sage: SetsWithGrading()
Category of sets with grading
sage: SetsWithGrading().super_categories()
[Category of sets]
sage: SetsWithGrading().all_super_categories()
[Category of sets with grading,
 Category of sets,
 Category of sets with partial maps,
 Category of objects]

Todo

  • This should be moved to Sets().WithGrading().
  • Should the grading set be a parameter for this category?
  • Does the enumeration need to be compatible with the grading? Be careful that the fact that graded components are allowed to be finite or infinite make the answer complicated.

TESTS:

sage: C = SetsWithGrading()
sage: TestSuite(C).run()
class ParentMethods
generating_series()

Default implementation for generating series.

OUTPUT:

A series, indexed by the grading set.

EXAMPLES:

sage: N = SetsWithGrading().example(); N
Non negative integers
sage: N.generating_series()
1/(-z + 1)
graded_component(grade)

Return the graded component of self with grade grade.

The default implementation just calls the method subset() with the first argument grade.

EXAMPLES:

sage: N = SetsWithGrading().example(); N
Non negative integers
sage: N.graded_component(3)
{3}
grading(elt)

Return the grading of the element elt of self.

This default implementation calls elt.grade().

EXAMPLES:

sage: N = SetsWithGrading().example(); N
Non negative integers
sage: N.grading(4)
4
grading_set()

Return the set self is graded by. By default, this is the set of non-negative integers.

EXAMPLES:

sage: SetsWithGrading().example().grading_set()
Non negative integers
subset(*args, **options)

Return the subset of self described by the given parameters.

See also

-graded_component()

EXAMPLES:

sage: W = WeightedIntegerVectors([3,2,1]); W
Integer vectors weighted by [3, 2, 1]
sage: W.subset(4)
Integer vectors of 4 weighted by [3, 2, 1]
SetsWithGrading.super_categories()

EXAMPLES:

sage: SetsWithGrading().super_categories()
[Category of sets]

Previous topic

Sets

Next topic

Unique factorization domains

This Page