API reference

Burnside rings

class burnsidelib.BurnsideRing(group, names=None, gap_expression=None)

The Burnside ring of a finite group.

INPUT:

  • group – a GAP group

  • names – ignored; present so Sage generator notation works

  • gap_expression – optional string used internally by from_gap() to make pickling possible

The basis elements are transitive G-sets G/H, with one basis element for each conjugacy class of subgroups. Their order is the table of marks order used by GAP.

EXAMPLES:

sage: load("burnsidelib.py")
sage: C2 = gap("CyclicGroup(2)")
sage: A = BurnsideRing(C2)
sage: A.basis_names()
('[C2/1]', '[C2/C2]')
sage: A.one()
[C2/C2]
classmethod from_gap(gap_expression)

Construct a Burnside ring from a GAP expression string.

This is useful when the ring or its elements need to be pickled, because the group can be reconstructed from the stored expression.

EXAMPLES:

sage: load("burnsidelib.py")
sage: A = BurnsideRing.from_gap("CyclicGroup(2)")
sage: A
Burnside ring of C2
one_basis()

Return the basis index of the multiplicative identity.

product_on_basis(i, j)

Return the product of two orbit-basis elements.

group()

Return the underlying GAP group.

table_of_marks()

Return a copy of the table of marks matrix.

subgroup_representatives()

Return representatives of conjugacy classes of subgroups.

basis_names()

Return printable names for the orbit basis.

gen_names()

Return generator names, equal to basis_names().

orbit_basis()

Return the orbit-basis elements as a tuple.

gens()

Return the orbit-basis elements as Sage generators.

gen(i=0)

Return the i-th orbit-basis generator.

ngens()

Return the number of orbit-basis generators.

from_coefficients(v)

Construct an element from orbit-basis coefficients.

INPUT:

  • v – an iterable of integers, one for each orbit-basis element

EXAMPLES:

sage: load("burnsidelib.py")
sage: A = BurnsideRing(gap("CyclicGroup(2)"))
sage: A.from_coefficients([3, -4])
3*[C2/1] - 4*[C2/C2]
from_vec(v)

Short alias for from_coefficients().

from_marks(v)

Construct an element from its marks.

INPUT:

  • v – an iterable of integers, one for each subgroup conjugacy class in table-of-marks order

Raises ValueError if the given integers are not marks of an element of this Burnside ring.

restriction_matrix(H, basis='coefficients')

Return the matrix for restriction to a subgroup H.

INPUT:

  • H – a GAP subgroup of this ring’s group

  • basis – either "coefficients" or "marks"

transfer_matrix(G, basis='coefficients')

Return the matrix for transfer to a larger group G.

INPUT:

  • G – a GAP group containing this ring’s group as a subgroup

  • basis – either "coefficients" or "marks"

Elements

class burnsidelib.BurnsideRingElement

An element of a Burnside ring.

Users usually create elements from a BurnsideRing rather than constructing this class directly. Elements can be viewed in the orbit basis with coefficients() or in the mark basis with marks().

coefficients()

Return the coefficients in the orbit basis.

The order of the entries agrees with parent().basis_names() and parent().subgroup_representatives().

EXAMPLES:

sage: load("burnsidelib.py")
sage: A = BurnsideRing(gap("CyclicGroup(2)"))
sage: (3*A.gen(0) - 4*A.one()).coefficients()
(3, -4)
coeffs()

Short alias for coefficients().

list()

Return the orbit-basis coefficients as a Python list.

marks()

Return the marks of this Burnside ring element.

The mark at a subgroup H is the number of H-fixed points, extended linearly to virtual finite G-sets.

EXAMPLES:

sage: load("burnsidelib.py")
sage: A = BurnsideRing(gap("CyclicGroup(2)"))
sage: (3*A.gen(0) - 4*A.one()).marks()
(2, -4)
restrict(H)

Restrict this element to a subgroup H.

INPUT:

  • H – a GAP subgroup of the group of this element’s parent ring

OUTPUT:

An element of BurnsideRing(H).

EXAMPLES:

sage: load("burnsidelib.py")
sage: C2 = gap("CyclicGroup(2)")
sage: e = C2.TrivialSubgroup()
sage: A = BurnsideRing(C2)
sage: A.gen(0).restrict(e)
2*[1/1]
res(H)

Short alias for restrict().

transfer(G)

Transfer this element to a larger group G.

INPUT:

  • G – a GAP group containing the group of this element’s parent ring as a subgroup

OUTPUT:

An element of BurnsideRing(G).

tr(G)

Short alias for transfer().

norm(G)

Apply the multiplicative norm to a larger group G.

INPUT:

  • G – a GAP group containing the group of this element’s parent ring as a subgroup

OUTPUT:

An element of BurnsideRing(G).

EXAMPLES:

sage: load("burnsidelib.py")
sage: C2 = gap("CyclicGroup(2)")
sage: e = C2.TrivialSubgroup()
sage: BurnsideRing(e).one().norm(C2)
[C2/C2]
nm(G)

Short alias for norm().

symmetric_power(k)

Return the k-th symmetric power of this element.

INPUT:

  • k – a nonnegative integer

exterior_power(k)

Return the k-th exterior power of this element.

INPUT:

  • k – a nonnegative integer

dual_exterior_power(k)

Return the k-th dual exterior power of this element.

INPUT:

  • k – a nonnegative integer

siebeneicher_power(k)

Return the k-th Siebeneicher power of this element.

INPUT:

  • k – a nonnegative integer

adams_operation(k, operation)

Return the k-th Adams operation for a pre-lambda structure.

INPUT:

  • k – a positive integer

  • operation – one of "symmetric", "exterior", "siebeneicher", or "dual exterior"

The Adams operations are computed from the corresponding power operations by the Newton identities.

adams_operation_by_marks(k, operation)

Return an Adams operation via the mark generating function.

INPUT:

  • k – a positive integer

  • operation – one of "symmetric", "exterior", "siebeneicher", or "dual exterior"

This computes each subgroup mark as the coefficient of t^k in -t d/dt log(sum_n lambda^n(x)(-t)^n) and then reconstructs the element from its marks.

symmetric_adams_operation(k)

Return the k-th Adams operation for symmetric powers.

INPUT:

  • k – a positive integer

exterior_adams_operation(k)

Return the k-th Adams operation for exterior powers.

INPUT:

  • k – a positive integer

dual_exterior_adams_operation(k)

Return the k-th Adams operation for dual exterior powers.

INPUT:

  • k – a positive integer

siebeneicher_adams_operation(k)

Return the k-th Adams operation for Siebeneicher powers.

INPUT:

  • k – a positive integer