1#############################################################################
2##
3##  This file is part of GAP, a system for computational discrete algebra.
4##  This file's authors include Andrew Solomon.
5##
6##  Copyright of GAP belongs to its developers, whose names are too numerous
7##  to list here. Please refer to the COPYRIGHT file for details.
8##
9##  SPDX-License-Identifier: GPL-2.0-or-later
10##
11##  This file contains declarations for magma homomorphisms.
12##
13
14#############################################################################
15##
16#P  IsMagmaHomomorphism( <mapp> )
17##
18##  <#GAPDoc Label="IsMagmaHomomorphism">
19##  <ManSection>
20##  <Filt Name="IsMagmaHomomorphism" Arg='mapp'/>
21##
22##  <Description>
23##  A <E>magma homomorphism</E> is a total single valued mapping
24##  which respects  multiplication.
25##  </Description>
26##  </ManSection>
27##  <#/GAPDoc>
28##
29DeclareSynonymAttr( "IsMagmaHomomorphism",
30	IsMapping and RespectsMultiplication );
31
32
33#############################################################################
34##
35#F  MagmaHomomorphismByFunctionNC( <G>, <H>, <fn> )
36##
37##  <#GAPDoc Label="MagmaHomomorphismByFunctionNC">
38##  <ManSection>
39##  <Func Name="MagmaHomomorphismByFunctionNC" Arg='G, H, fn'/>
40##
41##  <Description>
42##  Creates the homomorphism from <A>G</A> to <A>H</A> without checking
43##  that <A>fn</A> is a homomorphism.
44##  </Description>
45##  </ManSection>
46##  <#/GAPDoc>
47##
48DeclareGlobalFunction( "MagmaHomomorphismByFunctionNC");
49
50#############################################################################
51##
52#F  MagmaIsomorphismByFunctionsNC( <G>, <H>, <fn>, <inv> )
53##
54##  <ManSection>
55##  <Func Name="MagmaIsomorphismByFunctionsNC" Arg='G, H, fn, inv'/>
56##
57##  <Description>
58##  Creates the isomorphism from <A>G</A> to <A>H</A> without checking
59##  that <A>fn</A> or <A>inv</A> are homomorphisms or bijective or inverse.
60##  </Description>
61##  </ManSection>
62##
63DeclareGlobalFunction( "MagmaIsomorphismByFunctionsNC");
64
65
66############################################################################
67##
68#O  NaturalHomomorphismByGenerators( <f>, <s> )
69##
70##  <#GAPDoc Label="NaturalHomomorphismByGenerators">
71##  <ManSection>
72##  <Oper Name="NaturalHomomorphismByGenerators" Arg='f, s'/>
73##
74##  <Description>
75##  returns a mapping from the magma <A>f</A> with <M>n</M> generators to the
76##  magma <A>s</A> with <M>n</M> generators,
77##  which maps the <M>i</M>-th generator of <A>f</A> to the
78##  <M>i</M>-th generator of <A>s</A>.
79##  </Description>
80##  </ManSection>
81##  <#/GAPDoc>
82##
83DeclareOperation("NaturalHomomorphismByGenerators",[IsMagma, IsMagma]);
84