Magmas

This chapter deals with domains (see ) that are closed under multiplication *. Following , we call them magmas in &GAP;. Together with the domains closed under addition + (see ), they are the basic algebraic structures; every semigroup, monoid (see ), group (see ), ring (see ), or field (see ) is a magma. In the cases of a magma-with-one or magma-with-inverses, additional multiplicative structure is present, see . For functions to create free magmas, see .

Magma Categories
<#Include Label="IsMagma"> <#Include Label="IsMagmaWithOne"> <#Include Label="IsMagmaWithInversesIfNonzero"> <#Include Label="IsMagmaWithInverses">

Magma Generation

This section describes functions that create magmas from generators (see , , ), the underlying operations for which methods can be installed (see , , ), functions for forming submagmas (see , , ), and functions that form a magma equal to a given collection (see , ).

creates a new magma which is the original magma with a zero adjoined.

<#Include Label="Magma"> <#Include Label="MagmaWithOne"> <#Include Label="MagmaWithInverses"> <#Include Label="MagmaByGenerators"> <#Include Label="MagmaWithOneByGenerators"> <#Include Label="MagmaWithInversesByGenerators"> <#Include Label="Submagma"> <#Include Label="SubmagmaWithOne"> <#Include Label="SubmagmaWithInverses"> <#Include Label="AsMagma"> <#Include Label="AsSubmagma"> <#Include SYSTEM="mgmadj.xml">
Magmas Defined by Multiplication Tables

The most elementary (but of course usually not recommended) way to implement a magma with only few elements is via a multiplication table.

<#Include Label="MagmaByMultiplicationTable"> <#Include Label="MagmaWithOneByMultiplicationTable"> <#Include Label="MagmaWithInversesByMultiplicationTable"> <#Include Label="MagmaElement"> <#Include Label="MultiplicationTable">

Attributes and Properties for Magmas
Note
that and always refer to the multiplication of a domain. If a magma M has also an additive structure, e.g., if M is a ring (see ), then the addition + is always assumed to be associative and commutative, see .

<#Include Label="GeneratorsOfMagma"> <#Include Label="GeneratorsOfMagmaWithOne"> <#Include Label="GeneratorsOfMagmaWithInverses"> <#Include Label="Centralizer"> <#Include Label="Centre"> <#Include Label="Idempotents"> <#Include Label="IsAssociative"> <#Include Label="IsCentral"> <#Include Label="IsCommutative"> <#Include Label="MultiplicativeNeutralElement"> <#Include Label="MultiplicativeZero"> <#Include Label="SquareRoots"> <#Include Label="TrivialSubmagmaWithOne">