Characteristic Species#

class sage.combinat.species.characteristic_species.CharacteristicSpecies(n, min=None, max=None, weight=None)[source]#

Bases: GenericCombinatorialSpecies, UniqueRepresentation

Return the characteristic species of order \(n\).

This species has exactly one structure on a set of size \(n\) and no structures on sets of any other size.

EXAMPLES:

sage: X = species.CharacteristicSpecies(1)
sage: X.structures([1]).list()
[1]
sage: X.structures([1,2]).list()
[]
sage: X.generating_series()[0:4]
[0, 1, 0, 0]
sage: X.isotype_generating_series()[0:4]
[0, 1, 0, 0]
sage: X.cycle_index_series()[0:4]                                           # needs sage.modules
[0, p[1], 0, 0]

sage: F = species.CharacteristicSpecies(3)
sage: c = F.generating_series()[0:4]
sage: F._check()
True
sage: F == loads(dumps(F))
True
>>> from sage.all import *
>>> X = species.CharacteristicSpecies(Integer(1))
>>> X.structures([Integer(1)]).list()
[1]
>>> X.structures([Integer(1),Integer(2)]).list()
[]
>>> X.generating_series()[Integer(0):Integer(4)]
[0, 1, 0, 0]
>>> X.isotype_generating_series()[Integer(0):Integer(4)]
[0, 1, 0, 0]
>>> X.cycle_index_series()[Integer(0):Integer(4)]                                           # needs sage.modules
[0, p[1], 0, 0]

>>> F = species.CharacteristicSpecies(Integer(3))
>>> c = F.generating_series()[Integer(0):Integer(4)]
>>> F._check()
True
>>> F == loads(dumps(F))
True
class sage.combinat.species.characteristic_species.CharacteristicSpeciesStructure(parent, labels, list)[source]#

Bases: GenericSpeciesStructure

automorphism_group()[source]#

Returns the group of permutations whose action on this structure leave it fixed. For the characteristic species, there is only one structure, so every permutation is in its automorphism group.

EXAMPLES:

sage: F = species.CharacteristicSpecies(3)
sage: a = F.structures(["a", "b", "c"]).random_element(); a
{'a', 'b', 'c'}
sage: a.automorphism_group()                                                # needs sage.groups
Symmetric group of order 3! as a permutation group
>>> from sage.all import *
>>> F = species.CharacteristicSpecies(Integer(3))
>>> a = F.structures(["a", "b", "c"]).random_element(); a
{'a', 'b', 'c'}
>>> a.automorphism_group()                                                # needs sage.groups
Symmetric group of order 3! as a permutation group
canonical_label()[source]#

EXAMPLES:

sage: F = species.CharacteristicSpecies(3)
sage: a = F.structures(["a", "b", "c"]).random_element(); a
{'a', 'b', 'c'}
sage: a.canonical_label()
{'a', 'b', 'c'}
>>> from sage.all import *
>>> F = species.CharacteristicSpecies(Integer(3))
>>> a = F.structures(["a", "b", "c"]).random_element(); a
{'a', 'b', 'c'}
>>> a.canonical_label()
{'a', 'b', 'c'}
transport(perm)[source]#

Return the transport of this structure along the permutation perm.

EXAMPLES:

sage: F = species.CharacteristicSpecies(3)
sage: a = F.structures(["a", "b", "c"]).random_element(); a
{'a', 'b', 'c'}
sage: p = PermutationGroupElement((1,2))                                    # needs sage.groups
sage: a.transport(p)                                                        # needs sage.groups
{'a', 'b', 'c'}
>>> from sage.all import *
>>> F = species.CharacteristicSpecies(Integer(3))
>>> a = F.structures(["a", "b", "c"]).random_element(); a
{'a', 'b', 'c'}
>>> p = PermutationGroupElement((Integer(1),Integer(2)))                                    # needs sage.groups
>>> a.transport(p)                                                        # needs sage.groups
{'a', 'b', 'c'}
sage.combinat.species.characteristic_species.CharacteristicSpecies_class[source]#

alias of CharacteristicSpecies

class sage.combinat.species.characteristic_species.EmptySetSpecies(min=None, max=None, weight=None)[source]#

Bases: CharacteristicSpecies

Returns the empty set species.

This species has exactly one structure on the empty set. It is the same (and is implemented) as CharacteristicSpecies(0).

EXAMPLES:

sage: X = species.EmptySetSpecies()
sage: X.structures([]).list()
[{}]
sage: X.structures([1,2]).list()
[]
sage: X.generating_series()[0:4]
[1, 0, 0, 0]
sage: X.isotype_generating_series()[0:4]
[1, 0, 0, 0]
sage: X.cycle_index_series()[0:4]                                           # needs sage.modules
[p[], 0, 0, 0]
>>> from sage.all import *
>>> X = species.EmptySetSpecies()
>>> X.structures([]).list()
[{}]
>>> X.structures([Integer(1),Integer(2)]).list()
[]
>>> X.generating_series()[Integer(0):Integer(4)]
[1, 0, 0, 0]
>>> X.isotype_generating_series()[Integer(0):Integer(4)]
[1, 0, 0, 0]
>>> X.cycle_index_series()[Integer(0):Integer(4)]                                           # needs sage.modules
[p[], 0, 0, 0]
sage.combinat.species.characteristic_species.EmptySetSpecies_class[source]#

alias of EmptySetSpecies

class sage.combinat.species.characteristic_species.SingletonSpecies(min=None, max=None, weight=None)[source]#

Bases: CharacteristicSpecies

Returns the species of singletons.

This species has exactly one structure on a set of size \(1\). It is the same (and is implemented) as CharacteristicSpecies(1).

EXAMPLES:

sage: X = species.SingletonSpecies()
sage: X.structures([1]).list()
[1]
sage: X.structures([1,2]).list()
[]
sage: X.generating_series()[0:4]
[0, 1, 0, 0]
sage: X.isotype_generating_series()[0:4]
[0, 1, 0, 0]
sage: X.cycle_index_series()[0:4]                                           # needs sage.modules
[0, p[1], 0, 0]
>>> from sage.all import *
>>> X = species.SingletonSpecies()
>>> X.structures([Integer(1)]).list()
[1]
>>> X.structures([Integer(1),Integer(2)]).list()
[]
>>> X.generating_series()[Integer(0):Integer(4)]
[0, 1, 0, 0]
>>> X.isotype_generating_series()[Integer(0):Integer(4)]
[0, 1, 0, 0]
>>> X.cycle_index_series()[Integer(0):Integer(4)]                                           # needs sage.modules
[0, p[1], 0, 0]
sage.combinat.species.characteristic_species.SingletonSpecies_class[source]#

alias of SingletonSpecies