/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_&($)
|