API reference¶
Burnside rings¶
- class burnsidelib.BurnsideRing(group, names=None, gap_expression=None)¶
The Burnside ring of a finite group.
INPUT:
group– a GAP groupnames– ignored; present so Sage generator notation worksgap_expression– optional string used internally byfrom_gap()to make pickling possible
The basis elements are transitive
G-setsG/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
ValueErrorif 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 groupbasis– 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 subgroupbasis– either"coefficients"or"marks"
Elements¶
- class burnsidelib.BurnsideRingElement¶
An element of a Burnside ring.
Users usually create elements from a
BurnsideRingrather than constructing this class directly. Elements can be viewed in the orbit basis withcoefficients()or in the mark basis withmarks().- coefficients()¶
Return the coefficients in the orbit basis.
The order of the entries agrees with
parent().basis_names()andparent().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
His the number ofH-fixed points, extended linearly to virtual finiteG-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]
- 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 integeroperation– 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 integeroperation– one of"symmetric","exterior","siebeneicher", or"dual exterior"
This computes each subgroup mark as the coefficient of
t^kin-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