Sum species

class sage.combinat.species.product_species.ProductSpeciesStructure(parent, labels, subset, left, right)
__init__(parent, labels, subset, left, right)

TESTS:

sage: S = species.SetSpecies()
sage: F = S * S
sage: a = F.structures(['a','b','c']).random_element()
sage: a == loads(dumps(a))
True
__repr__()

Returns the string representation of this object.

EXAMPLES:

sage: S = species.SetSpecies()
sage: (S*S).structures(['a','b','c']).random_element()
{}*{'a', 'b', 'c'}
sage: (S*S*S).structures(['a','b','c']).random_element()
({'c'}*{'a'})*{'b'}
automorphism_group()

EXAMPLES:

sage: p = PermutationGroupElement((2,3))
sage: S = species.SetSpecies()
sage: F = S * S
sage: a = F.structures([1,2,3,4]).random_element(); a
{1}*{2, 3, 4}
sage: a.automorphism_group()
Permutation Group with generators [(2,3), (2,3,4)]
sage: [a.transport(g) for g in a.automorphism_group()]
[{1}*{2, 3, 4},
 {1}*{2, 3, 4},
 {1}*{2, 3, 4},
 {1}*{2, 3, 4},
 {1}*{2, 3, 4},
 {1}*{2, 3, 4}]
sage: a = F.structures([1,2,3,4]).random_element(); a
{2, 3}*{1, 4}
sage: [a.transport(g) for g in a.automorphism_group()]
[{2, 3}*{1, 4}, {2, 3}*{1, 4}, {2, 3}*{1, 4}, {2, 3}*{1, 4}]
canonical_label()

EXAMPLES:

sage: S = species.SetSpecies()
sage: F = S * S
sage: S = F.structures(['a','b','c']).list(); S
[{}*{'a', 'b', 'c'},
 {'a'}*{'b', 'c'},
 {'b'}*{'a', 'c'},
 {'c'}*{'a', 'b'},
 {'a', 'b'}*{'c'},
 {'a', 'c'}*{'b'},
 {'b', 'c'}*{'a'},
 {'a', 'b', 'c'}*{}]
sage: F.isotypes(['a','b','c']).cardinality()
4
sage: [s.canonical_label() for s in S]
[{}*{'a', 'b', 'c'},
 {'a'}*{'b', 'c'},
 {'a'}*{'b', 'c'},
 {'a'}*{'b', 'c'},
 {'a', 'b'}*{'c'},
 {'a', 'b'}*{'c'},
 {'a', 'b'}*{'c'},
 {'a', 'b', 'c'}*{}]
change_labels(labels)

EXAMPLES:

sage: S = species.SetSpecies()
sage: F = S * S
sage: a = F.structures(['a','b','c']).random_element(); a
{}*{'a', 'b', 'c'}
sage: a.change_labels([1,2,3])
{}*{1, 2, 3}
transport(perm)

EXAMPLES:

sage: p = PermutationGroupElement((2,3))
sage: S = species.SetSpecies()
sage: F = S * S
sage: a = F.structures(['a','b','c'])[4]; a
{'a', 'b'}*{'c'}
sage: a.transport(p)
{'a', 'c'}*{'b'}
class sage.combinat.species.product_species.ProductSpecies_class(F, G, min=None, max=None, weight=None)
__init__(F, G, min=None, max=None, weight=None)

EXAMPLES:

sage: P = species.PermutationSpecies()
sage: F = P * P; F
Product of (Permutation species) and (Permutation species)
sage: F == loads(dumps(F))
True
sage: F._check()
True
_cis(series_ring, base_ring)

EXAMPLES:

sage: P = species.PermutationSpecies()
sage: F = P * P
sage: F.cycle_index_series().coefficients(5)
[p[],
 2*p[1],
 3*p[1, 1] + 2*p[2],
 4*p[1, 1, 1] + 4*p[2, 1] + 2*p[3],
 5*p[1, 1, 1, 1] + 6*p[2, 1, 1] + 3*p[2, 2] + 4*p[3, 1] + 2*p[4]]
_default_structure_class
alias of ProductSpeciesStructure
_equation(var_mapping)

Returns the right hand side of an algebraic equation satisfied by this species. This is a utility function called by the algebraic_equation_system method.

EXAMPLES:

sage: X = species.SingletonSpecies()
sage: S = X * X
sage: S.algebraic_equation_system()
[node0 - z^2]
_gs(series_ring, base_ring)

EXAMPLES:

sage: P = species.PermutationSpecies()
sage: F = P * P
sage: F.generating_series().coefficients(5)
[1, 2, 3, 4, 5]
_isotypes(structure_class, labels)

EXAMPLES:

sage: S = species.SetSpecies()
sage: F = S * S
sage: F.isotypes([1,2,3]).list()
[{}*{1, 2, 3}, {1}*{2, 3}, {1, 2}*{3}, {1, 2, 3}*{}]
_itgs(series_ring, base_ring)

EXAMPLES:

sage: P = species.PermutationSpecies()
sage: F = P * P
sage: F.isotype_generating_series().coefficients(5)
[1, 2, 5, 10, 20]
_name()

Note that we use a function to return the name of this species because we can’t do it in the __init__ method due to it requiring that self._F and self._G already be unpickled.

EXAMPLES:

sage: P = species.PermutationSpecies()
sage: F = P * P
sage: F._name()
'Product of (Permutation species) and (Permutation species)'
_structures(structure_class, labels)

EXAMPLES:

sage: S = species.SetSpecies()
sage: F = S * S
sage: F.structures([1,2]).list()
[{}*{1, 2}, {1}*{2}, {2}*{1}, {1, 2}*{}]
_times_gen(structure_class, attr, labels)

EXAMPLES:

sage: S = species.SetSpecies()
sage: F = S * S
sage: list(F._times_gen(F._default_structure_class, 'structures',[1,2]))
[{}*{1, 2}, {1}*{2}, {2}*{1}, {1, 2}*{}]
weight_ring()

Returns the weight ring for this species. This is determined by asking Sage’s coercion model what the result is when you multiply (and add) elements of the weight rings for each of the operands.

EXAMPLES:

sage: S = species.SetSpecies()
sage: C = S*S
sage: C.weight_ring()
Rational Field
sage: S = species.SetSpecies(weight=QQ['t'].gen())
sage: C = S*S
sage: C.weight_ring()
Univariate Polynomial Ring in t over Rational Field
sage: S = species.SetSpecies()
sage: C = (S*S).weighted(QQ['t'].gen())
sage: C.weight_ring()
Univariate Polynomial Ring in t over Rational Field

Previous topic

Sum species

Next topic

Composition species

This Page