This file is indexed.

/usr/share/axiom-20170501/src/algebra/INTERGB.spad is in axiom-source 20170501-3.

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
)abbrev package INTERGB InterfaceGroebnerPackage
++ Author: Gaetan Hache
++ Date Created: September 1996
++ Date Last Updated: April, 2010, by Tim Daly
++ References:
++ Normxx Notes 13: How to Compute a Groebner Basis
++ Description:
++ Part of the Package for Algebraic Function Fields in one variable PAFF

InterfaceGroebnerPackage(K,symb,E,OV,R) : SIG == CODE where
  K : Field
  symb : List Symbol
  E : OrderedAbelianMonoidSup
  OV : OrderedSet
  R : PolynomialCategory(K,E,OV)

  SIG ==>  with

    groebner : List R -> List R
      
  CODE ==>  add

    if ^(K has FiniteFieldCategory) then

      GBPackR ==> GroebnerPackage(K,E,OV,R)  
      groebner(l)==groebner(l)$GBPackR

    else 

      q:PositiveInteger:=(characteristic()$K pretend PositiveInteger)
  
      PF ==> PrimeField(q)
      DPF ==> DistributedMultivariatePolynomial(symb,PF)
      D ==> DistributedMultivariatePolynomial(symb,K)
      JCFGBPack ==> GroebnerPackage(PF,E,OV,DPF)
      GBPack ==> GroebnerPackage(K,E,OV,D)  

      coerceKtoPF: K -> PF
      coerceKtoPF(a:K):PF==
        index(lookup(a)$K)$PF

      coercePFtoK: PF -> K  
      coercePFtoK(a:PF):K==
        index(lookup(a)$PF)$K
  
      coerceRtoDwithPF: R -> DPF
      coerceRtoDwithPF(pol) ==
        map(coerceKtoPF(#1),pol)$MPolyCatFunctions2(OV,E,E,K,PF,R,DPF)
  
      coerceDtoRwithPF: DPF->R 
      coerceDtoRwithPF(pol) ==
        map(coercePFtoK(#1),pol)$MPolyCatFunctions2(OV,E,E,PF,K,DPF,R)

      coerceRtoD: R -> D
      coerceRtoD(pol) == map(#1,pol)$MPolyCatFunctions2(OV,E,E,K,K,R,D)
  
      coerceDtoR: D->R 
      coerceDtoR(pol) == map(#1,pol)$MPolyCatFunctions2(OV,E,E,K,K,D,R)

      gs:= size()$K

      if gs = q and (representationType()$K case "prime")  then 

        groebner(l)==
          ldmp:List DPF:= [coerceRtoDwithPF(pol) for pol in l]
          gg:=groebner(ldmp)$JCFGBPack
          [coerceDtoRwithPF(pol) for pol in gg]

      else

        groebner(l)==
          ldmp:List D:= [coerceRtoD(pol) for pol in l]
          gg:=groebner(ldmp)$GBPack
          [coerceDtoR(pol) for pol in gg]