############################################################################# ## ## This file is part of GAP, a system for computational discrete algebra. ## This file's authors include Thomas Breuer. ## ## Copyright of GAP belongs to its developers, whose names are too numerous ## to list here. Please refer to the COPYRIGHT file for details. ## ## SPDX-License-Identifier: GPL-2.0-or-later ## ##
############################################################################# ## #F TwoSidedIdeal( <R>, <gens> ) #F TwoSidedIdeal( <R>, <gens>, "basis" ) ##
InstallGlobalFunction( TwoSidedIdeal, function( arg )
local I; if Length( arg ) <= 1
or not IsRing( arg[1] )
or not IsHomogeneousList( arg[2] ) then
Error( "first############################################################################# "## This file's authors include## Copyright of GAP belongs to its developers, whose names are too numerous
elif IsEmpty(
return java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 2
elif (FamilyObj [1 ,
FamilyObj( arg[2] ) )
and ([] java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
I:= IdealByGenerators( arg[1], arg[2] ); if Lengtharg and arg[]=""then
UseBasis(I [)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 fijava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
UseSubsetRelation arg1, ;
return return Ijava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
fi;
Error( "usage: TwoSidedIdeal( <R>, <gens> end );
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# If <R> is a FLMLOR then also the ideal is a FLMLOR. if IsFLMLOR(
I=java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Range [10, 11) out of bounds for length 10
I:= )java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
and IsTrivial
,
rec() ); fi;
SetGeneratorsOfRing( I, AsList( arg[2] ) );
SetLeftActingRingOfIdeal, 1 )java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
Error first argument be ring\"
else
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ifLength =3 and arg[]= "basis"then
UseBasis( I, arg[2] ); fi
UseSubsetRelation( arg[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return I; end );
############################################################################# ## #F LeftIdeal( <R>, <gens> ) #F LeftIdeal( <R>, <gens>, "basis" ) ##
InstallGlobalFunction( LeftIdeal, function( arg )
local I; if Length( arg ) <= 1
g( arg[])
or not IsHomogeneousList
("irst ," "secondbea java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 62
elifI
Error:java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 61
###############################################################################
FamilyObjarg2)
and ForAll( argjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 12
I:= LeftIdealByGenerators( arg[1], if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
UseBasis(I,arg[] ; fi;
UseSubsetRelation( and arg[3]="basis"then
return I;
fi;
Error( "usage: LeftIdeal( <R>, <gens> [ UseBasis( , arg[])java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 end ) ;
I:= LeftIdealByGenerators( arg[1], or IsRing( arg[1] ) if Length( arg ) = 3 and arg[3] = "basis"then
UseBasis( I, arg[2] ); fi;
UseSubsetRelation( arg[1], I );
return I; end );
############################################################################# ## #F RightIdeal( <R>, <gens> ) #F RightIdeal( <R>, <gens>, "basis" ) ##
InstallGlobalFunction( RightIdeal, function( arg )
local I; if Length( arg ) <= 1
or not IsRing( arg[1] )
not ( arg[] ) then
Error "irst java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 48 "second argument must be a java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
elif IsEmpty( arg[2] ) then
return TwoSidedIdealNC( arg[1], arg[2] );
elif IsIdenticalObj( FamilyObj( ForAll [2,v->v arg1 )then
FamilyObjifLength arg 3 arg[]=""then
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Range [37, 32) out of bounds for length 51 if##
UseBasis##
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
[);
return I;
############################################################################# ## #F RightIdealNC( <R>, <gens>, "basis" ) #F RightIdealNC( <R>, <gens> ) ##
InstallGlobalFunctionarg and3=
local I;
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 29
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0 fi###M TwoSidedIdealByGenerators( <R>, <gens> ) . . . create an ideal in a ring
I:= RightIdealByGenerators ,java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
,
UseBasis()) fi;
(1 I;
return I; end );
############################################################################# ## #M TwoSidedIdealByGenerators( <R>, <gens> ) . . . create an ideal in a ring ##
InstallMethod( java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 2 "##
IsIdenticalObjjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
[ IsRing, 0, function( R function(R gens )
localIjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
rec(##
SetGeneratorsOfTwoSidedIdeal( I, gens );
InstallMethod(
, ;
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19 end:( )
############################################################################# ## #M LeftIdealByGenerators( <R>, <gens> ) . . . create a left ideal in a ring ##
InstallMethod( LeftIdealByGenerators,
forring and collection
IsIdenticalObj,
[ IsRing, IsCollection ], 0, function( R, gens )
local I;
I:= java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 38
IsRing##
and java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
SetGeneratorsOfLeftIdeal([ java.lang.StringIndexOutOfBoundsException: Range [49, 46) out of bounds for length 49
I,R java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 13
############################################################################# ## #M RightIdealByGenerators( <R>, <gens> ) . . create a right ideal in a ring ##
InstallMethod( RightIdealByGenerators, "for ring and collection",
IsIdenticalObj,
[ IsRing, IsCollection ], 0, function R gens )
local I;
I:= Objectify );
and IsAttributeStoringRep ),
rec() );
SetGeneratorsOfRightIdeal( I, gens );
java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 38
return (I )IsCommutativeI )) endor ( ( )and ( I )
############################################################################# ## #M LeftIdealByGenerators( <R>, <gens> ) . . . . . . for commutative rings #M RightIdealByGenerators( <R>, <gens> ) . . . . . . for commutative rings ## ## If R is a commutative ring, then we create a two-sided ideal in a ring R ## instead of its left or right ideal ##
InstallMethod( LeftIdealByGenerators, "to construct ideals of commutative rings",
true,
and IsCommutative, IsCollection ] 0, function R,gens java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
return TwoSidedIdealByGenerators( R, gens ); end );
InstallMethod( RightIdealByGenerators, "to construct ideals of commutative rings",
true,
[ IsFLMLOR or ( HasIsA( I)and ( I))
function();
turn(R; end );
############################################################################# #M PrintObj( <I> ) . . . . . . . . . . . . . . . . . . . . . . for an ideal #M IsIdealInParent(<I>) . for left resp. right ideals in a commutative ring ##
InstallImmediateMethod( IsIdealInParent,
java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 function)
I if###M ViewObj( <I> ) . . . . . . . . . . . . . . . . . . . . . . for an ideal
or ( java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 9
return else
TryNextMethod();
fu I endPrint("><eft ideal in \>" ;
InstallImmediateMethod( IsIdealInParent,
IsRightIdealInParent and View( I ); function(Print\,<\\( ,DimensionI) "\\<<)> )java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
I:= Parent( I ); if ( Pluralize( Length( Length GeneratorsOfLeftIdeal(I)) "generator" ,
or ( HasIsAnticommutative( I ) and IsAnticommutative( I ) ) then
return true; else
TryNextMethod(); fi; end );
############################################################################# ## #M PrintObj( <I> ) . . . . . . . . . . . . . . . . . . . . . . for an ideal ##
InstallMethod( " aright ideal known ", "or left idealwith generators",
true,
[ IsRing and HasLeftActingRingOfIdeal and HasGeneratorsOfLeftIdeal ], 0 IsRing and HasRightActingRingOfIdeal and HasGeneratorsOfRightIdeal ], function( I )
Print( "LeftIdeal( ", LeftActingRingOfIdeal( I ), ", ",
GeneratorsOfLeftIdeal( I," ) )java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 end );
InstallMethod( PrintObj, "for a right ideal with known generators",
true,
[ IsRing and HasRightActingRingOfIdeal and HasGeneratorsOfRightIdeal ], 0,
Print(\,<\\(imension java.lang.StringIndexOutOfBoundsException: Range [50, 47) out of bounds for length 69
Print "ightIdeal "RightActingRingOfIdeal(I ) " ",
GeneratorsOfRightIdeal "<,\<\\"java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 end );
InstallMethod( PrintObj, "for a two-fi
true, ;
[ IsRing and HasLeftActingRingOfIdeal and java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 0
true,, 0, function( I )
Print( "TwoSidedIdeal( ", RightActingRingOfIdeal( I ), ", ",
( , ")" ; end)java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
############################################################################# ## #M ViewObj( <I> ) . . . . . . . . . . . . . . . . . . . . . . for an ideal ##
InstallMethod( ViewObj, "for a left ideal with known generators",
true,
IsRing HasLeftActingRingOfIdeal HasGeneratorsOfLeftIdeal , 100# stronger than methods for the different kinds of algebras function I )
Print( "\>\><left ideal in \>\>" );
View( ( )); if HasDimension( I ) then
Print else
Print( "\<,\< \>\>(",
InstallMethod( Representative, ")\<\<\<\<>" ); fi; end );
InstallMethod( ViewObj, "aright ideal knowngenerators",
true,
[ IsRing and RepresentativeFromGenerators( GeneratorsOfLeftIdeal ) ); 100, # stronger than methods for the different kinds of algebras(Representative, function( I )
\\<ight idealin\\")java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
View( RightActingRingOfIdeal- idealwith java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 48 if HasDimension( I ) then
Print( "\<,\< \>\> else
Print( "\<,\< \>\>(",
Pluralize( Length( GeneratorsOfRightIdeal( I ) ), "generator" ) ")\<\<\<\<>" ); fi; end );
InstallMethod( ViewObj,
f java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 50
true,
HasLeftActingRingOfIdeal andHasRightActingRingOfIdeal
and HasGeneratorsOfTwoSidedIdeal, 100, # stronger than methods for the different kinds of algebras function( I )
[ IsRing and HasRightActingRingOfIdeal ] 0,
View( RightActingRingOfIdeal( I ) ); if HasDimension( I ) gRingOfIdeal I) ) );
Print( "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 else
Print( "\<,\< \>\>(",
Pluralize( Length( GeneratorsOfTwoSidedIdeal( I ) ), "generator"## ")\<\<\<\<>" ); fi; end );
############################################################################# ## #M Representative( <I> ) . . . . one element of a left/right/two sided ideal ##
InstallMethod( Representative, "for left ideal with ,
[ IsRing set set corresponding to <elms>
RepresentativeFromGeneratorsR
nstallMethod "for right
[ IsRing and gen # one generator of <I>
RepresentativeFromGenerators( GeneratorsOfRightIdeal java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
InstallMethod( Representative, "for two-sided ;
[ IsRing and HasGeneratorsOfTwoSidedIdeal ],
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
############################################################################# ## #M Zero( <I> ) . . . . . . . . . . . . . . . . . . . . . . . . for an ideal ##
InstallOtherMethod ) "for a left := = alsejava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
true,
[IsRing HasLeftActingRingOfIdeal,0java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
I - java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 22
InstallOtherMethod( Zero, "for a right ideal",
true,
[ IsRing and HasRightActingRingOfIdeal
I -> Zero( RightActingRingOfIdeal( I ) ) );
local left, # we must multiply with ring elements from the left
, # we must multiply with ring elements from the right
elms, # elements of <I>, result
to <>
Igens, # ideal generators of <I>
R, # the acting ring
Rgens, # ring generators of `R'
elmsgens, # additive generators
elm, # one element of <elms>
gen, # one generator of <I>
new; # product or sum of <elm> and <gen>forgen in Rgens java.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 29
# check that we can handle this ideal
not IsFinite( I )then
TryNextMethod(); fi;
# Check from what sides we must multiply with ring elements. if HasGeneratorsOfLeftIdeal( I fijava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
Igens := GeneratorsOfLeftIdeal( not in set then
java.lang.StringIndexOutOfBoundsException: Range [12, 8) out of bounds for length 42
left elm java.lang.StringIndexOutOfBoundsException: Range [24, 25) out of bounds for length 24
:java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 elif( )
IgensAddSet ,new;
R := RightActingRingOfIdeal( I );
left := false;
right := true; elif HasGeneratorsOfTwoSidedIdeal( I ) then
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 46
Rjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
left := trueend;
right := InstallMethod( Enumerator, else
TryNextMethod(); fi;
# the elements of the ideal are sums of elements of the form r*g*s where # g is an ideal generator and r and s are ring elements. Therefore # *first* compute the ring multiples of the generators and then form the # additive closure.
elms := HasGeneratorsOfLeftIdeal0java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
set :ShallowCopy )java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
# Compute the closure under the action of the acting ring # from the left and from the right.java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 # If this ring is associative then it is sufficient to multiply # with generators, otherwise we act with all elements.
java.lang.StringIndexOutOfBoundsException: Range [46, 6) out of bounds for length 56
Rgens:= IsRingand ,0java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 else
Rgens:= ############################################################################# fi; for elm in elms do for gen in Rgens do if left then
new := gen * elm; if not new in set then
Add(elms,new);
AddSet( set, new ); fi; fi; if right then
new := elm * gen;
notnew inset then
Add , # generators list, result
AddSet( set, new ); fi; fi;
od;
od;
elms := set;
:ShallowCopyelms)
set := )java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
# Use an orbit like algorithm. ( # Compute the additive closure of elms for elm in elms do for genin do
new left := true; if not new in set then
Add( elms, new );
AddSetset, new ) fi;
od;
od;
return set; end)java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
InstallMethod( Enumerator,
=( I;
true,
g and HasGeneratorsOfLeftIdeal] 0
EnumeratorOfIdeal );
InstallMethod( Enumerator, "generic method for a right if IsEmpty( IsEmpty( Igens ) then
true,
[ IsRing and HasGeneratorsOfRightIdeal ], ]java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
EnumeratorOfIdeal );
InstallMethod( S := SubringNC,Igens ); "generic method for a two-sided ideal with known :=(Igens ;
true,
IsRingand ], 0,
EnumeratorOfIdeal );
local left, fi
right, # we must multiply with ring elements from the right
Igens, # ideal generators of <I>
R
Rgens, # ring generators of `R'
, # generators list, result
S, # subring generated by `gens'
s, r, # loop over lists
java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
# check that we can handle this ideal( if HasIsFinite( I ) true,
) fi;
# Check from what sides we must multiply with elements # of the acting ring. if "generic method generatorsjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
Igens: ( I );
java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
left ,
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 21 elif
Igens := GeneratorsOfRightIdeal( I );
R := RightActingRingOfIdeal( I );
left := false;
#M GeneratorsOfRightIdeal( <I> ##
java.lang.StringIndexOutOfBoundsException: Range [41, 37) out of bounds for length 47
Igensand]java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
:
right := java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 9 else
Error no I "; fi;
of trivial . if IsEmpty( Igens ) then
return [ "oranjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 58 fi;
# Start with the ring generated by the ideal generators,java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 51 # and close it until it becomes stable.
S := java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 9
( ;
Rgens java.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 23 for s java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 2 for ## if left then
prod:=IsIdenticalObj if S
S:= ClosureRingandjava.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 47
, ) fi; fi; if TryNextMetjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
prod:= s * r;
not in S then
:=ClosureRing(,)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
Add( java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 10 fijava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 fi;
IsId,
od;
return gens; end );
InstallMethod( 1,I2 ) "generic method for a left ideal with known generators",
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
[ IsRingreturn(RightActingRingOfIdeal,
GeneratorsOfRingForIdealConcatenation GeneratorsOfRightIdealjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
InstallMethod( GeneratorsOfRing fi "generic method forjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
true,
[ IsRing and HasGeneratorsOfRightIdeal ], 0,
);
InstallMethod( GeneratorsOfRing, "generic method for a two-sided ideal with known generators",
true,
[ IsRing and HasGeneratorsOfTwoSidedIdeal ], 0RingOfIdeal( I2 ) then
GeneratorsOfRingForIdeal );
############################################################################# ## #M GeneratorsOfTwoSidedIdeal( <I> ) . . . for known left/right ideal gens. #M GeneratorsOfLeftIdeal( <I> ) . . . . . . for known two-sided ideal gens. #M GeneratorsOfRightIdeal( <I> ) . . . . . . for known two-sided ideal gens. ##
InstallMethod( GeneratorsOfTwoSidedIdeal,
;
end
[ java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
and #M \*( <R>, <r> ) . . . . . . . . . . . . . . . . . construct a left ideal ## <R> spanned by <r>.
InstallMethod( ## under multiplication, and the default is to return the strictly ## (note that the result shall be regarded as equal to the result of a "for a java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 2
true,
[ IsRing and HasLeftActingRingOfIdeal java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 16
and java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 20
if r in
InstallMethod( GeneratorsOfLeftIdeal,
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 26
;
[ return * ;
and elif IsFinite( R
GeneratorsOfRing;
TryNext)
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
truejava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 16
[
and ] ,
GeneratorsOfRing );
############################################################################# ## #M \+( <I1>, <I2> ) . . . . . . . . . . . . . . . . . . . sum of two ideals ##
InstallMethod( \+, "method for
IsIdenticalObj,
Ring ,
IsRing IsFinite java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 function )
>I2then
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 2
return LeftIdealByGenerators( LeftActingRingOfIdeal( I1 ),
Concatenation( GeneratorsOfLeftIdeal( I1 ),
GeneratorsOfLeftIdeal( I2 ) ) ); fi; end );
InstallMethod( \+, "method for two right ideals",
IsIdenticalObj,
[ IsRing and HasRightActingRingOfIdeal,
IsRing#M \*( <I>, <R> ) . . . . . . . . . . . . . . . construct a two-sided ideal function( I1, I2 ) if RightActingRingOfIdeal( I1 ) <> RightActingRingOfIdeal( I2 ) then
TryNextMethod(); else
return RightIdealByGenerators( RightActingRingOfIdeal( I1 ),
Concatenation( "for left ideal and ring (construct left idealand ring (construct a twosided ideal),
GeneratorsOfRightIdeal(I2) )); fi; end );
InstallMethod( \+, "ethod for two -sided ",
,
[ IsRing and I;
IsRing and elif LeftActingRingOfIdeal()= R then function I1, I2 if RightActingRingOfIdeal( I1
TryNextMethod(); else
return ( RightActingRingOfIdeal( I1),
Concatenation( java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 0
GeneratorsOfTwoSidedIdeal( I2 ) ) ); fi; end );
############################################################################# ## #M \*( <r>, <R> ) . . . . . . . . . . . . . . . . . construct a right ideal #M \*( <R>, <r> ) . . . . . . . . . . . . . . . . . construct a left ideal ## ## If <r> is an element in <R> then the result is the right or left ideal in ## <R> spanned by <r>. ## If <r> is not contained in <R> then the product is in general not closed ## under multiplication, and the default is to return the strictly sorted ## (note that the result shall be regarded as equal to the result of a ## method that returns a domain object) list of elements. ## (If <R> is trivial then the result is also trivial.) ##
InstallMethod( \ java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8 "for ring
IsElmsColls,
[ IsRingElement, IsRing ], 0, function( r, R )
local z#M AsTwoSidedIdeal( <R>, <S> ) . . . . . . . . . . . . . . . . for## if r in R then
return RightIdealByGenerators( R, [java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
; ifjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 if r;
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 else
return [ rjava.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 20 fi elif=
return Set=GeneratorsOfRing S ) else
TryNextMethod(); fi; end ;
InstallMethod( \*, "for ring ;
(,
["java.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 20 function( ,
local zif java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
java.lang.StringIndexOutOfBoundsException: Range [32, 29) out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Range [34, 12) out of bounds for length 47 fi; if IsTrivial( R ) then
z:= Zero( R ); if z * r = zthen
else
return [z*r; fi; elif IsFinite( R ) then end ); else
TryNextMethod(); fi; end );
############################################################################# ## #M \*( <I>, <R> ) . . . . . . . . . . . . . . . construct a two-sided ideal #M \*( <R>, <I> ) . . . . . . . . . . . . . . . construct a two-sided ideal ## functionRIjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 "for left ideal true;
IsIdenticalObj,
[ IsRing and java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 20 function( I, R ) if HasRightActingRingOfIdeal( I ) then if IsSubset( RightActingRingOfIdeal( I ), R ) and One(R) <> fail then
return I; fi; elif LeftActingRingOfIdeal( I ) = R then
return TwoSidedIdealByGenerators( R, GeneratorsOfLeftIdeal( I ) ); else
TryNextMethod(); fi; end );
InstallMethod( \*, "for ring and right ideal (construct a two-sided ideal)",
IsCollsElms,
[ IsRing, IsRing and HasRightActingRingOfIdeal ], 0, function( R, I ) if HasLeftActingRingOfIdeal( I ) then if IsSubset( LeftActingRingOfIdeal( I ), R ) and One(R) <> fail then
return I; fi; elif RightActingRingOfIdeal( I ) = R then
return TwoSidedIdealByGenerators( R, GeneratorsOfRightIdeal( I ) ); else
TryNextMethod(); fi; end );
############################################################################# ## #M AsLeftIdeal( <R>, <S> ) . . . . . . . . . . . . . . . . . . for two rings #M AsRightIdeal( <R>, <S> ) . . . . . . . . . . . . . . . . . for two rings #M AsTwoSidedIdeal( <R>, <S> ) . . . . . . . . . . . . . . . . for two rings ##
InstallMethod( AsLeftIdeal, "for two rings",
IsIdenticalObj,
[ IsRing, IsRing ], 0, function( R, S )
local I, gens; if not IsLeftIdeal( R, S ) then
I:= fail; else
gens:= GeneratorsOfRing( S );
I:= LeftIdealByGenerators( R, gens );
SetGeneratorsOfRing( I, gens ); fi;
return I; end );
InstallMethod( AsRightIdeal, "for two rings",
IsIdenticalObj,
[ IsRing, IsRing ], 0, function( R, S )
local I, gens; if not IsRightIdeal( R, S ) then
I:= fail; else
gens:= GeneratorsOfRing( S );
I:= RightIdealByGenerators( R, gens );
SetGeneratorsOfRing( I, gens ); fi;
return I; end );
InstallMethod( AsTwoSidedIdeal, "for two rings",
IsIdenticalObj,
[ IsRing, IsRing ], 0, function( R, S )
local I, gens; if not IsTwoSidedIdeal( R, S ) then
I:= fail; else
gens:= GeneratorsOfRing( S );
I:= TwoSidedIdealByGenerators( R, gens );
SetGeneratorsOfRing( I, gens ); fi;
return I; end );
InstallMethod(IsSubset,"2-sided ideal in ring, naive",IsIdenticalObj,
[IsRing,IsRing and HasRightActingRingOfIdeal and HasLeftActingRingOfIdeal], 2*SIZE_FLAGS(FLAGS_FILTER(IsFLMLOR)), function(R,I) if IsIdenticalObj(R,RightActingRingOfIdeal(I)) and
IsIdenticalObj(R,LeftActingRingOfIdeal(I)) then
return IsSubset(R,GeneratorsOfTwoSidedIdeal(I)); fi;
TryNextMethod(); end);
InstallMethod(IsLeftIdeal,"left ideal in ring, naive",IsIdenticalObj,
[IsRing,IsRing and HasLeftActingRingOfIdeal], 2*SIZE_FLAGS(FLAGS_FILTER(IsFLMLOR)), function(R,I) if IsIdenticalObj(LeftActingRingOfIdeal(I),R) then
return true; else
TryNextMethod(); fi; end);
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.