  
  [1X32 [33X[0;0YMappings[133X[101X
  
  [33X[0;0YA  [13Xmapping[113X  in  [5XGAP[105X  is  what  is called a [21Xfunction[121X in mathematics. [5XGAP[105X also
  implements  [13Xgeneralized  mappings[113X  in  which  one element might have several
  images,  these  can  be imagined as subsets of the cartesian product and are
  often called [21Xrelations[121X.[133X
  
  [33X[0;0YMost  operations are declared for general mappings and therefore this manual
  often  refers  to  [21X(general)  mappings[121X,  unless  you  deliberately  need the
  generalization you can ignore the [21Xgeneral[121X bit and just read it as [21Xmappings[121X.[133X
  
  [33X[0;0YA  [13Xgeneral mapping[113X [22XF[122X in [5XGAP[105X is described by its source [22XS[122X, its range [22XR[122X, and a
  subset  [22XRel[122X  of  the  direct  product  [22XS × R[122X, which is called the underlying
  relation  of  [22XF[122X.  [22XS[122X,  [22XR[122X,  and  [22XRel[122X  are  generalized domains (see [14X12.4[114X). The
  corresponding  attributes  for  general  mappings are [2XSource[102X ([14X32.3-8[114X), [2XRange[102X
  ([14X32.3-7[114X), and [2XUnderlyingRelation[102X ([14X32.3-9[114X).[133X
  
  [33X[0;0YNote  that  general mappings themselves are [13Xnot[113X domains. One reason for this
  is  that  two general mappings with same underlying relation are regarded as
  equal  only  if  also the sources are equal and the ranges are equal. Other,
  more technical, reasons are that general mappings and domains have different
  basic   operations,   and  that  general  mappings  are  arithmetic  objects
  (see [14X32.6[114X); both should not apply to domains.[133X
  
  [33X[0;0YEach  element  of  an  underlying  relation of a general mapping lies in the
  category of direct product elements (see [2XIsDirectProductElement[102X ([14X32.1-1[114X)).[133X
  
  [33X[0;0YFor  each [22Xs ∈ S[122X, the set [22X{ r ∈ R | (s,r) ∈ Rel }[122X is called the set of [13Ximages[113X
  of  [22Xs[122X. Analogously, for [22Xr ∈ R[122X, the set [22X{ s ∈ S | (s,r) ∈ Rel }[122X is called the
  set of [13Xpreimages[113X of [22Xr[122X.[133X
  
  [33X[0;0YThe [13Xordering[113X of general mappings via [10X<[110X is defined by the ordering of source,
  range,  and  underlying  relation.  Specifically,  if  the  source and range
  domains  of  [3Xmap1[103X and [3Xmap2[103X are the same, then one considers the union of the
  preimages  of  [3Xmap1[103X  and [3Xmap2[103X as a strictly ordered set. The smaller of [3Xmap1[103X
  and  [3Xmap2[103X  is  the  one  whose  image  is smaller on the first point of this
  sequence where they differ.[133X
  
  [33X[0;0YFor  mappings  which  preserve  an  algebraic structure a [13Xkernel[113X is defined.
  Depending on the structure preserved the operation to compute this kernel is
  called differently, see Section [14X32.7[114X.[133X
  
  [33X[0;0YSome technical details of general mappings are described in section [14X32.13[114X.[133X
  
  
  [1X32.1 [33X[0;0YIsDirectProductElement (Filter)[133X[101X
  
  [1X32.1-1 IsDirectProductElement[101X
  
  [33X[1;0Y[29X[2XIsDirectProductElement[102X( [3Xobj[103X ) [32X Category[133X
  
  [33X[0;0Y[2XIsDirectProductElement[102X is a subcategory of the meet of [2XIsDenseList[102X ([14X21.1-2[114X),
  [2XIsMultiplicativeElementWithInverse[102X  ([14X31.14-13[114X), [2XIsAdditiveElementWithInverse[102X
  ([14X31.14-7[114X),   and   [2XIsCopyable[102X  ([14X12.6-1[114X),  where  the  arithmetic  operations
  (addition,  zero,  additive inverse, multiplication, powering, one, inverse)
  are defined componentwise.[133X
  
  [33X[0;0YNote that each of these operations will cause an error message if its result
  for at least one component cannot be formed.[133X
  
  [33X[0;0YFor  an  object  in  the filter [2XIsDirectProductElement[102X, [2XShallowCopy[102X ([14X12.7-1[114X)
  returns  a mutable plain list with the same entries. The sum and the product
  of  a  direct  product  element and a list in [2XIsListDefault[102X ([14X21.12-3[114X) is the
  list of sums and products, respectively. The sum and the product of a direct
  product   element   and   a  non-list  is  the  direct  product  element  of
  componentwise sums and products, respectively.[133X
  
  
  [1X32.2 [33X[0;0YCreating Mappings[133X[101X
  
  [1X32.2-1 GeneralMappingByElements[101X
  
  [33X[1;0Y[29X[2XGeneralMappingByElements[102X( [3XS[103X, [3XR[103X, [3Xelms[103X ) [32X function[133X
  
  [33X[0;0Yis  the  general  mapping  with  source  [3XS[103X  and range [3XR[103X, and with underlying
  relation consisting of the collection [3Xelms[103X of direct product elements.[133X
  
  
  [1X32.2-2 [33X[0;0YMappingByFunction[133X[101X
  
  [33X[1;0Y[29X[2XMappingByFunction[102X( [3XS[103X, [3XR[103X, [3Xfun[103X[, [3Xinvfun[103X] ) [32X function[133X
  [33X[1;0Y[29X[2XMappingByFunction[102X( [3XS[103X, [3XR[103X, [3Xfun[103X, [3Xfalse[103X, [3Xprefun[103X ) [32X function[133X
  
  [33X[0;0Y[2XMappingByFunction[102X returns a mapping [10Xmap[110X with source [3XS[103X and range [3XR[103X, such that
  each  element  [22Xs[122X  of [3XS[103X is mapped to the element [3Xfun[103X[22X( s )[122X, where [3Xfun[103X is a [5XGAP[105X
  function.[133X
  
  [33X[0;0YIf the argument [3Xinvfun[103X is bound then [10Xmap[110X is a bijection between [3XS[103X and [3XR[103X, and
  the preimage of each element [22Xr[122X of [3XR[103X is given by [3Xinvfun[103X[22X( r )[122X, where [3Xinvfun[103X is
  a [5XGAP[105X function.[133X
  
  [33X[0;0YIf  five  arguments  are given and the fourth argument is [9Xfalse[109X then the [5XGAP[105X
  function  [3Xprefun[103X can be used to compute a single preimage also if [10Xmap[110X is not
  bijective.[133X
  
  [33X[0;0YThe   mapping   returned   by   [2XMappingByFunction[102X   lies   in   the   filter
  [2XIsNonSPGeneralMapping[102X ([14X32.14-1[114X), see [14X32.14[114X.[133X
  
  [1X32.2-3 InverseGeneralMapping[101X
  
  [33X[1;0Y[29X[2XInverseGeneralMapping[102X( [3Xmap[103X ) [32X attribute[133X
  
  [33X[0;0YThe  [13Xinverse general mapping[113X of a general mapping [3Xmap[103X is the general mapping
  whose  underlying relation (see [2XUnderlyingRelation[102X ([14X32.3-9[114X)) contains a pair
  [22X(r,s)[122X if and only if the underlying relation of [3Xmap[103X contains the pair [22X(s,r)[122X.[133X
  
  [33X[0;0YSee  the  introduction  to  Chapter [14X32[114X  for  the  subtleties  concerning the
  difference between [2XInverseGeneralMapping[102X and [2XInverse[102X ([14X31.10-8[114X).[133X
  
  [33X[0;0YNote  that the inverse general mapping of a mapping [3Xmap[103X is in general only a
  general  mapping.  If  [3Xmap[103X knows to be bijective its inverse general mapping
  will know to be a mapping. In this case also [10XInverse( [3Xmap[103X[10X )[110X works.[133X
  
  [1X32.2-4 RestrictedInverseGeneralMapping[101X
  
  [33X[1;0Y[29X[2XRestrictedInverseGeneralMapping[102X( [3Xmap[103X ) [32X attribute[133X
  
  [33X[0;0YThe  [13Xrestricted  inverse  general  mapping[113X  of  a general mapping [3Xmap[103X is the
  general  mapping whose underlying relation (see [2XUnderlyingRelation[102X ([14X32.3-9[114X))
  contains a pair [22X(r,s)[122X if and only if the underlying relation of [3Xmap[103X contains
  the pair [22X(s,r)[122X, and whose domain is restricted to the image of [3Xmap[103X and whose
  range is the domain of [3Xmap[103X.[133X
  
  [1X32.2-5 CompositionMapping[101X
  
  [33X[1;0Y[29X[2XCompositionMapping[102X( [3Xmap1[103X, [3Xmap2[103X, [3X...[103X ) [32X function[133X
  
  [33X[0;0Y[2XCompositionMapping[102X  allows one to compose arbitrarily many general mappings,
  and delegates each step to [2XCompositionMapping2[102X ([14X32.2-6[114X).[133X
  
  [33X[0;0YAdditionally,   the   properties  [2XIsInjective[102X  ([14X32.3-4[114X)  and  [2XIsSingleValued[102X
  ([14X32.3-2[114X)  are  maintained;  if  the  source of the [22Xi+1[122X-th general mapping is
  identical  to  the  range of the [22Xi[122X-th general mapping, also [2XIsTotal[102X ([14X32.3-1[114X)
  and   [2XIsSurjective[102X   ([14X32.3-5[114X)  are  maintained.  (So  one  should  not  call
  [2XCompositionMapping2[102X  ([14X32.2-6[114X)  directly  if  one  wants  to  maintain  these
  properties.)[133X
  
  [33X[0;0YDepending  on  the  types  of  [3Xmap1[103X  and [3Xmap2[103X, the returned mapping might be
  constructed  completely  new  (for  example  by giving domain generators and
  their  images,  this  is  for example the case if both mappings preserve the
  same  algebraic  structures  and [5XGAP[105X can decompose elements of the source of
  [3Xmap2[103X     into     generators)    or    as    an    (iterated)    composition
  (see [2XIsCompositionMappingRep[102X ([14X32.2-7[114X)).[133X
  
  [1X32.2-6 CompositionMapping2[101X
  
  [33X[1;0Y[29X[2XCompositionMapping2[102X( [3Xmap2[103X, [3Xmap1[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XCompositionMapping2General[102X( [3Xmap2[103X, [3Xmap1[103X ) [32X function[133X
  
  [33X[0;0Y[2XCompositionMapping2[102X  returns  the  composition of [3Xmap2[103X and [3Xmap1[103X, this is the
  general  mapping  that  maps  an element first under [3Xmap1[103X, and then maps the
  images under [3Xmap2[103X.[133X
  
  [33X[0;0Y(Note  the  reverse  ordering  of  arguments  in  the  composition  via  the
  multiplication [2X\*[102X ([14X31.12-1[114X).[133X
  
  [33X[0;0Y[2XCompositionMapping2General[102X is the method that forms a composite mapping with
  two constituent mappings. (This is used in some algorithms.)[133X
  
  [1X32.2-7 IsCompositionMappingRep[101X
  
  [33X[1;0Y[29X[2XIsCompositionMappingRep[102X( [3Xmap[103X ) [32X Representation[133X
  
  [33X[0;0YMappings  in  this representation are stored as composition of two mappings,
  (pre)images  of elements are computed in a two-step process. The constituent
  mappings      of     the     composition     can     be     obtained     via
  [2XConstituentsCompositionMapping[102X ([14X32.2-8[114X).[133X
  
  [1X32.2-8 ConstituentsCompositionMapping[101X
  
  [33X[1;0Y[29X[2XConstituentsCompositionMapping[102X( [3Xmap[103X ) [32X function[133X
  
  [33X[0;0YIf  [3Xmap[103X  is stored in the representation [2XIsCompositionMappingRep[102X ([14X32.2-7[114X) as
  composition  of  two  mappings  [3Xmap1[103X and [3Xmap2[103X, this function returns the two
  constituent mappings in a list [10X[ [3Xmap1[103X[10X, [3Xmap2[103X[10X ][110X.[133X
  
  [1X32.2-9 ZeroMapping[101X
  
  [33X[1;0Y[29X[2XZeroMapping[102X( [3XS[103X, [3XR[103X ) [32X operation[133X
  
  [33X[0;0YA  zero  mapping  is  a  total general mapping that maps each element of its
  source to the zero element of its range.[133X
  
  [33X[0;0Y(Each mapping with empty source is a zero mapping.)[133X
  
  [1X32.2-10 IdentityMapping[101X
  
  [33X[1;0Y[29X[2XIdentityMapping[102X( [3XD[103X ) [32X attribute[133X
  
  [33X[0;0Yis  the  bijective  mapping with source and range equal to the collection [3XD[103X,
  which maps each element of [3XD[103X to itself.[133X
  
  
  [1X32.2-11 [33X[0;0YEmbedding[133X[101X
  
  [33X[1;0Y[29X[2XEmbedding[102X( [3XS[103X, [3XT[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XEmbedding[102X( [3XS[103X, [3Xi[103X ) [32X operation[133X
  
  [33X[0;0Yreturns  the  embedding  of  the  domain [3XS[103X in the domain [3XT[103X, or in the second
  form,  some domain indexed by the positive integer [3Xi[103X. The precise natures of
  the various methods are described elsewhere: for Lie algebras, see [2XLieFamily[102X
  ([14X64.1-3[114X);  for  group  products,  see [14X49.6[114X for a general description, or for
  examples see [14X49.1[114X for direct products, [14X49.2[114X for semidirect products, or [14X49.4[114X
  for wreath products; or for magma rings see [14X65.3[114X.[133X
  
  
  [1X32.2-12 [33X[0;0YProjection[133X[101X
  
  [33X[1;0Y[29X[2XProjection[102X( [3XS[103X, [3XT[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XProjection[102X( [3XS[103X, [3Xi[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XProjection[102X( [3XS[103X ) [32X operation[133X
  
  [33X[0;0Yreturns  the  projection of the domain [3XS[103X onto the domain [3XT[103X, or in the second
  form,  some  domain  indexed by the positive integer [3Xi[103X, or in the third form
  some  natural  quotient  domain  of [3XS[103X. Various methods are defined for group
  products;  see [14X49.6[114X  for a general description, or for examples see [14X49.1[114X for
  direct  products, [14X49.2[114X for semidirect products, [14X49.3[114X for subdirect products,
  or [14X49.4[114X for wreath products.[133X
  
  [1X32.2-13 RestrictedMapping[101X
  
  [33X[1;0Y[29X[2XRestrictedMapping[102X( [3Xmap[103X, [3Xsubdom[103X ) [32X operation[133X
  
  [33X[0;0YIf  [3Xsubdom[103X  is  a  subdomain  of the source of the general mapping [3Xmap[103X, this
  operation returns the restriction of [3Xmap[103X to [3Xsubdom[103X.[133X
  
  
  [1X32.3 [33X[0;0YProperties and Attributes of (General) Mappings[133X[101X
  
  [1X32.3-1 IsTotal[101X
  
  [33X[1;0Y[29X[2XIsTotal[102X( [3Xmap[103X ) [32X property[133X
  
  [33X[0;0Yis  [9Xtrue[109X  if  each  element  in  the source [22XS[122X of the general mapping [3Xmap[103X has
  images, i.e., [22Xs^[3Xmap[103X ≠ ∅[122X for all [22Xs ∈ S[122X, and [9Xfalse[109X otherwise.[133X
  
  [1X32.3-2 IsSingleValued[101X
  
  [33X[1;0Y[29X[2XIsSingleValued[102X( [3Xmap[103X ) [32X property[133X
  
  [33X[0;0Yis  [9Xtrue[109X  if  each element in the source [22XS[122X of the general mapping [3Xmap[103X has at
  most one image, i.e., [22X|s^[3Xmap[103X| ≤ 1[122X for all [22Xs ∈ S[122X, and [9Xfalse[109X otherwise.[133X
  
  [33X[0;0YEquivalently,  [10XIsSingleValued( [3Xmap[103X[10X )[110X is [9Xtrue[109X if and only if the preimages of
  different elements in [22XR[122X are disjoint.[133X
  
  [1X32.3-3 IsMapping[101X
  
  [33X[1;0Y[29X[2XIsMapping[102X( [3Xmap[103X ) [32X filter[133X
  
  [33X[0;0YA  [13Xmapping[113X  [3Xmap[103X is a general mapping that assigns to each element [10Xelm[110X of its
  source a unique element [10XImage( [3Xmap[103X[10X, elm )[110X of its range.[133X
  
  [33X[0;0YEquivalently,  the  general  mapping  [3Xmap[103X  is a mapping if and only if it is
  total and single-valued (see [2XIsTotal[102X ([14X32.3-1[114X), [2XIsSingleValued[102X ([14X32.3-2[114X)).[133X
  
  [1X32.3-4 IsInjective[101X
  
  [33X[1;0Y[29X[2XIsInjective[102X( [3Xmap[103X ) [32X property[133X
  
  [33X[0;0Yis  [9Xtrue[109X  if the images of different elements in the source [22XS[122X of the general
  mapping  [3Xmap[103X  are disjoint, i.e., [22Xx^[3Xmap[103X ∩ y^[3Xmap[103X = ∅[122X for [22Xx ≠ y ∈ S[122X, and [9Xfalse[109X
  otherwise.[133X
  
  [33X[0;0YEquivalently,  [10XIsInjective( [3Xmap[103X[10X )[110X is [9Xtrue[109X if and only if each element in the
  range of [3Xmap[103X has at most one preimage in [22XS[122X.[133X
  
  [1X32.3-5 IsSurjective[101X
  
  [33X[1;0Y[29X[2XIsSurjective[102X( [3Xmap[103X ) [32X property[133X
  
  [33X[0;0Yis  [9Xtrue[109X  if  each  element  in  the  range [22XR[122X of the general mapping [3Xmap[103X has
  preimages  in the source [22XS[122X of [3Xmap[103X, i.e., [22X{ s ∈ S ∣ x ∈ s^[3Xmap[103X } ≠ ∅[122X for all [22Xx
  ∈ R[122X, and [9Xfalse[109X otherwise.[133X
  
  [1X32.3-6 IsBijective[101X
  
  [33X[1;0Y[29X[2XIsBijective[102X( [3Xmap[103X ) [32X property[133X
  
  [33X[0;0YA  general  mapping  [3Xmap[103X  is [13Xbijective[113X if and only if it is an injective and
  surjective    mapping   (see [2XIsMapping[102X   ([14X32.3-3[114X),   [2XIsInjective[102X   ([14X32.3-4[114X),
  [2XIsSurjective[102X ([14X32.3-5[114X)).[133X
  
  [1X32.3-7 Range[101X
  
  [33X[1;0Y[29X[2XRange[102X( [3Xmap[103X ) [32X attribute[133X
  
  [33X[0;0YThe range of a general mapping.[133X
  
  [1X32.3-8 Source[101X
  
  [33X[1;0Y[29X[2XSource[102X( [3Xmap[103X ) [32X attribute[133X
  
  [33X[0;0YThe source of a general mapping.[133X
  
  [1X32.3-9 UnderlyingRelation[101X
  
  [33X[1;0Y[29X[2XUnderlyingRelation[102X( [3Xmap[103X ) [32X attribute[133X
  
  [33X[0;0YThe  [13Xunderlying  relation[113X  of  a  general mapping [3Xmap[103X is the domain of pairs
  [22X(s,r)[122X,  with [22Xs[122X in the source and [22Xr[122X in the range of [3Xmap[103X (see [2XSource[102X ([14X32.3-8[114X),
  [2XRange[102X ([14X32.3-7[114X)), and [22Xr ∈[122X [10XImagesElm( [3Xmap[103X[10X, [110X[22Xs[122X[10X )[110X.[133X
  
  [33X[0;0YEach  element  of the underlying relation is represented by a direct product
  element (see [2XIsDirectProductElement[102X ([14X32.1-1[114X)).[133X
  
  [1X32.3-10 UnderlyingGeneralMapping[101X
  
  [33X[1;0Y[29X[2XUnderlyingGeneralMapping[102X( [3Xmap[103X ) [32X attribute[133X
  
  [33X[0;0Yattribute for underlying relations of general mappings[133X
  
  
  [1X32.4 [33X[0;0YImages under Mappings[133X[101X
  
  [1X32.4-1 ImagesSource[101X
  
  [33X[1;0Y[29X[2XImagesSource[102X( [3Xmap[103X ) [32X attribute[133X
  
  [33X[0;0Yis the set of images of the source of the general mapping [3Xmap[103X.[133X
  
  [33X[0;0Y[2XImagesSource[102X delegates to [2XImagesSet[102X ([14X32.4-4[114X), it is introduced only to store
  the image of [3Xmap[103X as attribute value.[133X
  
  [1X32.4-2 ImagesRepresentative[101X
  
  [33X[1;0Y[29X[2XImagesRepresentative[102X( [3Xmap[103X, [3Xelm[103X ) [32X operation[133X
  
  [33X[0;0YIf  [3Xelm[103X  is  an  element  of  the  source  of  the  general mapping [3Xmap[103X then
  [2XImagesRepresentative[102X returns either a representative of the set of images of
  [3Xelm[103X  under  [3Xmap[103X  or  [9Xfail[109X, the latter if and only if [3Xelm[103X has no images under
  [3Xmap[103X.[133X
  
  [33X[0;0YAnything may happen if [3Xelm[103X is not an element of the source of [3Xmap[103X.[133X
  
  [1X32.4-3 ImagesElm[101X
  
  [33X[1;0Y[29X[2XImagesElm[102X( [3Xmap[103X, [3Xelm[103X ) [32X operation[133X
  
  [33X[0;0YIf [3Xelm[103X is an element of the source of the general mapping [3Xmap[103X then [2XImagesElm[102X
  returns the set of all images of [3Xelm[103X under [3Xmap[103X.[133X
  
  [33X[0;0YAnything may happen if [3Xelm[103X is not an element of the source of [3Xmap[103X.[133X
  
  [1X32.4-4 ImagesSet[101X
  
  [33X[1;0Y[29X[2XImagesSet[102X( [3Xmap[103X, [3Xelms[103X ) [32X operation[133X
  
  [33X[0;0YIf  [3Xelms[103X is a subset of the source of the general mapping [3Xmap[103X then [2XImagesSet[102X
  returns the set of all images of [3Xelms[103X under [3Xmap[103X.[133X
  
  [33X[0;0YThe  result  will be either a proper set or a domain. Anything may happen if
  [3Xelms[103X is not a subset of the source of [3Xmap[103X.[133X
  
  [1X32.4-5 ImageElm[101X
  
  [33X[1;0Y[29X[2XImageElm[102X( [3Xmap[103X, [3Xelm[103X ) [32X operation[133X
  
  [33X[0;0YIf  [3Xelm[103X  is  an element of the source of the total and single-valued mapping
  [3Xmap[103X then [2XImageElm[102X returns the unique image of [3Xelm[103X under [3Xmap[103X.[133X
  
  [33X[0;0YAnything may happen if [3Xelm[103X is not an element of the source of [3Xmap[103X.[133X
  
  
  [1X32.4-6 [33X[0;0YImage[133X[101X
  
  [33X[1;0Y[29X[2XImage[102X( [3Xmap[103X ) [32X function[133X
  [33X[1;0Y[29X[2XImage[102X( [3Xmap[103X, [3Xelm[103X ) [32X function[133X
  [33X[1;0Y[29X[2XImage[102X( [3Xmap[103X, [3Xcoll[103X ) [32X function[133X
  
  [33X[0;0Y[10XImage(  [3Xmap[103X[10X  )[110X  is the [13Ximage[113X of the general mapping [3Xmap[103X, i.e., the subset of
  elements  of  the range of [3Xmap[103X that are actually values of [3Xmap[103X. [13XNote[113X that in
  this case the argument may also be multi-valued.[133X
  
  [33X[0;0Y[10XImage(  [3Xmap[103X[10X,  [3Xelm[103X[10X  )[110X  is  the  image of the element [3Xelm[103X of the source of the
  mapping  [3Xmap[103X  under  [3Xmap[103X, i.e., the unique element of the range to which [3Xmap[103X
  maps [3Xelm[103X. This can also be expressed as [3Xelm[103X[10X^[110X[3Xmap[103X. Note that [3Xmap[103X must be total
  and single valued, a multi valued general mapping is not allowed (see [2XImages[102X
  ([14X32.4-7[114X)).[133X
  
  [33X[0;0Y[10XImage(  [3Xmap[103X[10X,  [3Xcoll[103X[10X  )[110X  is  the image of the subset [3Xcoll[103X of the source of the
  mapping  [3Xmap[103X  under  [3Xmap[103X,  i.e.,  the  subset of the range to which [3Xmap[103X maps
  elements  of  [3Xcoll[103X. [3Xcoll[103X may be a proper set or a domain. The result will be
  either  a  proper  set  or  a domain. Note that in this case [3Xmap[103X may also be
  multi-valued.  (If  [3Xcoll[103X  and  the  result  are  lists then the positions of
  entries do in general [13Xnot[113X correspond.)[133X
  
  [33X[0;0Y[2XImage[102X  delegates to [2XImagesSource[102X ([14X32.4-1[114X) when called with one argument, and
  to   [2XImageElm[102X  ([14X32.4-5[114X)  resp.  [2XImagesSet[102X  ([14X32.4-4[114X)  when  called  with  two
  arguments.[133X
  
  [33X[0;0YIf  the  second  argument is not an element or a subset of the source of the
  first argument, an error is signalled.[133X
  
  
  [1X32.4-7 [33X[0;0YImages[133X[101X
  
  [33X[1;0Y[29X[2XImages[102X( [3Xmap[103X ) [32X function[133X
  [33X[1;0Y[29X[2XImages[102X( [3Xmap[103X, [3Xelm[103X ) [32X function[133X
  [33X[1;0Y[29X[2XImages[102X( [3Xmap[103X, [3Xcoll[103X ) [32X function[133X
  
  [33X[0;0Y[10XImages(  [3Xmap[103X[10X  )[110X is the [13Ximage[113X of the general mapping [3Xmap[103X, i.e., the subset of
  elements of the range of [3Xmap[103X that are actually values of [3Xmap[103X.[133X
  
  [33X[0;0Y[10XImages(  [3Xmap[103X[10X, [3Xelm[103X[10X )[110X is the set of images of the element [3Xelm[103X of the source of
  the general mapping [3Xmap[103X under [3Xmap[103X, i.e., the set of elements of the range to
  which [3Xmap[103X maps [3Xelm[103X.[133X
  
  [33X[0;0Y[10XImages( [3Xmap[103X[10X, [3Xcoll[103X[10X )[110X is the set of images of the subset [3Xcoll[103X of the source of
  the  general  mapping  [3Xmap[103X under [3Xmap[103X, i.e., the subset of the range to which
  [3Xmap[103X  maps elements of [3Xcoll[103X. [3Xcoll[103X may be a proper set or a domain. The result
  will  be  either a proper set or a domain. (If [3Xcoll[103X and the result are lists
  then the positions of entries do in general [13Xnot[113X correspond.)[133X
  
  [33X[0;0Y[2XImages[102X delegates to [2XImagesSource[102X ([14X32.4-1[114X) when called with one argument, and
  to  [2XImagesElm[102X  ([14X32.4-3[114X)  resp.  [2XImagesSet[102X  ([14X32.4-4[114X)  when  called  with  two
  arguments.[133X
  
  [33X[0;0YIf  the  second  argument is not an element or a subset of the source of the
  first argument, an error is signalled.[133X
  
  
  [1X32.5 [33X[0;0YPreimages under Mappings[133X[101X
  
  [1X32.5-1 PreImagesRange[101X
  
  [33X[1;0Y[29X[2XPreImagesRange[102X( [3Xmap[103X ) [32X attribute[133X
  
  [33X[0;0Yis the set of preimages of the range of the general mapping [3Xmap[103X.[133X
  
  [33X[0;0Y[2XPreImagesRange[102X  delegates to [2XPreImagesSet[102X ([14X32.5-5[114X), it is introduced only to
  store the preimage of [3Xmap[103X as attribute value.[133X
  
  [1X32.5-2 PreImagesElm[101X
  
  [33X[1;0Y[29X[2XPreImagesElm[102X( [3Xmap[103X, [3Xelm[103X ) [32X operation[133X
  
  [33X[0;0YIf  [3Xelm[103X  is  an  element  of  the  range  of  the  general  mapping [3Xmap[103X then
  [2XPreImagesElm[102X returns the set of all preimages of [3Xelm[103X under [3Xmap[103X.[133X
  
  [33X[0;0YAnything may happen if [3Xelm[103X is not an element of the range of [3Xmap[103X.[133X
  
  [1X32.5-3 PreImageElm[101X
  
  [33X[1;0Y[29X[2XPreImageElm[102X( [3Xmap[103X, [3Xelm[103X ) [32X operation[133X
  
  [33X[0;0YIf  [3Xelm[103X  is  an element of the range of the injective and surjective general
  mapping [3Xmap[103X then [2XPreImageElm[102X returns the unique preimage of [3Xelm[103X under [3Xmap[103X.[133X
  
  [33X[0;0YAnything may happen if [3Xelm[103X is not an element of the range of [3Xmap[103X.[133X
  
  [1X32.5-4 PreImagesRepresentative[101X
  
  [33X[1;0Y[29X[2XPreImagesRepresentative[102X( [3Xmap[103X, [3Xelm[103X ) [32X operation[133X
  
  [33X[0;0YIf  [3Xelm[103X  is  an  element  of  the  range  of  the  general  mapping [3Xmap[103X then
  [2XPreImagesRepresentative[102X  returns  either  a  representative  of  the  set of
  preimages  of  [3Xelm[103X  under  [3Xmap[103X or [9Xfail[109X, the latter if and only if [3Xelm[103X has no
  preimages under [3Xmap[103X.[133X
  
  [33X[0;0YAnything may happen if [3Xelm[103X is not an element of the range of [3Xmap[103X.[133X
  
  [1X32.5-5 PreImagesSet[101X
  
  [33X[1;0Y[29X[2XPreImagesSet[102X( [3Xmap[103X, [3Xelms[103X ) [32X operation[133X
  
  [33X[0;0YIf  [3Xelms[103X  is  a  subset  of  the  range  of  the  general  mapping  [3Xmap[103X then
  [2XPreImagesSet[102X returns the set of all preimages of [3Xelms[103X under [3Xmap[103X.[133X
  
  [33X[0;0YAnything may happen if [3Xelms[103X is not a subset of the range of [3Xmap[103X.[133X
  
  
  [1X32.5-6 [33X[0;0YPreImage[133X[101X
  
  [33X[1;0Y[29X[2XPreImage[102X( [3Xmap[103X ) [32X function[133X
  [33X[1;0Y[29X[2XPreImage[102X( [3Xmap[103X, [3Xelm[103X ) [32X function[133X
  [33X[1;0Y[29X[2XPreImage[102X( [3Xmap[103X, [3Xcoll[103X ) [32X function[133X
  
  [33X[0;0Y[10XPreImage( [3Xmap[103X[10X )[110X is the preimage of the general mapping [3Xmap[103X, i.e., the subset
  of  elements  of the source of [3Xmap[103X that actually have values under [3Xmap[103X. Note
  that in this case the argument may also be non-injective or non-surjective.[133X
  
  [33X[0;0Y[10XPreImage(  [3Xmap[103X[10X, [3Xelm[103X[10X )[110X is the preimage of the element [3Xelm[103X of the range of the
  injective  and surjective mapping [3Xmap[103X under [3Xmap[103X, i.e., the unique element of
  the source which is mapped under [3Xmap[103X to [3Xelm[103X. Note that [3Xmap[103X must be injective
  and surjective (see [2XPreImages[102X ([14X32.5-7[114X)).[133X
  
  [33X[0;0Y[10XPreImage( [3Xmap[103X[10X, [3Xcoll[103X[10X )[110X is the preimage of the subset [3Xcoll[103X of the range of the
  general  mapping  [3Xmap[103X  under  [3Xmap[103X,  i.e.,  the subset of the source which is
  mapped  under [3Xmap[103X to elements of [3Xcoll[103X. [3Xcoll[103X may be a proper set or a domain.
  The  result  will be either a proper set or a domain. Note that in this case
  [3Xmap[103X may also be non-injective or non-surjective. (If [3Xcoll[103X and the result are
  lists then the positions of entries do in general [13Xnot[113X correspond.)[133X
  
  [33X[0;0Y[2XPreImage[102X delegates to [2XPreImagesRange[102X ([14X32.5-1[114X) when called with one argument,
  and to [2XPreImageElm[102X ([14X32.5-3[114X) resp. [2XPreImagesSet[102X ([14X32.5-5[114X) when called with two
  arguments.[133X
  
  [33X[0;0YIf  the  second  argument  is not an element or a subset of the range of the
  first argument, an error is signalled.[133X
  
  
  [1X32.5-7 [33X[0;0YPreImages[133X[101X
  
  [33X[1;0Y[29X[2XPreImages[102X( [3Xmap[103X ) [32X function[133X
  [33X[1;0Y[29X[2XPreImages[102X( [3Xmap[103X, [3Xelm[103X ) [32X function[133X
  [33X[1;0Y[29X[2XPreImages[102X( [3Xmap[103X, [3Xcoll[103X ) [32X function[133X
  
  [33X[0;0Y[10XPreImages(  [3Xmap[103X[10X  )[110X  is  the  preimage  of the general mapping [3Xmap[103X, i.e., the
  subset of elements of the source of [3Xmap[103X that have actually values under [3Xmap[103X.[133X
  
  [33X[0;0Y[10XPreImages(  [3Xmap[103X[10X,  [3Xelm[103X[10X  )[110X  is  the set of preimages of the element [3Xelm[103X of the
  range of the general mapping [3Xmap[103X under [3Xmap[103X, i.e., the set of elements of the
  source which [3Xmap[103X maps to [3Xelm[103X.[133X
  
  [33X[0;0Y[10XPreImages(  [3Xmap[103X[10X, [3Xcoll[103X[10X )[110X is the set of images of the subset [3Xcoll[103X of the range
  of  the  general mapping [3Xmap[103X under [3Xmap[103X, i.e., the subset of the source which
  [3Xmap[103X  maps  to  elements  of  [3Xcoll[103X. [3Xcoll[103X may be a proper set or a domain. The
  result  will be either a proper set or a domain. (If [3Xcoll[103X and the result are
  lists then the positions of entries do in general [13Xnot[113X correspond.)[133X
  
  [33X[0;0Y[2XPreImages[102X   delegates  to  [2XPreImagesRange[102X  ([14X32.5-1[114X)  when  called  with  one
  argument,  and  to  [2XPreImagesElm[102X  ([14X32.5-2[114X)  resp. [2XPreImagesSet[102X ([14X32.5-5[114X) when
  called with two arguments.[133X
  
  [33X[0;0YIf  the  second  argument  is not an element or a subset of the range of the
  first argument, an error is signalled.[133X
  
  
  [1X32.6 [33X[0;0YArithmetic Operations for General Mappings[133X[101X
  
  [33X[0;0YGeneral  mappings  are  arithmetic  objects.  One can form groups and vector
  spaces of general mappings provided that they are invertible or can be added
  and admit scalar multiplication, respectively.[133X
  
  [33X[0;0YFor  two  general mappings with same source, range, preimage, and image, the
  [13Xsum[113X  is  defined pointwise, i.e., the images of a point under the sum is the
  set  of  all  sums  with  first  summand  in the images of the first general
  mapping and second summand in the images of the second general mapping.[133X
  
  [33X[0;0Y[13XScalar multiplication[113X of general mappings is defined likewise.[133X
  
  [33X[0;0YThe  [13Xproduct[113X  of  two  general  mappings is defined as the composition. This
  multiplication  is always associative. In addition to the composition via [10X*[110X,
  general  mappings can be composed –in reversed order– via [2XCompositionMapping[102X
  ([14X32.2-5[114X).[133X
  
  [33X[0;0YGeneral  mappings  are  in  the  category  of  multiplicative  elements with
  inverses.  Similar  to matrices, not every general mapping has an inverse or
  an  identity,  and  we  define  the  behaviour  of [2XOne[102X ([14X31.10-2[114X) and [2XInverse[102X
  ([14X31.10-8[114X)  for  general mappings as follows. [2XOne[102X ([14X31.10-2[114X) returns [9Xfail[109X when
  called  for  a  general mapping whose source and range differ, otherwise [2XOne[102X
  ([14X31.10-2[114X)  returns the identity mapping of the source. (Note that the source
  may  differ  from  the preimage). [2XInverse[102X ([14X31.10-8[114X) returns [9Xfail[109X when called
  for  a  non-bijective  general mapping or for a general mapping whose source
  and range differ; otherwise [2XInverse[102X ([14X31.10-8[114X) returns the inverse mapping.[133X
  
  [33X[0;0YBesides  the  usual  inverse  of  multiplicative  elements, which means that
  [10XInverse( [3Xg[103X[10X ) * [3Xg[103X[10X = [3Xg[103X[10X * Inverse( [3Xg[103X[10X ) = One( [3Xg[103X[10X )[110X, for general mappings we have
  the attribute [2XInverseGeneralMapping[102X ([14X32.2-3[114X). If [3XF[103X is a general mapping with
  source [22XS[122X, range [22XR[122X, and underlying relation [22XRel[122X then [10XInverseGeneralMapping( [3XF[103X[10X
  )[110X  has  source  [22XR[122X, range [22XS[122X, and underlying relation [22X{ (r,s) ∣ (s,r) ∈ Rel }[122X.
  For  a  general  mapping that has an inverse in the usual sense, i.e., for a
  bijection of the source, of course both concepts coincide.[133X
  
  [33X[0;0Y[2XInverse[102X   ([14X31.10-8[114X)   may   delegate   to   [2XInverseGeneralMapping[102X  ([14X32.2-3[114X).
  [2XInverseGeneralMapping[102X ([14X32.2-3[114X) must not delegate to [2XInverse[102X ([14X31.10-8[114X), but a
  known  value  of [2XInverse[102X ([14X31.10-8[114X) may be fetched. So methods to compute the
  inverse  of  a general mapping should be installed for [2XInverseGeneralMapping[102X
  ([14X32.2-3[114X).[133X
  
  [33X[0;0Y(Note  that  in  many respects, general mappings behave similar to matrices,
  for  example one can define left and right identities and inverses, which do
  not fit into the current concepts of [5XGAP[105X.)[133X
  
  
  [1X32.7 [33X[0;0YMappings which are Compatible with Algebraic Structures[133X[101X
  
  [33X[0;0YFrom  an  algebraical  point  of view, the most important mappings are those
  which  are  compatible  with  a structure. For Magmas, Groups and Rings, [5XGAP[105X
  supports the following four types of such mappings:[133X
  
  [31X1[131X   [33X[0;6YGeneral mappings that respect multiplication[133X
  
  [31X2[131X   [33X[0;6YGeneral mappings that respect addition[133X
  
  [31X3[131X   [33X[0;6YGeneral mappings that respect scalar mult.[133X
  
  [31X4[131X   [33X[0;6YGeneral mappings that respect multiplicative and additive structure[133X
  
  [33X[0;0Y(Very   technical   note:  [5XGAP[105X  defines  categories  [10XIsSPGeneralMapping[110X  and
  [10XIsNonSPGeneralMapping[110X.  The  distinction  between these is orthogonal to the
  structure compatibility described here and should not be confused.)[133X
  
  
  [1X32.8 [33X[0;0YMagma Homomorphisms[133X[101X
  
  [1X32.8-1 IsMagmaHomomorphism[101X
  
  [33X[1;0Y[29X[2XIsMagmaHomomorphism[102X( [3Xmapp[103X ) [32X filter[133X
  
  [33X[0;0YA  [13Xmagma  homomorphism[113X  is  a  total  single  valued  mapping which respects
  multiplication.[133X
  
  [1X32.8-2 MagmaHomomorphismByFunctionNC[101X
  
  [33X[1;0Y[29X[2XMagmaHomomorphismByFunctionNC[102X( [3XG[103X, [3XH[103X, [3Xfn[103X ) [32X function[133X
  
  [33X[0;0YCreates  the  homomorphism  from  [3XG[103X  to  [3XH[103X  without  checking  that  [3Xfn[103X is a
  homomorphism.[133X
  
  [1X32.8-3 NaturalHomomorphismByGenerators[101X
  
  [33X[1;0Y[29X[2XNaturalHomomorphismByGenerators[102X( [3Xf[103X, [3Xs[103X ) [32X operation[133X
  
  [33X[0;0Yreturns  a  mapping from the magma [3Xf[103X with [22Xn[122X generators to the magma [3Xs[103X with [22Xn[122X
  generators, which maps the [22Xi[122X-th generator of [3Xf[103X to the [22Xi[122X-th generator of [3Xs[103X.[133X
  
  
  [1X32.9 [33X[0;0YMappings that Respect Multiplication[133X[101X
  
  [1X32.9-1 RespectsMultiplication[101X
  
  [33X[1;0Y[29X[2XRespectsMultiplication[102X( [3Xmapp[103X ) [32X property[133X
  
  [33X[0;0YLet  [3Xmapp[103X  be  a general mapping with underlying relation [22XF ⊆ S × R[122X, where [22XS[122X
  and   [22XR[122X   are   the  source  and  the  range  of  [3Xmapp[103X,  respectively.  Then
  [2XRespectsMultiplication[102X  returns  [9Xtrue[109X  if  [22XS[122X  and  [22XR[122X  are  magmas  such that
  [22X(s_1,r_1),  (s_2,r_2)  ∈  F[122X  implies  [22X(s_1  *  s_2,r_1 * r_2) ∈ F[122X, and [9Xfalse[109X
  otherwise.[133X
  
  [33X[0;0YIf  [3Xmapp[103X  is  single-valued  then [2XRespectsMultiplication[102X returns [9Xtrue[109X if and
  only if the equation [10X[3Xs1[103X[10X^[3Xmapp[103X[10X * [3Xs2[103X[10X^[3Xmapp[103X[10X = ([3Xs1[103X[10X * [3Xs2[103X[10X)^[3Xmapp[103X[10X[110X holds for all [3Xs1[103X, [3Xs2[103X
  in [22XS[122X.[133X
  
  [1X32.9-2 RespectsOne[101X
  
  [33X[1;0Y[29X[2XRespectsOne[102X( [3Xmapp[103X ) [32X property[133X
  
  [33X[0;0YLet  [3Xmapp[103X  be  a general mapping with underlying relation [22XF ⊆ [3XS[103X × [3XR[103X[122X, where [3XS[103X
  and  [3XR[103X  are the source and the range of [3Xmapp[103X, respectively. Then [2XRespectsOne[102X
  returns  [9Xtrue[109X  if [3XS[103X and [3XR[103X are magmas-with-one such that [22X([122X[10XOne([3XS[103X[10X)[110X[22X,[122X[10XOne([3XR[103X[10X)[110X[22X) ∈ F[122X,
  and [9Xfalse[109X otherwise.[133X
  
  [33X[0;0YIf  [3Xmapp[103X  is  single-valued then [2XRespectsOne[102X returns [9Xtrue[109X if and only if the
  equation [10XOne( [3XS[103X[10X )^[3Xmapp[103X[10X = One( [3XR[103X[10X )[110X holds.[133X
  
  [1X32.9-3 RespectsInverses[101X
  
  [33X[1;0Y[29X[2XRespectsInverses[102X( [3Xmapp[103X ) [32X property[133X
  
  [33X[0;0YLet  [3Xmapp[103X  be  a general mapping with underlying relation [22XF ⊆ [3XS[103X × [3XR[103X[122X, where [3XS[103X
  and   [3XR[103X   are   the  source  and  the  range  of  [3Xmapp[103X,  respectively.  Then
  [2XRespectsInverses[102X returns [9Xtrue[109X if [3XS[103X and [3XR[103X are magmas-with-inverses such that,
  for  [22Xs  ∈  [3XS[103X[122X  and  [22Xr  ∈  [3XR[103X[122X, [22X(s,r) ∈ F[122X implies [22X(s^{-1},r^{-1}) ∈ F[122X, and [9Xfalse[109X
  otherwise.[133X
  
  [33X[0;0YIf  [3Xmapp[103X  is single-valued then [2XRespectsInverses[102X returns [9Xtrue[109X if and only if
  the equation [10XInverse( [3Xs[103X[10X )^[3Xmapp[103X[10X = Inverse( [3Xs[103X[10X^[3Xmapp[103X[10X )[110X holds for all [3Xs[103X in [22XS[122X.[133X
  
  [1X32.9-4 IsGroupGeneralMapping[101X
  
  [33X[1;0Y[29X[2XIsGroupGeneralMapping[102X( [3Xmapp[103X ) [32X filter[133X
  [33X[1;0Y[29X[2XIsGroupHomomorphism[102X( [3Xmapp[103X ) [32X filter[133X
  
  [33X[0;0YA  [13Xgroup  general  mapping[113X  is  a  mapping which respects multiplication and
  inverses.   If  it  is  total  and  single  valued  it  is  called  a  [13Xgroup
  homomorphism[113X.[133X
  
  [33X[0;0YChapter [14X40[114X explains group homomorphisms in more detail.[133X
  
  [1X32.9-5 KernelOfMultiplicativeGeneralMapping[101X
  
  [33X[1;0Y[29X[2XKernelOfMultiplicativeGeneralMapping[102X( [3Xmapp[103X ) [32X attribute[133X
  
  [33X[0;0YLet  [3Xmapp[103X  be  a  general mapping. Then [2XKernelOfMultiplicativeGeneralMapping[102X
  returns the set of all elements in the source of [3Xmapp[103X that have the identity
  of the range in their set of images.[133X
  
  [33X[0;0Y(This is a monoid if [3Xmapp[103X respects multiplication and one, and if the source
  of [3Xmapp[103X is associative.)[133X
  
  [1X32.9-6 CoKernelOfMultiplicativeGeneralMapping[101X
  
  [33X[1;0Y[29X[2XCoKernelOfMultiplicativeGeneralMapping[102X( [3Xmapp[103X ) [32X attribute[133X
  
  [33X[0;0YLet  [3Xmapp[103X  be a general mapping. Then [2XCoKernelOfMultiplicativeGeneralMapping[102X
  returns  the set of all elements in the range of [3Xmapp[103X that have the identity
  of the source in their set of preimages.[133X
  
  [33X[0;0Y(This  is a monoid if [3Xmapp[103X respects multiplication and one, and if the range
  of [3Xmapp[103X is associative.)[133X
  
  
  [1X32.10 [33X[0;0YMappings that Respect Addition[133X[101X
  
  [1X32.10-1 RespectsAddition[101X
  
  [33X[1;0Y[29X[2XRespectsAddition[102X( [3Xmapp[103X ) [32X property[133X
  
  [33X[0;0YLet  [3Xmapp[103X  be  a general mapping with underlying relation [22XF ⊆ S × R[122X, where [22XS[122X
  and   [22XR[122X   are   the  source  and  the  range  of  [3Xmapp[103X,  respectively.  Then
  [2XRespectsAddition[102X  returns  [9Xtrue[109X  if  [22XS[122X  and  [22XR[122X are additive magmas such that
  [22X(s_1,r_1),  (s_2,r_2)  ∈  F[122X  implies  [22X(s_1  +  s_2,r_1 + r_2) ∈ F[122X, and [9Xfalse[109X
  otherwise.[133X
  
  [33X[0;0YIf  [3Xmapp[103X  is single-valued then [2XRespectsAddition[102X returns [9Xtrue[109X if and only if
  the equation [10X[3Xs1[103X[10X^[3Xmapp[103X[10X + [3Xs2[103X[10X^[3Xmapp[103X[10X = ([3Xs1[103X[10X+[3Xs2[103X[10X)^[3Xmapp[103X[10X[110X holds for all [3Xs1[103X, [3Xs2[103X in [22XS[122X.[133X
  
  [1X32.10-2 RespectsAdditiveInverses[101X
  
  [33X[1;0Y[29X[2XRespectsAdditiveInverses[102X( [3Xmapp[103X ) [32X property[133X
  
  [33X[0;0YLet  [3Xmapp[103X  be  a general mapping with underlying relation [22XF ⊆ S × R[122X, where [22XS[122X
  and   [22XR[122X   are   the  source  and  the  range  of  [3Xmapp[103X,  respectively.  Then
  [2XRespectsAdditiveInverses[102X     returns     [9Xtrue[109X     if    [22XS[122X    and    [22XR[122X    are
  additive-magmas-with-inverses  such  that [22X(s,r) ∈ F[122X implies [22X(-s,-r) ∈ F[122X, and
  [9Xfalse[109X otherwise.[133X
  
  [33X[0;0YIf  [3Xmapp[103X  is single-valued then [2XRespectsAdditiveInverses[102X returns [9Xtrue[109X if and
  only  if  the equation [10XAdditiveInverse( [3Xs[103X[10X )^[3Xmapp[103X[10X = AdditiveInverse( [3Xs[103X[10X^[3Xmapp[103X[10X )[110X
  holds for all [3Xs[103X in [22XS[122X.[133X
  
  [1X32.10-3 RespectsZero[101X
  
  [33X[1;0Y[29X[2XRespectsZero[102X( [3Xmapp[103X ) [32X property[133X
  
  [33X[0;0YLet  [3Xmapp[103X  be  a general mapping with underlying relation [22XF ⊆ [3XS[103X × [3XR[103X[122X, where [3XS[103X
  and  [3XR[103X are the source and the range of [3Xmapp[103X, respectively. Then [2XRespectsZero[102X
  returns   [9Xtrue[109X   if   [3XS[103X   and  [3XR[103X  are  additive-magmas-with-zero  such  that
  [22X([122X[10XZero([3XS[103X[10X)[110X[22X,[122X[10XZero([3XR[103X[10X)[110X[22X) ∈ F[122X, and [9Xfalse[109X otherwise.[133X
  
  [33X[0;0YIf  [3Xmapp[103X  is single-valued then [2XRespectsZero[102X returns [9Xtrue[109X if and only if the
  equation [10XZero( [3XS[103X[10X )^[3Xmapp[103X[10X = Zero( [3XR[103X[10X )[110X holds.[133X
  
  [1X32.10-4 IsAdditiveGroupGeneralMapping[101X
  
  [33X[1;0Y[29X[2XIsAdditiveGroupGeneralMapping[102X( [3Xmapp[103X ) [32X filter[133X
  [33X[1;0Y[29X[2XIsAdditiveGroupHomomorphism[102X( [3Xmapp[103X ) [32X filter[133X
  
  [33X[0;0Y[2XIsAdditiveGroupGeneralMapping[102X  specifies  whether  a  general  mapping  [3Xmapp[103X
  respects  addition  (see  [2XRespectsAddition[102X  ([14X32.10-1[114X)) and respects additive
  inverses (see [2XRespectsAdditiveInverses[102X ([14X32.10-2[114X)).[133X
  
  [33X[0;0Y[2XIsAdditiveGroupHomomorphism[102X    is    a    synonym    for    the    meet   of
  [2XIsAdditiveGroupGeneralMapping[102X and [2XIsMapping[102X ([14X32.3-3[114X).[133X
  
  [1X32.10-5 KernelOfAdditiveGeneralMapping[101X
  
  [33X[1;0Y[29X[2XKernelOfAdditiveGeneralMapping[102X( [3Xmapp[103X ) [32X attribute[133X
  
  [33X[0;0YLet  [3Xmapp[103X  be a general mapping. Then [2XKernelOfAdditiveGeneralMapping[102X returns
  the  set  of  all  elements  in the source of [3Xmapp[103X that have the zero of the
  range in their set of images.[133X
  
  [1X32.10-6 CoKernelOfAdditiveGeneralMapping[101X
  
  [33X[1;0Y[29X[2XCoKernelOfAdditiveGeneralMapping[102X( [3Xmapp[103X ) [32X attribute[133X
  
  [33X[0;0YLet [3Xmapp[103X be a general mapping. Then [2XCoKernelOfAdditiveGeneralMapping[102X returns
  the  set  of  all  elements  in  the range of [3Xmapp[103X that have the zero of the
  source in their set of preimages.[133X
  
  
  [1X32.11 [33X[0;0YLinear Mappings[133X[101X
  
  [33X[0;0YAlso  see  Sections [14X32.9[114X,  [14X32.10[114X,  and  [2XKernelOfMultiplicativeGeneralMapping[102X
  ([14X32.9-5[114X), [2XCoKernelOfMultiplicativeGeneralMapping[102X ([14X32.9-6[114X).[133X
  
  [1X32.11-1 RespectsScalarMultiplication[101X
  
  [33X[1;0Y[29X[2XRespectsScalarMultiplication[102X( [3Xmapp[103X ) [32X property[133X
  
  [33X[0;0YLet  [3Xmapp[103X  be a general mapping, with underlying relation [22XF ⊆ S × R[122X, where [22XS[122X
  and   [22XR[122X   are   the  source  and  the  range  of  [3Xmapp[103X,  respectively.  Then
  [2XRespectsScalarMultiplication[102X  returns  [9Xtrue[109X if [22XS[122X and [22XR[122X are left modules with
  the  left  acting domain [22XD[122X of [22XS[122X contained in the left acting domain of [22XR[122X and
  such  that  [22X(s,r)  ∈  F[122X  implies  [22X(c * s,c * r) ∈ F[122X for all [22Xc ∈ D[122X, and [9Xfalse[109X
  otherwise.[133X
  
  [33X[0;0YIf  [3Xmapp[103X  is single-valued then [2XRespectsScalarMultiplication[102X returns [9Xtrue[109X if
  and  only if the equation [10X[3Xc[103X[10X * [3Xs[103X[10X^[3Xmapp[103X[10X = ([3Xc[103X[10X * [3Xs[103X[10X)^[3Xmapp[103X[10X[110X holds for all [3Xc[103X in [22XD[122X and
  [3Xs[103X in [22XS[122X.[133X
  
  [1X32.11-2 IsLeftModuleGeneralMapping[101X
  
  [33X[1;0Y[29X[2XIsLeftModuleGeneralMapping[102X( [3Xmapp[103X ) [32X filter[133X
  [33X[1;0Y[29X[2XIsLeftModuleHomomorphism[102X( [3Xmapp[103X ) [32X filter[133X
  
  [33X[0;0Y[2XIsLeftModuleGeneralMapping[102X   specifies   whether   a  general  mapping  [3Xmapp[103X
  satisfies  the property [2XIsAdditiveGroupGeneralMapping[102X ([14X32.10-4[114X) and respects
  scalar multiplication (see [2XRespectsScalarMultiplication[102X ([14X32.11-1[114X)).[133X
  
  [33X[0;0Y[2XIsLeftModuleHomomorphism[102X     is     a    synonym    for    the    meet    of
  [2XIsLeftModuleGeneralMapping[102X and [2XIsMapping[102X ([14X32.3-3[114X).[133X
  
  [1X32.11-3 IsLinearMapping[101X
  
  [33X[1;0Y[29X[2XIsLinearMapping[102X( [3XF[103X, [3Xmapp[103X ) [32X operation[133X
  
  [33X[0;0YFor  a  field  [3XF[103X and a general mapping [3Xmapp[103X, [2XIsLinearMapping[102X returns [9Xtrue[109X if
  [3Xmapp[103X is an [3XF[103X-linear mapping, and [9Xfalse[109X otherwise.[133X
  
  [33X[0;0YA mapping [22Xf[122X is a linear mapping (or vector space homomorphism) if the source
  and range are vector spaces over the same division ring [22XD[122X, and if [22Xf( a + b )
  =  f(a)  +  f(b)[122X and [22Xf( s * a ) = s * f(a)[122X hold for all elements [22Xa[122X, [22Xb[122X in the
  source of [22Xf[122X and [22Xs ∈ D[122X.[133X
  
  
  [1X32.12 [33X[0;0YRing Homomorphisms[133X[101X
  
  [1X32.12-1 IsRingGeneralMapping[101X
  
  [33X[1;0Y[29X[2XIsRingGeneralMapping[102X( [3Xmapp[103X ) [32X filter[133X
  [33X[1;0Y[29X[2XIsRingHomomorphism[102X( [3Xmapp[103X ) [32X filter[133X
  
  [33X[0;0Y[2XIsRingGeneralMapping[102X  specifies whether a general mapping [3Xmapp[103X satisfies the
  property [2XIsAdditiveGroupGeneralMapping[102X ([14X32.10-4[114X) and respects multiplication
  (see [2XRespectsMultiplication[102X ([14X32.9-1[114X)).[133X
  
  [33X[0;0Y[2XIsRingHomomorphism[102X  is  a  synonym  for the meet of [2XIsRingGeneralMapping[102X and
  [2XIsMapping[102X ([14X32.3-3[114X).[133X
  
  [1X32.12-2 IsRingWithOneGeneralMapping[101X
  
  [33X[1;0Y[29X[2XIsRingWithOneGeneralMapping[102X( [3Xmapp[103X ) [32X filter[133X
  [33X[1;0Y[29X[2XIsRingWithOneHomomorphism[102X( [3Xmapp[103X ) [32X filter[133X
  
  [1X32.12-3 IsAlgebraGeneralMapping[101X
  
  [33X[1;0Y[29X[2XIsAlgebraGeneralMapping[102X( [3Xmapp[103X ) [32X filter[133X
  [33X[1;0Y[29X[2XIsAlgebraHomomorphism[102X( [3Xmapp[103X ) [32X filter[133X
  
  [33X[0;0Y[2XIsAlgebraGeneralMapping[102X  specifies  whether a general mapping [3Xmapp[103X satisfies
  both      properties     [2XIsRingGeneralMapping[102X     ([14X32.12-1[114X)     and     (see
  [2XIsLeftModuleGeneralMapping[102X ([14X32.11-2[114X)).[133X
  
  [33X[0;0Y[2XIsAlgebraHomomorphism[102X  is  a synonym for the meet of [2XIsAlgebraGeneralMapping[102X
  and [2XIsMapping[102X ([14X32.3-3[114X).[133X
  
  [1X32.12-4 IsAlgebraWithOneGeneralMapping[101X
  
  [33X[1;0Y[29X[2XIsAlgebraWithOneGeneralMapping[102X( [3Xmapp[103X ) [32X filter[133X
  [33X[1;0Y[29X[2XIsAlgebraWithOneHomomorphism[102X( [3Xmapp[103X ) [32X filter[133X
  
  [33X[0;0Y[2XIsAlgebraWithOneGeneralMapping[102X  specifies  whether  a  general  mapping [3Xmapp[103X
  satisfies  both properties [2XIsAlgebraGeneralMapping[102X ([14X32.12-3[114X) and [2XRespectsOne[102X
  ([14X32.9-2[114X).[133X
  
  [33X[0;0Y[2XIsAlgebraWithOneHomomorphism[102X    is    a    synonym    for    the   meet   of
  [2XIsAlgebraWithOneGeneralMapping[102X and [2XIsMapping[102X ([14X32.3-3[114X).[133X
  
  [1X32.12-5 IsFieldHomomorphism[101X
  
  [33X[1;0Y[29X[2XIsFieldHomomorphism[102X( [3Xmapp[103X ) [32X property[133X
  
  [33X[0;0YA  general  mapping  is  a  field  homomorphism  if and only if it is a ring
  homomorphism with source a field.[133X
  
  
  [1X32.13 [33X[0;0YGeneral Mappings[133X[101X
  
  [1X32.13-1 IsGeneralMapping[101X
  
  [33X[1;0Y[29X[2XIsGeneralMapping[102X( [3Xmap[103X ) [32X Category[133X
  
  [33X[0;0YEach  general  mapping lies in the category [2XIsGeneralMapping[102X. It implies the
  categories       [2XIsMultiplicativeElementWithInverse[102X      ([14X31.14-13[114X)      and
  [2XIsAssociativeElement[102X  ([14X31.15-1[114X);  for  a  discussion  of these implications,
  see [14X32.6[114X.[133X
  
  [1X32.13-2 IsConstantTimeAccessGeneralMapping[101X
  
  [33X[1;0Y[29X[2XIsConstantTimeAccessGeneralMapping[102X( [3Xmap[103X ) [32X property[133X
  
  [33X[0;0Yis  [9Xtrue[109X  if  the  underlying  relation of the general mapping [3Xmap[103X knows its
  [2XAsList[102X ([14X30.3-8[114X) value, and [9Xfalse[109X otherwise.[133X
  
  [33X[0;0YIn  the  former case, [3Xmap[103X is allowed to use this list for calls to [2XImagesElm[102X
  ([14X32.4-3[114X) etc.[133X
  
  [1X32.13-3 IsEndoGeneralMapping[101X
  
  [33X[1;0Y[29X[2XIsEndoGeneralMapping[102X( [3Xobj[103X ) [32X property[133X
  
  [33X[0;0YIf a general mapping has this property then its source and range are equal.[133X
  
  
  [1X32.14 [33X[0;0YTechnical Matters Concerning General Mappings[133X[101X
  
  [33X[0;0Y[2XSource[102X  ([14X32.3-8[114X)  and  [2XRange[102X  ([14X32.3-7[114X)  are  basic  operations  for  general
  mappings.  [2XUnderlyingRelation[102X ([14X32.3-9[114X) is secondary, its default method sets
  up  a  domain  that  delegates tasks to the general mapping. (Note that this
  allows one to handle also infinite relations by generic methods if source or
  range of the general mapping is finite.)[133X
  
  [33X[0;0YThe  distinction  between  basic  operations  and  secondary  operations for
  general  mappings  may  be  a  little  bit complicated. Namely, each general
  mapping   must  be  in  one  of  the  two  categories  [2XIsNonSPGeneralMapping[102X
  ([14X32.14-1[114X),  [2XIsSPGeneralMapping[102X  ([14X32.14-1[114X).  (The  category  [2XIsGeneralMapping[102X
  ([14X32.13-1[114X) is defined as the disjoint union of these two.)[133X
  
  [33X[0;0YFor   general  mappings  of  the  first  category,  [2XImagesElm[102X  ([14X32.4-3[114X)  and
  [2XPreImagesElm[102X  ([14X32.5-2[114X)  are  basic operations. (Note that in principle it is
  possible  to  delegate  from  [2XPreImagesElm[102X  ([14X32.5-2[114X) to [2XImagesElm[102X ([14X32.4-3[114X).)
  Methods   for   the  secondary  operations  [2XImageElm[102X  ([14X32.4-5[114X),  [2XPreImageElm[102X
  ([14X32.5-3[114X),  [2XImagesSet[102X  ([14X32.4-4[114X),  [2XPreImagesSet[102X ([14X32.5-5[114X), [2XImagesRepresentative[102X
  ([14X32.4-2[114X),  and  [2XPreImagesRepresentative[102X  ([14X32.5-4[114X) may use [2XImagesElm[102X ([14X32.4-3[114X)
  and [2XPreImagesElm[102X ([14X32.5-2[114X), respectively, and methods for [2XImagesElm[102X ([14X32.4-3[114X),
  [2XPreImagesElm[102X ([14X32.5-2[114X) must [13Xnot[113X call the secondary operations. In particular,
  there  are  no  generic  methods  for  [2XImagesElm[102X  ([14X32.4-3[114X)  and [2XPreImagesElm[102X
  ([14X32.5-2[114X).[133X
  
  [33X[0;0YMethods  for  [2XImagesSet[102X  ([14X32.4-4[114X)  and  [2XPreImagesSet[102X  ([14X32.5-5[114X)  must [13Xnot[113X use
  [2XPreImagesRange[102X   ([14X32.5-1[114X)  and  [2XImagesSource[102X  ([14X32.4-1[114X),  e.g.,  compute  the
  intersection of the set in question with the preimage of the range resp. the
  image of the source.[133X
  
  [33X[0;0YFor   general  mappings  of  the  second  category  (which  means  structure
  preserving  general  mappings),  the  situation  is  different.  The  set of
  preimages under a group homomorphism, for example, is either empty or can be
  described  as a coset of the (multiplicative) kernel. So it is reasonable to
  have   [2XImagesRepresentative[102X   ([14X32.4-2[114X),   [2XPreImagesRepresentative[102X  ([14X32.5-4[114X),
  [2XKernelOfMultiplicativeGeneralMapping[102X              ([14X32.9-5[114X),              and
  [2XCoKernelOfMultiplicativeGeneralMapping[102X  ([14X32.9-6[114X)  as  basic operations here,
  and   to   make  [2XImagesElm[102X  ([14X32.4-3[114X)  and  [2XPreImagesElm[102X  ([14X32.5-2[114X)  secondary
  operations that may delegate to these.[133X
  
  [33X[0;0YIn  order  to avoid infinite recursions, we must distinguish between the two
  different types of mappings.[133X
  
  [33X[0;0Y(Note  that  the  basic  domain  operations  such as [2XAsList[102X ([14X30.3-8[114X) for the
  underlying  relation  of a general mapping may use either [2XImagesElm[102X ([14X32.4-3[114X)
  or  [2XImagesRepresentative[102X  ([14X32.4-2[114X) and the appropriate cokernel. Conversely,
  if  [2XAsList[102X  ([14X30.3-8[114X)  for  the  underlying  relation is known then [2XImagesElm[102X
  ([14X32.4-3[114X) resp. [2XImagesRepresentative[102X ([14X32.4-2[114X) may delegate to it, the general
  mapping  gets  the property [2XIsConstantTimeAccessGeneralMapping[102X ([14X32.13-2[114X) for
  this;  note that this is not allowed if only an enumerator of the underlying
  relation is known.)[133X
  
  [33X[0;0YSecondary  operations  are  [2XIsInjective[102X  ([14X32.3-4[114X),  [2XIsSingleValued[102X ([14X32.3-2[114X),
  [2XIsSurjective[102X  ([14X32.3-5[114X), [2XIsTotal[102X ([14X32.3-1[114X); they may use the basic operations,
  and must not be used by them.[133X
  
  [33X[0;0YMethods   for   the   operations  [2XImagesElm[102X  ([14X32.4-3[114X),  [2XImagesRepresentative[102X
  ([14X32.4-2[114X),  [2XImagesSet[102X  ([14X32.4-4[114X),  [2XImageElm[102X  ([14X32.4-5[114X),  [2XPreImagesElm[102X ([14X32.5-2[114X),
  [2XPreImagesRepresentative[102X  ([14X32.5-4[114X),  [2XPreImagesSet[102X  ([14X32.5-5[114X),  and [2XPreImageElm[102X
  ([14X32.5-3[114X)  take  two  arguments,  a  general  mapping  [3Xmap[103X  and an element or
  collection of elements [3Xelm[103X. These methods must [13Xnot[113X check whether [3Xelm[103X lies in
  the  source  or the range of [3Xmap[103X. In the case that [3Xelm[103X does not, [9Xfail[109X may be
  returned  as  well  as  any  other  [5XGAP[105X object, and even an error message is
  allowed.  Checks  of  the  arguments  are  done  only by the functions [2XImage[102X
  ([14X32.4-6[114X),  [2XImages[102X ([14X32.4-7[114X), [2XPreImage[102X ([14X32.5-6[114X), and [2XPreImages[102X ([14X32.5-7[114X), which
  then delegate to the operations listed above.[133X
  
  [1X32.14-1 IsSPGeneralMapping[101X
  
  [33X[1;0Y[29X[2XIsSPGeneralMapping[102X( [3Xmap[103X ) [32X Category[133X
  [33X[1;0Y[29X[2XIsNonSPGeneralMapping[102X( [3Xmap[103X ) [32X Category[133X
  
  [1X32.14-2 IsGeneralMappingFamily[101X
  
  [33X[1;0Y[29X[2XIsGeneralMappingFamily[102X( [3Xobj[103X ) [32X Category[133X
  
  [33X[0;0YThe family category of the category of general mappings.[133X
  
  [1X32.14-3 FamilyRange[101X
  
  [33X[1;0Y[29X[2XFamilyRange[102X( [3XFam[103X ) [32X attribute[133X
  
  [33X[0;0Yis the elements family of the family of the range of each general mapping in
  the family [3XFam[103X.[133X
  
  [1X32.14-4 FamilySource[101X
  
  [33X[1;0Y[29X[2XFamilySource[102X( [3XFam[103X ) [32X attribute[133X
  
  [33X[0;0Yis  the  elements family of the family of the source of each general mapping
  in the family [3XFam[103X.[133X
  
  [1X32.14-5 FamiliesOfGeneralMappingsAndRanges[101X
  
  [33X[1;0Y[29X[2XFamiliesOfGeneralMappingsAndRanges[102X( [3XFam[103X ) [32X attribute[133X
  
  [33X[0;0Yis  a list that stores at the odd positions the families of general mappings
  with  source in the family [3XFam[103X, at the even positions the families of ranges
  of the general mappings.[133X
  
  [1X32.14-6 GeneralMappingsFamily[101X
  
  [33X[1;0Y[29X[2XGeneralMappingsFamily[102X( [3Xsourcefam[103X, [3Xrangefam[103X ) [32X function[133X
  
  [33X[0;0YAll general mappings with same source family [3XFS[103X and same range family [3XFR[103X lie
  in the family [10XGeneralMappingsFamily( [3XFS[103X[10X, [3XFR[103X[10X )[110X.[133X
  
  [1X32.14-7 TypeOfDefaultGeneralMapping[101X
  
  [33X[1;0Y[29X[2XTypeOfDefaultGeneralMapping[102X( [3Xsource[103X, [3Xrange[103X, [3Xfilter[103X ) [32X function[133X
  
  [33X[0;0Yis  the  type of mappings with [10XIsDefaultGeneralMappingRep[110X with source [3Xsource[103X
  and range [3Xrange[103X and additional categories [3Xfilter[103X.[133X
  
