Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove unused global function ElementsLeftActing #74

Merged
merged 2 commits into from
May 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading