This file is indexed.

/usr/share/axiom-20170501/src/algebra/ACFS.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
 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
100
101
102
103
104
105
106
107
108
109
110
111
112
)abbrev category ACFS AlgebraicallyClosedFunctionSpace
++ Author: Manuel Bronstein
++ Date Created: 31 October 1988
++ Date Last Updated: 7 October 1991
++ Description:
++ Model for algebraically closed function spaces.

AlgebraicallyClosedFunctionSpace(R): Category == SIG where
  R : Join(OrderedSet,IntegralDomain)

  SIG ==> Join(AlgebraicallyClosedField, FunctionSpace R) with

    rootOf : $ -> $
      ++ rootOf(p) returns y such that \spad{p(y) = 0}.
      ++ Error: if p has more than one variable y.
  
    rootsOf: $ -> List $
      ++ rootsOf(p, y) returns \spad{[y1,...,yn]} such that \spad{p(yi) = 0};
      ++ Note that the returned symbols y1,...,yn are bound in the interpreter
      ++ to respective root values.
      ++ Error: if p has more than one variable y.
  
    rootOf : ($, Symbol) -> $
      ++ rootOf(p,y) returns y such that \spad{p(y) = 0}.
      ++ The object returned displays as \spad{'y}.
  
    rootsOf: ($, Symbol) -> List $
      ++ rootsOf(p, y) returns \spad{[y1,...,yn]} such that \spad{p(yi) = 0};
      ++ The returned roots display as \spad{'y1},...,\spad{'yn}.
      ++ Note that the returned symbols y1,...,yn are bound in the interpreter
      ++ to respective root values.
  
    zeroOf : $ -> $
      ++ zeroOf(p) returns y such that \spad{p(y) = 0}.
      ++ The value y is expressed in terms of radicals if possible,and 
      ++ otherwise as an implicit algebraic quantity.
      ++ Error: if p has more than one variable.
  
    zerosOf: $ -> List $
      ++ zerosOf(p) returns \spad{[y1,...,yn]} such that \spad{p(yi) = 0}.
      ++ The yi's are expressed in radicals if possible.
      ++ The returned symbols y1,...,yn are bound in the interpreter
      ++ to respective root values.
      ++ Error: if p has more than one variable.
  
    zeroOf : ($, Symbol) -> $
      ++ zeroOf(p, y) returns y such that \spad{p(y) = 0}.
      ++ The value y is expressed in terms of radicals if possible,and 
      ++ otherwise as an implicit algebraic quantity
      ++ which displays as \spad{'y}.
  
    zerosOf: ($, Symbol) -> List $
      ++ zerosOf(p, y) returns \spad{[y1,...,yn]} such that \spad{p(yi) = 0}.
      ++ The yi's are expressed in radicals if possible, and otherwise
      ++ as implicit algebraic quantities
      ++ which display as \spad{'yi}.
      ++ The returned symbols y1,...,yn are bound in the interpreter
      ++ to respective root values.

   add

     rootOf(p:$) ==
       empty?(l := variables p) => error "rootOf: constant expression"
       rootOf(p, first l)
 
     rootsOf(p:$) ==
       empty?(l := variables p) => error "rootsOf: constant expression"
       rootsOf(p, first l)
 
     zeroOf(p:$) ==
       empty?(l := variables p) => error "zeroOf: constant expression"
       zeroOf(p, first l)
 
     zerosOf(p:$) ==
       empty?(l := variables p) => error "zerosOf: constant expression"
       zerosOf(p, first l)
 
     zeroOf(p:$, x:Symbol) ==
       n := numer(f := univariate(p, kernel(x)$Kernel($)))
       degree denom f > 0 => error "zeroOf: variable appears in denom"
       degree n = 0 => error "zeroOf: constant expression"
       zeroOf(n, x)
 
     rootOf(p:$, x:Symbol) ==
       n := numer(f := univariate(p, kernel(x)$Kernel($)))
       degree denom f > 0 => error "roofOf: variable appears in denom"
       degree n = 0 => error "rootOf: constant expression"
       rootOf(n, x)
 
     zerosOf(p:$, x:Symbol) ==
       n := numer(f := univariate(p, kernel(x)$Kernel($)))
       degree denom f > 0 => error "zerosOf: variable appears in denom"
       degree n = 0 => empty()
       zerosOf(n, x)
 
     rootsOf(p:$, x:Symbol) ==
       n := numer(f := univariate(p, kernel(x)$Kernel($)))
       degree denom f > 0 => error "roofsOf: variable appears in denom"
       degree n = 0 => empty()
       rootsOf(n, x)
 
     rootsOf(p:SparseUnivariatePolynomial $, y:Symbol) ==
       (r := retractIfCan(p)@Union($,"failed")) case $ => rootsOf(r::$,y)
       rootsOf(p, y)$AlgebraicallyClosedField_&($)
 
     zerosOf(p:SparseUnivariatePolynomial $, y:Symbol) ==
       (r := retractIfCan(p)@Union($,"failed")) case $ => zerosOf(r::$,y)
       zerosOf(p, y)$AlgebraicallyClosedField_&($)
 
     zeroOf(p:SparseUnivariatePolynomial $, y:Symbol) ==
       (r := retractIfCan(p)@Union($,"failed")) case $ => zeroOf(r::$, y)
       zeroOf(p, y)$AlgebraicallyClosedField_&($)