CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Views: 418346
1
2
3 Rings
3
4
5
3.1 Rings: Category and Representations
6
7
3.1-1 IsHomalgRing
8
9
IsHomalgRing( R )  Category
10
Returns: true or false
11
12
The GAP category of homalg rings.
13
14
(It is a subcategory of the GAP categories IsStructureObject and
15
IsHomalgRingOrModule.)
16
17
 Code 
18
DeclareCategory( "IsHomalgRing",
19
 IsStructureObject and
20
 IsRingWithOne and
21
 IsHomalgRingOrModule );
22

23
24
3.1-2 IsPreHomalgRing
25
26
IsPreHomalgRing( R )  Category
27
Returns: true or false
28
29
The GAP category of pre homalg rings.
30
31
(It is a subcategory of the GAP category IsHomalgRing.)
32
These are rings with an incomplete homalgTable. They provide flexibility for
33
developers to support a wider class of rings, as was necessary for the
34
development of the LocalizeRingForHomalg package. They are not suited for
35
direct usage.
36
37
 Code 
38
DeclareCategory( "IsPreHomalgRing",
39
 IsHomalgRing );
40

41
42
3.1-3 IsHomalgRingElement
43
44
IsHomalgRingElement( r )  Category
45
Returns: true or false
46
47
The GAP category of elements of homalg rings which are not GAP4 built-in.
48
49
 Code 
50
DeclareCategory( "IsHomalgRingElement",
51
 IsExtAElement and
52
 IsExtLElement and
53
 IsExtRElement and
54
 IsAdditiveElementWithInverse and
55
 IsMultiplicativeElementWithInverse and
56
 IsAssociativeElement and
57
 IsAdditivelyCommutativeElement and
58
 ## all the above guarantees IsHomalgRingElement => IsRingElement (in GAP4)
59
 IsAttributeStoringRep );
60

61
62
3.1-4 IsHomalgInternalRingRep
63
64
IsHomalgInternalRingRep( R )  Representation
65
Returns: true or false
66
67
The internal representation of homalg rings.
68
69
(It is a representation of the GAP category IsHomalgRing.)
70
71
72
3.2 Rings: Constructors
73
74
This section describes how to construct rings for use with
75
MatricesForHomalg, which exploit the GAP4-built-in abilities to perform the
76
necessary ring operations. By this we also mean necessary matrix operations
77
over such rings. For the purposes of MatricesForHomalg only the ring of
78
integers is properly supported in GAP4. The GAP4 extension packages Gauss
79
and GaussForHomalg extend these built-in abilities to operations with sparse
80
matrices over the ring ℤ / p^n for p prime and n positive.
81
82
If a ring R is supported in MatricesForHomalg any of its residue class rings
83
R/I is supported as well, provided the ideal I of relations admits a finite
84
set of generators as a left resp. right ideal (--> \/ (3.2-3)). This is
85
immediate for commutative noetherian rings.
86
87
3.2-1 HomalgRingOfIntegers
88
89
HomalgRingOfIntegers( )  function
90
Returns: a homalg ring
91
92
HomalgRingOfIntegers( c )  function
93
Returns: a homalg ring
94
95
The no-argument form returns the ring of integers ℤ for homalg.
96
97
The one-argument form accepts an integer c and returns the ring ℤ / c for
98
homalg:
99
100
 c= 0 defaults to ℤ
101
102
 if c is a prime power then the package GaussForHomalg is loaded (if it
103
fails to load an error is issued)
104
105
 otherwise, the residue class ring constructor / (--> \/ (3.2-3)) is
106
invoked
107
108
The operation SetRingProperties is automatically invoked to set the ring
109
properties.
110
111
If for some reason you don't want to use the GaussForHomalg package (maybe
112
because you didn't install it), then use
113
114
HomalgRingOfIntegers( ) / c;
115
116
but note that the computations will then be considerably slower.
117
118
3.2-2 HomalgFieldOfRationals
119
120
HomalgFieldOfRationals( )  function
121
Returns: a homalg ring
122
123
The package GaussForHomalg is loaded and the field of rationals ℚ is
124
returned. If GaussForHomalg fails to load an error is issued.
125
126
The operation SetRingProperties is automatically invoked to set the ring
127
properties.
128
129
3.2-3 \/
130
131
\/( R, ring_rel )  operation
132
Returns: a homalg ring
133
134
This is the homalg constructor for residue class rings R / I, where R is a
135
homalg ring and I=ring_rel is the ideal of relations generated by ring_rel.
136
ring_rel might be:
137
138
 a set of ring relations of a left resp. right ideal
139
140
 a list of ring elements of R
141
142
 a ring element of R
143
144
For noncommutative rings: In the first case the set of ring relations should
145
generate the ideal of relations I as left resp. right ideal, and their
146
involutions should generate I as right resp. left ideal. If ring_rel is not
147
a set of relations, a left set of relations is constructed.
148
149
The operation SetRingProperties is automatically invoked to set the ring
150
properties.
151
152
 Example 
153
gap> ZZ := HomalgRingOfIntegers( );
154
Z
155
gap> Display( ZZ );
156
<An internal ring>
157
gap> Z256 := ZZ / 2^8;
158
Z/( 256 )
159
gap> Display( Z256 );
160
<A residue class ring>
161
gap> Z2 := Z256 / 6;
162
Z/( 256, 6 )
163
gap> BasisOfRows( MatrixOfRelations( Z2 ) );
164
<An unevaluated non-zero 1 x 1 matrix over an internal ring>
165
gap> Z2;
166
Z/( 2 )
167
gap> Display( Z2 );
168
<A residue class ring>
169

170
171
172
3.3 Rings: Properties
173
174
The following properties are declared for homalg rings. Note that (apart
175
from so-called true and immediate methods (--> C.1)) there are no methods
176
installed for ring properties. This means that if the value of the ring
177
property Prop is not set for a homalg ring R, then
178
179
Prop( R );
180
181
will cause an error. One can use the usual GAP4 mechanism to check if the
182
value of the property is set or not
183
184
HasProp( R );
185
186
If you discover that a specific property Prop is missing for a certain
187
homalg ring R you can it add using the usual GAP4 mechanism
188
189
SetProp( R, true );
190
191
or
192
193
SetProp( R, false );
194
195
Be very cautious with setting "missing" properties to homalg objects: If the
196
value you set is mathematically wrong homalg will probably draw wrong
197
conclusions and might return wrong results.
198
199
3.3-1 IsZero
200
201
IsZero( R )  property
202
Returns: true or false
203
204
Check if the ring R is a zero, i.e., if One(R)=Zero(R).
205
206
3.3-2 ContainsAField
207
208
ContainsAField( R )  property
209
Returns: true or false
210
211
R is a ring for homalg.
212
213
3.3-3 IsRationalsForHomalg
214
215
IsRationalsForHomalg( R )  property
216
Returns: true or false
217
218
R is a ring for homalg.
219
220
3.3-4 IsFieldForHomalg
221
222
IsFieldForHomalg( R )  property
223
Returns: true or false
224
225
R is a ring for homalg.
226
227
3.3-5 IsDivisionRingForHomalg
228
229
IsDivisionRingForHomalg( R )  property
230
Returns: true or false
231
232
R is a ring for homalg.
233
234
3.3-6 IsIntegersForHomalg
235
236
IsIntegersForHomalg( R )  property
237
Returns: true or false
238
239
R is a ring for homalg.
240
241
3.3-7 IsResidueClassRingOfTheIntegers
242
243
IsResidueClassRingOfTheIntegers( R )  property
244
Returns: true or false
245
246
R is a ring for homalg.
247
248
3.3-8 IsBezoutRing
249
250
IsBezoutRing( R )  property
251
Returns: true or false
252
253
R is a ring for homalg.
254
255
3.3-9 IsIntegrallyClosedDomain
256
257
IsIntegrallyClosedDomain( R )  property
258
Returns: true or false
259
260
R is a ring for homalg.
261
262
3.3-10 IsUniqueFactorizationDomain
263
264
IsUniqueFactorizationDomain( R )  property
265
Returns: true or false
266
267
R is a ring for homalg.
268
269
3.3-11 IsKaplanskyHermite
270
271
IsKaplanskyHermite( R )  property
272
Returns: true or false
273
274
R is a ring for homalg.
275
276
3.3-12 IsDedekindDomain
277
278
IsDedekindDomain( R )  property
279
Returns: true or false
280
281
R is a ring for homalg.
282
283
3.3-13 IsDiscreteValuationRing
284
285
IsDiscreteValuationRing( R )  property
286
Returns: true or false
287
288
R is a ring for homalg.
289
290
3.3-14 IsFreePolynomialRing
291
292
IsFreePolynomialRing( R )  property
293
Returns: true or false
294
295
R is a ring for homalg.
296
297
3.3-15 IsWeylRing
298
299
IsWeylRing( R )  property
300
Returns: true or false
301
302
R is a ring for homalg.
303
304
3.3-16 IsLocalizedWeylRing
305
306
IsLocalizedWeylRing( R )  property
307
Returns: true or false
308
309
R is a ring for homalg.
310
311
3.3-17 IsGlobalDimensionFinite
312
313
IsGlobalDimensionFinite( R )  property
314
Returns: true or false
315
316
R is a ring for homalg.
317
318
3.3-18 IsLeftGlobalDimensionFinite
319
320
IsLeftGlobalDimensionFinite( R )  property
321
Returns: true or false
322
323
R is a ring for homalg.
324
325
3.3-19 IsRightGlobalDimensionFinite
326
327
IsRightGlobalDimensionFinite( R )  property
328
Returns: true or false
329
330
R is a ring for homalg.
331
332
3.3-20 HasInvariantBasisProperty
333
334
HasInvariantBasisProperty( R )  property
335
Returns: true or false
336
337
R is a ring for homalg.
338
339
3.3-21 HasLeftInvariantBasisProperty
340
341
HasLeftInvariantBasisProperty( R )  property
342
Returns: true or false
343
344
R is a ring for homalg.
345
346
3.3-22 HasRightInvariantBasisProperty
347
348
HasRightInvariantBasisProperty( R )  property
349
Returns: true or false
350
351
R is a ring for homalg.
352
353
3.3-23 IsLocal
354
355
IsLocal( R )  property
356
Returns: true or false
357
358
R is a ring for homalg.
359
360
3.3-24 IsSemiLocalRing
361
362
IsSemiLocalRing( R )  property
363
Returns: true or false
364
365
R is a ring for homalg.
366
367
3.3-25 IsIntegralDomain
368
369
IsIntegralDomain( R )  property
370
Returns: true or false
371
372
R is a ring for homalg.
373
374
3.3-26 IsHereditary
375
376
IsHereditary( R )  property
377
Returns: true or false
378
379
R is a ring for homalg.
380
381
3.3-27 IsLeftHereditary
382
383
IsLeftHereditary( R )  property
384
Returns: true or false
385
386
R is a ring for homalg.
387
388
3.3-28 IsRightHereditary
389
390
IsRightHereditary( R )  property
391
Returns: true or false
392
393
R is a ring for homalg.
394
395
3.3-29 IsHermite
396
397
IsHermite( R )  property
398
Returns: true or false
399
400
R is a ring for homalg.
401
402
3.3-30 IsLeftHermite
403
404
IsLeftHermite( R )  property
405
Returns: true or false
406
407
R is a ring for homalg.
408
409
3.3-31 IsRightHermite
410
411
IsRightHermite( R )  property
412
Returns: true or false
413
414
R is a ring for homalg.
415
416
3.3-32 IsNoetherian
417
418
IsNoetherian( R )  property
419
Returns: true or false
420
421
R is a ring for homalg.
422
423
3.3-33 IsLeftNoetherian
424
425
IsLeftNoetherian( R )  property
426
Returns: true or false
427
428
R is a ring for homalg.
429
430
3.3-34 IsRightNoetherian
431
432
IsRightNoetherian( R )  property
433
Returns: true or false
434
435
R is a ring for homalg.
436
437
3.3-35 IsCohenMacaulay
438
439
IsCohenMacaulay( R )  property
440
Returns: true or false
441
442
R is a ring for homalg.
443
444
3.3-36 IsGorenstein
445
446
IsGorenstein( R )  property
447
Returns: true or false
448
449
R is a ring for homalg.
450
451
3.3-37 IsKoszul
452
453
IsKoszul( R )  property
454
Returns: true or false
455
456
R is a ring for homalg.
457
458
3.3-38 IsArtinian
459
460
IsArtinian( R )  property
461
Returns: true or false
462
463
R is a ring for homalg.
464
465
3.3-39 IsLeftArtinian
466
467
IsLeftArtinian( R )  property
468
Returns: true or false
469
470
R is a ring for homalg.
471
472
3.3-40 IsRightArtinian
473
474
IsRightArtinian( R )  property
475
Returns: true or false
476
477
R is a ring for homalg.
478
479
3.3-41 IsOreDomain
480
481
IsOreDomain( R )  property
482
Returns: true or false
483
484
R is a ring for homalg.
485
486
3.3-42 IsLeftOreDomain
487
488
IsLeftOreDomain( R )  property
489
Returns: true or false
490
491
R is a ring for homalg.
492
493
3.3-43 IsRightOreDomain
494
495
IsRightOreDomain( R )  property
496
Returns: true or false
497
498
R is a ring for homalg.
499
500
3.3-44 IsPrincipalIdealRing
501
502
IsPrincipalIdealRing( R )  property
503
Returns: true or false
504
505
R is a ring for homalg.
506
507
3.3-45 IsLeftPrincipalIdealRing
508
509
IsLeftPrincipalIdealRing( R )  property
510
Returns: true or false
511
512
R is a ring for homalg.
513
514
3.3-46 IsRightPrincipalIdealRing
515
516
IsRightPrincipalIdealRing( R )  property
517
Returns: true or false
518
519
R is a ring for homalg.
520
521
3.3-47 IsRegular
522
523
IsRegular( R )  property
524
Returns: true or false
525
526
R is a ring for homalg.
527
528
3.3-48 IsFiniteFreePresentationRing
529
530
IsFiniteFreePresentationRing( R )  property
531
Returns: true or false
532
533
R is a ring for homalg.
534
535
3.3-49 IsLeftFiniteFreePresentationRing
536
537
IsLeftFiniteFreePresentationRing( R )  property
538
Returns: true or false
539
540
R is a ring for homalg.
541
542
3.3-50 IsRightFiniteFreePresentationRing
543
544
IsRightFiniteFreePresentationRing( R )  property
545
Returns: true or false
546
547
R is a ring for homalg.
548
549
3.3-51 IsSimpleRing
550
551
IsSimpleRing( R )  property
552
Returns: true or false
553
554
R is a ring for homalg.
555
556
3.3-52 IsSemiSimpleRing
557
558
IsSemiSimpleRing( R )  property
559
Returns: true or false
560
561
R is a ring for homalg.
562
563
3.3-53 IsSuperCommutative
564
565
IsSuperCommutative( R )  property
566
Returns: true or false
567
568
R is a ring for homalg.
569
570
3.3-54 BasisAlgorithmRespectsPrincipalIdeals
571
572
BasisAlgorithmRespectsPrincipalIdeals( R )  property
573
Returns: true or false
574
575
R is a ring for homalg.
576
577
3.3-55 AreUnitsCentral
578
579
AreUnitsCentral( R )  property
580
Returns: true or false
581
582
R is a ring for homalg.
583
584
3.3-56 IsMinusOne
585
586
IsMinusOne( r )  property
587
Returns: true or false
588
589
Check if the ring element r is the additive inverse of one.
590
591
3.3-57 IsMonic
592
593
IsMonic( r )  property
594
Returns: true or false
595
596
Check if the homalg ring element r is monic.
597
598
3.3-58 IsMonicUptoUnit
599
600
IsMonicUptoUnit( r )  property
601
Returns: true or false
602
603
Check if leading coefficient of the homalg ring element r is a unit.
604
605
3.3-59 IsLeftRegular
606
607
IsLeftRegular( r )  property
608
Returns: true or false
609
610
Check if the homalg ring element r is left regular.
611
612
3.3-60 IsRightRegular
613
614
IsRightRegular( r )  property
615
Returns: true or false
616
617
Check if the homalg ring element r is right regular.
618
619
3.3-61 IsRegular
620
621
IsRegular( r )  property
622
Returns: true or false
623
624
Check if the homalg ring element r is regular, i.e. left and right regular.
625
626
627
3.4 Rings: Attributes
628
629
3.4-1 Inverse
630
631
Inverse( r )  attribute
632
Returns: a homalg ring element or fail
633
634
The inverse of the homalg ring element r.
635
636
 Example 
637
gap> ZZ := HomalgRingOfIntegers( );;
638
gap> R := ZZ / 2^8;
639
Z/( 256 )
640
gap> r := (1/3*One(R)+1/5)+3/7;
641
|[ 157 ]|
642
gap> 1 / r; ## = r^-1;
643
|[ 181 ]|
644
gap> s := (1/3*One(R)+2/5)+3/7;
645
|[ 106 ]|
646
gap> 1 / s;
647
fail
648

649
650
3.4-2 homalgTable
651
652
homalgTable( R )  attribute
653
Returns: a homalg table
654
655
The homalg table of R is a ring dictionary, i.e. the translator between
656
homalg and the (specific implementation of the) ring.
657
658
Every homalg ring has a homalg table.
659
660
3.4-3 RingElementConstructor
661
662
RingElementConstructor( R )  attribute
663
Returns: a function
664
665
The constructor of ring elements in the homalg ring R.
666
667
3.4-4 TypeOfHomalgMatrix
668
669
TypeOfHomalgMatrix( R )  attribute
670
Returns: a type
671
672
The GAP4-type of homalg matrices over the homalg ring R.
673
674
3.4-5 ConstructorForHomalgMatrices
675
676
ConstructorForHomalgMatrices( R )  attribute
677
Returns: a type
678
679
The constructor for homalg matrices over the homalg ring R.
680
681
3.4-6 Zero
682
683
Zero( R )  attribute
684
Returns: a homalg ring element
685
686
The zero of the homalg ring R.
687
688
3.4-7 One
689
690
One( R )  attribute
691
Returns: a homalg ring element
692
693
The one of the homalg ring R.
694
695
3.4-8 MinusOne
696
697
MinusOne( R )  attribute
698
Returns: a homalg ring element
699
700
The minus one of the homalg ring R.
701
702
3.4-9 ProductOfIndeterminates
703
704
ProductOfIndeterminates( R )  attribute
705
Returns: a homalg ring element
706
707
The product of indeterminates of the homalg ring R.
708
709
3.4-10 RationalParameters
710
711
RationalParameters( R )  attribute
712
Returns: a list of homalg ring elements
713
714
The list of rational parameters of the homalg ring R.
715
716
3.4-11 IndeterminatesOfPolynomialRing
717
718
IndeterminatesOfPolynomialRing( R )  attribute
719
Returns: a list of homalg ring elements
720
721
The list of indeterminates of the homalg polynomial ring R.
722
723
3.4-12 RelativeIndeterminatesOfPolynomialRing
724
725
RelativeIndeterminatesOfPolynomialRing( R )  attribute
726
Returns: a list of homalg ring elements
727
728
The list of relative indeterminates of the homalg polynomial ring R.
729
730
3.4-13 IndeterminateCoordinatesOfRingOfDerivations
731
732
IndeterminateCoordinatesOfRingOfDerivations( R )  attribute
733
Returns: a list of homalg ring elements
734
735
The list of indeterminate coordinates of the homalg Weyl ring R.
736
737
3.4-14 RelativeIndeterminateCoordinatesOfRingOfDerivations
738
739
RelativeIndeterminateCoordinatesOfRingOfDerivations( R )  attribute
740
Returns: a list of homalg ring elements
741
742
The list of relative indeterminate coordinates of the homalg Weyl ring R.
743
744
3.4-15 IndeterminateDerivationsOfRingOfDerivations
745
746
IndeterminateDerivationsOfRingOfDerivations( R )  attribute
747
Returns: a list of homalg ring elements
748
749
The list of indeterminate derivations of the homalg Weyl ring R.
750
751
3.4-16 RelativeIndeterminateDerivationsOfRingOfDerivations
752
753
RelativeIndeterminateDerivationsOfRingOfDerivations( R )  attribute
754
Returns: a list of homalg ring elements
755
756
The list of relative indeterminate derivations of the homalg Weyl ring R.
757
758
3.4-17 IndeterminateAntiCommutingVariablesOfExteriorRing
759
760
IndeterminateAntiCommutingVariablesOfExteriorRing( R )  attribute
761
Returns: a list of homalg ring elements
762
763
The list of anti-commuting indeterminates of the homalg exterior ring R.
764
765
3.4-18 RelativeIndeterminateAntiCommutingVariablesOfExteriorRing
766
767
RelativeIndeterminateAntiCommutingVariablesOfExteriorRing( R )  attribute
768
Returns: a list of homalg ring elements
769
770
The list of anti-commuting relative indeterminates of the homalg exterior
771
ring R.
772
773
3.4-19 IndeterminatesOfExteriorRing
774
775
IndeterminatesOfExteriorRing( R )  attribute
776
Returns: a list of homalg ring elements
777
778
The list of all indeterminates (commuting and anti-commuting) of the homalg
779
exterior ring R.
780
781
3.4-20 CoefficientsRing
782
783
CoefficientsRing( R )  attribute
784
Returns: a homalg ring
785
786
The ring of coefficients of the homalg ring R.
787
788
3.4-21 KrullDimension
789
790
KrullDimension( R )  attribute
791
Returns: a non-negative integer
792
793
The Krull dimension of the commutative homalg ring R.
794
795
3.4-22 LeftGlobalDimension
796
797
LeftGlobalDimension( R )  attribute
798
Returns: a non-negative integer
799
800
The left global dimension of the homalg ring R.
801
802
3.4-23 RightGlobalDimension
803
804
RightGlobalDimension( R )  attribute
805
Returns: a non-negative integer
806
807
The right global dimension of the homalg ring R.
808
809
3.4-24 GlobalDimension
810
811
GlobalDimension( R )  attribute
812
Returns: a non-negative integer
813
814
The global dimension of the homalg ring R. The global dimension is defined,
815
only if the left and right global dimensions coincide.
816
817
3.4-25 GeneralLinearRank
818
819
GeneralLinearRank( R )  attribute
820
Returns: a non-negative integer
821
822
The general linear rank of the homalg ring R ([MR01], 11.1.14).
823
824
3.4-26 ElementaryRank
825
826
ElementaryRank( R )  attribute
827
Returns: a non-negative integer
828
829
The elementary rank of the homalg ring R ([MR01], 11.3.10).
830
831
3.4-27 StableRank
832
833
StableRank( R )  attribute
834
Returns: a non-negative integer
835
836
The stable rank of the homalg ring R ([MR01], 11.3.4).
837
838
3.4-28 AssociatedGradedRing
839
840
AssociatedGradedRing( R )  attribute
841
Returns: a homalg ring
842
843
The graded ring associated to the filtered ring R.
844
845
846
3.5 Rings: Operations and Functions
847
848
849