Skip to content

Commit

Permalink
Merge pull request #74 from cdwensley/actions
Browse files Browse the repository at this point in the history
remove unused global function ElementsLeftActing
  • Loading branch information
cdwensley authored May 25, 2024
2 parents 66eb359 + 764f4a1 commit 8f100b6
Show file tree
Hide file tree
Showing 8 changed files with 167 additions and 137 deletions.
69 changes: 48 additions & 21 deletions doc/algebra.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<!-- -->
<!-- algebra.xml XModAlg documentation Z. Arvasi -->
<!-- & A. Odabas -->
<!-- Copyright (C) 2014-2021, Z. Arvasi & A. Odabas, -->
<!-- Copyright (C) 2014-2024, Z. Arvasi & A. Odabas, -->
<!-- Osmangazi University, Eskisehir, Turkey -->
<!-- -->
<!-- ------------------------------------------------------------------- -->
Expand All @@ -19,7 +19,8 @@ All the algebras considered in this package will be associative
and commutative.
Scalars belong to a commutative ring <B>k</B> with <M>1 \neq 0</M>.
<P/>
<E>Why not a field? A group ring over the integers is not an algebra.</E>
<E>(Why not a field?
A group ring over the integers is not an algebra. [CDW])</E>
<P/>


Expand Down Expand Up @@ -137,7 +138,7 @@ This operation returns <C>MultiplierAlgebraOfIdealBySubalgebra(A,A,A);</C>.

<Example>
<![CDATA[
gap> MA5c6 := RegularMultiplierAlgebra( A5c6 );
gap> MA5c6 := RegularAlgebraMultiplier( A5c6 );
<algebra of dimension 6 over GF(5)>
gap> vecM := BasisVectors( Basis( MA5c6 ) );;
gap> vecM[3];
Expand All @@ -150,9 +151,10 @@ gap> vecM[3];
<Attr Name="MultiplierHomomorphism"
Arg="M" />
<Description>
If <M>M</M> is a multiplier algebra with elements of algebra <M>A</M>
If <M>M</M> is a multiplier algebra with elements of
a subalgebra <M>B</M> of an algebra <M>A</M>
multiplying an ideal <M>I</M> then this operation returns the
homomorphism from <M>A</M> to <M>M</M> mapping <M>a</M> to <M>\mu_a</M>.
homomorphism from <M>B</M> to <M>M</M> mapping <M>b</M> to <M>\mu_b</M>.
</Description>
</ManSection>

Expand Down Expand Up @@ -209,10 +211,11 @@ for all <M>k \in </M><B>k</B>, <M>r,r' \in R</M>, and <M>s,s' \in S</M>.

<ManSection>
<Oper Name="AlgebraActionByMultipliers"
Arg="A I" />
Arg="A I B" />
<Description>
When <M>I</M> is an ideal in <M>A</M> we have seen that the multiplier
homomorphism from <M>A</M> to <C>MultiplierAlgebraOf(Ideal(A,I)</C>
When <M>I</M> is an ideal in <M>A</M>
and <M>B</M> is a subalgebra of <M>A</M>,
we have seen that the multiplier homomorphism from <M>A</M> to <C>MultiplierAlgebraOfIdealBySubalgebra(A,I,B)</C>
is an action.
<P/>
In the example the algebra is the group ring of the cyclic group <M>C_6</M>
Expand All @@ -231,7 +234,7 @@ gap> vecA := BasisVectors( Basis( A5c6 ) );;
gap> v := vecA[1] + vecA[3] + vecA[5];
(Z(5)^0)*()+(Z(5)^0)*(1,3,5)(2,4,6)+(Z(5)^0)*(1,5,3)(2,6,4)
gap> I5c6 := Ideal( A5c6, [v] );;
gap> actm := AlgebraActionByMultipliers( A5c6, I5c6 );;
gap> actm := AlgebraActionByMultipliers( A5c6, I5c6, A5c6 );;
gap> actm2 := Image( actm, vecA[2] );;
gap> Image( actm2, v );
(Z(5)^0)*(1,2,3,4,5,6)+(Z(5)^0)*(1,4)(2,5)(3,6)+(Z(5)^0)*(1,6,5,4,3,2)
Expand All @@ -242,12 +245,13 @@ gap> Image( actm2, v );
<Oper Name="AlgebraActionBySurjection"
Arg="hom" />
<Description>
Let <M>\theta : S \to R</M> be a surjective algebra homomorphism
such that <M>ks = 0_S ~\forall~ k \in K = \ker\theta</M>.
Then <M>R</M> acts on <M>S</M> with <M>r \cdot s = (\theta^{-1}r)s</M>.
Note that thus action is well defined since if <M>\theta p = r</M> then
<M>\theta^{-1}r = \{ p+k ~|~ k \in \ker\theta \}</M>
and <M>(p+k)s = ps+ks = ps+0</M>.
Let <M>\theta : A \to B</M> be a surjective algebra homomorphism
such that <M>\ker\theta</M> is contained in the annihilator of <M>A</M>.
Then <M>B</M> acts on <M>A</M> by <M>b \cdot a = pa</M>
where <M>p \in (\theta^{-1}b)</M>.
Note that this action is well defined since
<M>\theta^{-1}b = \{ p+k ~|~ k \in \ker\theta \}</M>
and <M>(p+k)a = pa+ka = ca+0</M>.
<P/>
Continuing with the previous example,
we construct the quotient algebra <M>Q5c6 = A5c6/I5c6</M>,
Expand Down Expand Up @@ -276,14 +280,27 @@ gap> m^2;
gap> m^3;
[ [ 0, 0, 0, 1 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] ]
gap> A1 := Algebra( Rationals, [m] );;
gap> SetName( A1, "A1" );
gap> A3 := Subalgebra( A1, [m^3] );;
gap> nat3 := NaturalHomomorphismByIdeal( A1, A3 );
<linear mapping by matrix, <algebra of dimension
3 over Rationals> -> <algebra of dimension 2 over Rationals>>
<linear mapping by matrix, A1 -> <algebra of dimension 2 over Ration\
als>>
gap> Q13 := Image( nat3 );;
gap> SetName( Q13, "Q13" );
gap> Display(nat3);
LeftModuleHomomorphismByMatrix( Basis( A1,
[ [ [ 0, 0, 0, 1 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] ],
[ [ 0, 1, 2, 3 ], [ 0, 0, 1, 2 ], [ 0, 0, 0, 1 ], [ 0, 0, 0, 0 ] ],
[ [ 0, 0, 1, 4 ], [ 0, 0, 0, 1 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] ] ] ),
[ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ] ], CanonicalBasis( Q13 ) )
gap> act3 := AlgebraActionBySurjection( nat3 );;
gap> a3 := Image( act3, BasisVectors( Basis( Image( nat3 ) ) )[1] );;
gap> [ Image( a3, m ) = m^2, Image( a3, m^2 ) = m^3 ];
[ true, true ]
gap> B3 := Image( act3 );;
gap> bvB3 := BasisVectors( Basis( B3 ) );;
gap> b1 := bvB3[1];; b2 := bvB3[2];;
gap> [ Image(b1,m)=m^2, Image(b1,m^2)=m^3, Image(b1,m^3)=Zero(A1) ];
[ true, true, true ]
gap> [ Image(b2,m)=m^3, b2=b1^2 ];
[true, true ]
]]>
</Example>

Expand All @@ -302,7 +319,7 @@ where the product is given by:
(r_1,s_1)(r_2,s_2) ~=~ (r_1r_2,~ r_1 \cdot s_2 + r_2 \cdot s_1 + s_1s_2).
</Display>

This product, as wekll as being commutative, is associative:
This product, as well as being commutative, is associative:
<M>(r_1,s_1)(r_2,s_2)(r_3,s_3)</M> expands as:
<Display>
(r_1r_2r_3,~ \left (r_1r_2)\cdot s3 + (r_1r_3)\cdot s_2 + (r_2r_3)\cdot s_1
Expand All @@ -328,6 +345,7 @@ Continuing the example above,
<Example>
<![CDATA[
gap> P := SemidirectProductOfAlgebras( A5c6, actm, I5c6 );
<algebra of dimension 8 over GF(5)>
gap> Embedding( P, 1 );
[ (Z(5)^0)*(), (Z(5)^0)*(1,2,3,4,5,6), (Z(5)^0)*(1,3,5)(2,4,6),
(Z(5)^0)*(1,4)(2,5)(3,6), (Z(5)^0)*(1,5,3)(2,6,4), (Z(5)^0)*(1,6,5,4,3,2)
Expand All @@ -341,6 +359,15 @@ gap> Projection( P, 1 );
[ (Z(5)^0)*(), (Z(5)^0)*(1,2,3,4,5,6), (Z(5)^0)*(1,3,5)(2,4,6),
(Z(5)^0)*(1,4)(2,5)(3,6), (Z(5)^0)*(1,5,3)(2,6,4), (Z(5)^0)*(1,6,5,4,3,2),
<zero> of ..., <zero> of ... ]
gap> P3 := SemidirectProductOfAlgebras( Q13, act3, A1 );
<algebra of dimension 5 over Rationals>
gap> Embedding( P3, 1 );
[ v.1, v.2 ] -> [ v.1, v.2 ]
gap> Embedding( P3, 2 );
[ [ [ 0, 1, 2, 3 ], [ 0, 0, 1, 2 ], [ 0, 0, 0, 1 ], [ 0, 0, 0, 0 ] ],
[ [ 0, 0, 1, 4 ], [ 0, 0, 0, 1 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] ],
[ [ 0, 0, 0, 1 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] ] ] ->
[ v.3, v.4, v.5 ]
]]>
</Example>

Expand Down
2 changes: 0 additions & 2 deletions doc/bib.xml
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,6 @@
<title>Higher dimensional algebroids and crossed complexes</title>
<school>University of Wales, Bangor (U.K.)</school>
<year>1986</year>
<type>Ph.D. thesis</type>
</phdthesis></entry>

<entry id="aodabas1"><phdthesis>
Expand All @@ -184,7 +183,6 @@
<title>Crossed Modules of Algebras with GAP</title>
<year>2009</year>
<school>Osmangazi University, Eskisehir</school>
<type>Ph.D. thesis</type>
</phdthesis></entry>

<entry id="porter1"><article>
Expand Down
20 changes: 10 additions & 10 deletions doc/xmod.xml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ gap> B := Subalgebra( A, [m] );;
gap> SetName( B, "A(m)" );
gap> IsIdeal( A, B );
true
gap> act := AlgebraActionByMultipliers( A, B );;
gap> act := AlgebraActionByMultipliers( A, B, A );;
gap> XAB := XModAlgebraByIdeal( A, B );
[ A(m) -> A(l,m) ]
gap> SetName( XAB, "XAB" );
Expand Down Expand Up @@ -153,10 +153,10 @@ IdentityMapping( <algebra of dimension 3 over GF(5)> )
Arg="f" />
<Description>
Let <M>\partial : S\rightarrow R</M> be a surjective algebra homomorphism
whose kernel lise in the annihilator of <M>S</M>.
whose kernel lies in the annihilator of <M>S</M>.
Define the action of <M>R</M> on <M>S</M> by <M>r\cdot s = \widetilde{r}s</M>
where <M>\widetilde{r} \in \partial^{-1}(r)</M>,
as described in section <Ref Oper="AlgebraActionBySurjection"/>
as described in section <Ref Oper="AlgebraActionBySurjection"/>.
Then <M>\mathcal{X}=(\partial : S\rightarrow R)</M>
is a crossed module with the defined action.
<P/>
Expand All @@ -170,10 +170,10 @@ Continuing with the example in that section,
gap> X3 := XModAlgebraBySurjection( nat3 );;
gap> Display( X3 );
Crossed module [..->..] :-
: Source algebra has generators:
Crossed module [A1->Q13] :-
: Source algebra A1 has generators:
[ [ [ 0, 1, 2, 3 ], [ 0, 0, 1, 2 ], [ 0, 0, 0, 1 ], [ 0, 0, 0, 0 ] ] ]
: Range algebra has generators:
: Range algebra Q13 has generators:
[ v.1, v.2 ]
: Boundary homomorphism maps source generators to:
[ v.1 ]
Expand Down Expand Up @@ -374,19 +374,19 @@ true

<Section><Heading>(Pre-)Crossed Module Morphisms</Heading>

Let <M>\mathcal{X} = (\partial:S\rightarrow R)</M>,
Let <M>\mathcal{X} = (\partial:S\rightarrow R)</M> and
<M>\mathcal{X}^{\prime} =
(\partial^{\prime }:S^{\prime }\rightarrow R^{\prime })</M>
be (pre)crossed modules and <M>\theta :S\rightarrow S^{\prime }</M>,
be (pre)crossed modules and let <M>\theta :S\rightarrow S^{\prime }</M>,
<M>\varphi : R\rightarrow R^{\prime }</M> be algebra homomorphisms.
If
Then if
<Display>
\varphi \circ \partial = \partial ^{\prime } \circ \theta,
\qquad
\theta (r\cdot s)=\varphi(r) \cdot \theta (s),
</Display>
for all <M>r\in R</M>, <M>s\in S,</M>
then the pair <M>(\theta ,\varphi )</M> is called a morphism between
the pair <M>(\theta ,\varphi )</M> is called a morphism between
<M>\mathcal{X}</M> and <M>\mathcal{X}^{\prime } </M>
<P/>
The conditions can be thought as the commutativity of the following diagrams:
Expand Down
6 changes: 4 additions & 2 deletions lib/alg2obj.gi
Original file line number Diff line number Diff line change
Expand Up @@ -119,10 +119,12 @@ function( bdy, act )
fi;
else
if not ( B = BB ) then
return false;
return fail;
fi;
fi;

## ???? should there be any tests for condition XModAlg1 here ????

PM := rec();
ObjectifyWithAttributes( PM, NewType( fam, filter ),
Source, B,
Expand Down Expand Up @@ -426,7 +428,7 @@ InstallMethod( XModAlgebraByMultiplierAlgebra,
function( A )
local MA, PM, act, bdy;
MA := MultiplierAlgebra( A );
bdy := MultiplierHomomorphism( A );
bdy := MultiplierHomomorphism( MA );
act := IdentityMapping( MA );
SetIsAlgebraAction( act, true );
SetAlgebraActionType( act, "multiplier" );
Expand Down
14 changes: 2 additions & 12 deletions lib/algebra.gd
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,6 @@ DeclareOperation( "InclusionMappingAlgebra", [ IsAlgebra, IsAlgebra ] );
DeclareOperation( "RestrictionMappingAlgebra",
[ IsAlgebraHomomorphism, IsAlgebra, IsAlgebra ] );

## remove this "not IsBound(...)" hack as soon as the declarations
## have been moved to the main GAP library
if not IsBound( AlgebraHomomorphismByFunction ) then
DeclareOperation( "AlgebraHomomorphismByFunction",
[ IsAlgebra, IsAlgebra, IsFunction ] );
fi;

DeclareOperation( "ModuleHomomorphism",
[ IsAlgebra, IsRing ] );

Expand All @@ -47,20 +40,17 @@ DeclareOperation( "AllIdempotentAlgebraHomomorphisms",

############################## algebra actions ####################

DeclareGlobalFunction( "ElementsLeftActing" );

DeclareProperty( "IsAlgebraAction", IsMapping );

DeclareGlobalFunction( "AlgebraAction" );
DeclareAttribute( "LeftElementOfCartesianProduct", IsAlgebraAction );
DeclareAttribute( "AlgebraActionType", IsAlgebraAction );
DeclareAttribute( "HasZeroModuleProduct", IsAlgebraAction );

DeclareOperation( "AlgebraActionByMultipliers",
[ IsAlgebra, IsAlgebra, IsAlgebra ] );
DeclareOperation( "AlgebraAction2", [ IsAlgebra ] );
DeclareOperation( "AlgebraActionBySurjection", [ IsAlgebraHomomorphism ] );
DeclareOperation( "AlgebraActionByModule", [ IsAlgebra, IsRing ] );
DeclareOperation( "AlgebraActionByMultipliers",
[ IsAlgebra, IsAlgebra, IsAlgebra ] );

DeclareOperation ( "SemidirectProductOfAlgebras",
[ IsAlgebra, IsAlgebraAction, IsAlgebra ] );
Expand Down
Loading

0 comments on commit 8f100b6

Please sign in to comment.