This file is indexed.

/usr/share/singular/LIB/gkdim.lib is in singular-data 4.0.3+ds-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
//////////////////////////////////////////////////////////////////////////////
version="version gkdim.lib 4.0.0.0 Jun_2013 "; // $Id: 9bd3587a6b567e4bb5339de91ac3afe94d3aeb31 $
category="Noncommutative";
info="
LIBRARY: gkdim.lib     Procedures for calculating the Gelfand-Kirillov dimension
AUTHORS: Lobillo, F.J.,     jlobillo@ugr.es
@*         Rabelo, C.,        crabelo@ugr.es

Support: 'Metodos algebraicos y efectivos en grupos cuanticos', BFM2001-3141, MCYT, Jose Gomez-Torrecillas (Main researcher).

NOTE: The built-in command @code{dim}, executed for a module in @plural, computes the Gelfand-Kirillov dimension.

PROCEDURES:
  GKdim(M);        Gelfand-Kirillov dimension computation of the factor-module, whose presentation is given by the matrix M.
";

///////////////////////////////////////////////////////////////////////////////////
static proc idGKdim(ideal I)
"USAGE:   idGKdim(I), I is a left ideal
RETURN:  int, the Gelfand-Kirillov dimension of the R/I
NOTE: uses the dim procedure, if the factor-module is zero, -1 is returned
"
{
  if (attrib(I,"isSB")<>1)
  {
    I=std(I);
  }

  int d    = dim(I);
  //  if (d==-1) {d++;} // The GK-dimension of a finite dimensional module is zero
  // levandov: but for consistency, GKdim(std(1)) == -1,
  //           mimicking the behaviour of dim() procedure.
  return (d);
}

///////////////////////////////////////////////////////////////////////////////
proc GKdim(list L)
"USAGE:   GKdim(L);   L is a left ideal/module/matrix
RETURN:  int
PURPOSE: compute the Gelfand-Kirillov dimension of the factor-module, whose presentation is given by L, e.g. R^r/L
NOTE:  if the factor-module is zero, -1 is returned
EXAMPLE: example GKdim; shows examples
"
{
  def M = L[1];
  int d = -1;
  if (typeof(M)=="ideal")
  {
    d=idGKdim(M);
  }
  else
  {
    if (typeof(M)=="matrix")
    {
      module N = module(M);
      kill M;
      module M = N;
    }
    if (typeof(M)=="module")
    {
      if (attrib(M,"isSB")<>1)
      {
        M=std(M);
      }
      d=dim(M);
    }
    else
    {
      ERROR("The input must be an ideal, a module or a matrix.");
    }
  }
  return (d);
}
example
{
  "EXAMPLE:";echo=2;
  ring R = 0,(x,y,z),Dp;
  matrix C[3][3]=0,1,1,0,0,-1,0,0,0;
  matrix D[3][3]=0,0,0,0,0,x;
  def r = nc_algebra(C,D); setring r;
  r;
  ideal I=x;
  GKdim(I);
  ideal J=x2,y;
  GKdim(J);
  module M=[x2,y,1],[x,y2,0];
  GKdim(M);
  ideal A = x,y,z;
  GKdim(A);
  ideal B = 1;
  GKdim(B);
  GKdim(ideal(0)) == nvars(basering);  // should be true, i.e., evaluated to 1
}
///////////////////////////////////////////////////////////////////////////////
proc gkdim(list L)
{
  return(GKdim(L));
}
///////////////////////////////////////////////////////////////////////////////