Introduction

Magma contains a powerful module for computing with invariant rings and fields of finite groups and algebraic groups. The algorithms for invariant theory of finite groups in Magma are based on those in the Invar package written in Maple, implemented by G. Kemper [Kem96], but also include many new ideas and improvements which are described in detail in a subsequent paper [KS97]. Since a detailed understanding of the latter paper is useful for better understanding of many of the functions in the chapter, it is recommended the paper be perused by anyone wishing to make serious applications of the functions.

Since V2.14, Magma also has algorithms for invariant theory of linear algebraic groups. In particular, Derksen's algorithm [Der99] and the algorithm by Beth and Müller-Quade [MQB99] have been implemented. These additions use code written by G. Kemper.

The primary goal of invariant theory in Magma is the computation of generators of the invariant ring or field of a given group, which may be finite or algebraic. The ground field may have arbitrary characteristic. In invariant theory of finite groups, the modular case, i.e., the case where the characteristic of the ground field K divides the group order, is of particular interest, since in that case there are still many theoretical questions unanswered. Magma also contains easy algorithms to calculate properties of modular invariant rings, such as the Hilbert series, the Cohen-Macaulay property, depth, and free resolutions.

The approach to calculating the invariant ring of a finite group is broken up into two major steps: first a system of primary invariants is constructed, i.e., homogeneous invariants f1, ..., fn which are algebraically independent, such that the invariant ring is a finitely generated module over A = K[f1, ..., fn]. In the next step we calculate secondary invariants, which are generators of the invariant ring as an A-module.

Throughout this chapter, K will be a field and G is a group acting linearly on the n-dimensional vector space V isomorphic to Kn with basis x1, ..., xn. G may be a linear algebraic group, in which case K is assumed to be algebraically closed, or a finite matrix group, or a permutation group. G also acts on the symmetric algebra K[V] = S(V), which is the multivariate polynomial ring K[x1, ..., xn] in the variables x1, ..., xn. The invariant ring R = {f ∈K[V] | fσ = f forall σ ∈G} is denoted by K[V]G. The G-action extends naturally to the rational function field K(V) on V, leading to the analogous definition of the invariants field K(V)G.

Sections Creation through Verbosity describe the general setup of invariant theory in Magma. Section Construction of Invariants of Specified Degree is about computing invariants of specified degree. Sections Construction of G-modules through Properties of Invariant Rings deal with functions for invariant rings of finite groups. The following Sections Steenrod Operations and Minimalization and Homogeneous Module Testing present some functions whose scope is not limited to the context of invariant theory. Sections Invariant Rings of Linear Algebraic Groups and Functions for Invariant Fields are about functions for invariant rings of algebraic groups and for invariant fields, respectively. The Section Attributes of Invariant Rings and Fields gives information about some low-level control of the data structures associated to invariant theory. Finally, since V2.14, the Section Invariant Rings of Linear Algebraic Groups deals with invariant rings of algebraic groups and the Section Functions for Invariant Fields deals with invariant fields.

V2.28, 13 July 2023