GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
############################################################################# ## #W util.gi The XMODALG package Zekeriya Arvasi #W & Alper Odabas ## version 1.12, 14/11/2015 ## #Y Copyright (C) 2014-2015, Zekeriya Arvasi & Alper Odabas, ## ############################################################################# ## #M InclusionMappingAlgebra( <G>, <H> ) ## InstallMethod( InclusionMappingAlgebra, "generic method for subalgebra", IsIdenticalObj, [ IsAlgebra, IsAlgebra ], 0, function( G, H ) local genH, inc, ok; if not IsSubset( G, H ) then Error( "usage: InclusionMappingAlgebra( G, H ); with H <= G" ); fi; genH := GeneratorsOfAlgebra( H ); inc := AlgebraHomomorphismByImagesNC( H, G, genH, genH ); ### IsInjective �al��m�yor NC ile �retilmi� morfizmlerde SetIsInjective(inc,true ); return inc; end ); ############################################################################# ## #M RestrictionMappingAlgebra( <hom>, <src>, <rng> ) ## InstallMethod( RestrictionMappingAlgebra, "generic method for group hom", true, [ IsAlgebraHomomorphism, IsAlgebra, IsAlgebra ], 0, function( hom, src, rng ) local res, gens, ims, r; if not IsSubset( Source( hom ), src ) then return fail; fi; if not IsSubset( Range( hom ), rng ) then return fail; fi; res := RestrictedMapping( hom, src ); gens := GeneratorsOfAlgebra( src ); ims := List( gens, g -> Image( res, g ) ); for r in ims do if not (r in rng ) then return fail; fi; od; return AlgebraHomomorphismByImages( src, rng, gens, ims ); end ); ############################################################################# ## #M RestrictedMapping(<hom>,<U>) ## InstallMethod(RestrictedMapping,"create new GHBI", CollFamSourceEqFamElms,[IsAlgebraHomomorphism,IsAlgebra],0, function(hom,U) local rest,gens,imgs,imgp; if ForAll(GeneratorsOfAlgebra(Source(hom)),i->i in U) then return hom; fi; gens:=GeneratorsOfAlgebra(U); imgs:=List(gens,i->ImageElm(hom,i)); if HasImagesSource(hom) then imgp:=ImagesSource(hom); else imgp:=Subalgebra(Range(hom),imgs); fi; rest:=AlgebraHomomorphismByImagesNC(U,imgp,gens,imgs); if HasIsInjective(hom) and IsInjective(hom) then SetIsInjective(rest,true); fi; if HasIsTotal(hom) and IsTotal(hom) then SetIsTotal(rest,true); fi; return rest; end);