# FunctionSpace R¶

A space of formal functions with arguments in an arbitrary ordered set.

0: % if R has AbelianSemiGroup

from AbelianMonoid

1: % if R has SemiGroup

from MagmaWithUnit

*: (%, %) -> % if R has SemiGroup

from LeftModule %

*: (%, Fraction Integer) -> % if R has IntegralDomain
*: (%, Integer) -> % if R has LinearlyExplicitOver Integer and R has Ring
*: (%, R) -> % if R has Ring

from RightModule R

*: (Fraction Integer, %) -> % if R has IntegralDomain
*: (Integer, %) -> % if R has AbelianGroup

from AbelianGroup

*: (NonNegativeInteger, %) -> % if R has AbelianSemiGroup

from AbelianMonoid

*: (PositiveInteger, %) -> % if R has AbelianSemiGroup

from AbelianSemiGroup

*: (R, %) -> % if R has CommutativeRing

from LeftModule R

+: (%, %) -> % if R has AbelianSemiGroup

from AbelianSemiGroup

-: % -> % if R has AbelianGroup

from AbelianGroup

-: (%, %) -> % if R has AbelianGroup

from AbelianGroup

/: (%, %) -> % if R has Group or R has IntegralDomain

from Field

/: (SparseMultivariatePolynomial(R, Kernel %), SparseMultivariatePolynomial(R, Kernel %)) -> % if R has IntegralDomain

`p1/p2` returns the quotient of `p1` and `p2` as an element of %.

=: (%, %) -> Boolean

from BasicType

^: (%, Integer) -> % if R has Group or R has IntegralDomain

from DivisionRing

^: (%, NonNegativeInteger) -> % if R has SemiGroup

from MagmaWithUnit

^: (%, PositiveInteger) -> % if R has SemiGroup

from Magma

~=: (%, %) -> Boolean

from BasicType

algtower: % -> List Kernel % if R has IntegralDomain

`algtower(f)` is algtower([`f`])

algtower: List % -> List Kernel % if R has IntegralDomain

`algtower([f1, ..., fn])` returns list of kernels `[ak1, ..., akl]` such that each toplevel algebraic kernel in one of `f1`, …, `fn` or in arguments of `ak1`, …, akl is one of `ak1`, …, akl.

annihilate?: (%, %) -> Boolean if R has Ring

from Rng

antiCommutator: (%, %) -> % if R has Ring
applyQuote: (Symbol, %) -> %

`applyQuote(foo, x)` returns `'foo(x)`.

applyQuote: (Symbol, %, %) -> %

`applyQuote(foo, x, y)` returns `'foo(x, y)`.

applyQuote: (Symbol, %, %, %) -> %

`applyQuote(foo, x, y, z)` returns `'foo(x, y, z)`.

applyQuote: (Symbol, %, %, %, %) -> %

`applyQuote(foo, x, y, z, t)` returns `'foo(x, y, z, t)`.

applyQuote: (Symbol, List %) -> %

`applyQuote(foo, [x1, ..., xn])` returns `'foo(x1, ..., xn)`.

associates?: (%, %) -> Boolean if R has IntegralDomain

from EntireRing

associator: (%, %, %) -> % if R has Ring
belong?: BasicOperator -> Boolean

from ExpressionSpace

box: % -> %

from ExpressionSpace

characteristic: () -> NonNegativeInteger if R has Ring
charthRoot: % -> Union(%, failed) if R has CharacteristicNonZero
coerce: % -> % if R has IntegralDomain

from Algebra %

coerce: % -> OutputForm
coerce: Fraction Integer -> % if R has RetractableTo Fraction Integer or R has IntegralDomain
coerce: Fraction Polynomial Fraction R -> % if R has IntegralDomain

`coerce(f)` returns `f` as an element of %.

coerce: Fraction Polynomial R -> % if R has IntegralDomain
coerce: Fraction R -> % if R has IntegralDomain

`coerce(q)` returns `q` as an element of %.

coerce: Integer -> % if R has RetractableTo Integer or R has Ring
coerce: Kernel % -> %

from CoercibleFrom Kernel %

coerce: Polynomial Fraction R -> % if R has IntegralDomain

`coerce(p)` returns `p` as an element of %.

coerce: Polynomial R -> % if R has Ring
coerce: R -> %

from CoercibleFrom R

coerce: SparseMultivariatePolynomial(R, Kernel %) -> % if R has Ring

`coerce(p)` returns `p` as an element of %.

coerce: Symbol -> %
commutator: (%, %) -> % if R has Ring or R has Group
conjugate: (%, %) -> % if R has Group

from Group

convert: % -> InputForm if R has ConvertibleTo InputForm
convert: % -> Pattern Float if R has ConvertibleTo Pattern Float
convert: % -> Pattern Integer if R has ConvertibleTo Pattern Integer
convert: Factored % -> % if R has IntegralDomain

`convert(f1\^e1 ... fm\^em)` returns `(f1)\^e1 ... (fm)\^em` as an element of %, using formal kernels created using a paren.

D: (%, List Symbol) -> % if R has Ring
D: (%, List Symbol, List NonNegativeInteger) -> % if R has Ring
D: (%, Symbol) -> % if R has Ring
D: (%, Symbol, NonNegativeInteger) -> % if R has Ring
definingPolynomial: % -> % if % has Ring

from ExpressionSpace

denom: % -> SparseMultivariatePolynomial(R, Kernel %) if R has IntegralDomain

`denom(f)` returns the denominator of `f` viewed as a polynomial in the kernels over `R`.

denominator: % -> % if R has IntegralDomain

`denominator(f)` returns the denominator of `f` converted to %.

differentiate: (%, List Symbol) -> % if R has Ring
differentiate: (%, List Symbol, List NonNegativeInteger) -> % if R has Ring
differentiate: (%, Symbol) -> % if R has Ring
differentiate: (%, Symbol, NonNegativeInteger) -> % if R has Ring
distribute: % -> %

from ExpressionSpace

distribute: (%, %) -> %

from ExpressionSpace

divide: (%, %) -> Record(quotient: %, remainder: %) if R has IntegralDomain

from EuclideanDomain

elt: (BasicOperator, %) -> %

from ExpressionSpace

elt: (BasicOperator, %, %) -> %

from ExpressionSpace

elt: (BasicOperator, %, %, %) -> %

from ExpressionSpace

elt: (BasicOperator, %, %, %, %) -> %

from ExpressionSpace

elt: (BasicOperator, %, %, %, %, %) -> %

from ExpressionSpace

elt: (BasicOperator, %, %, %, %, %, %) -> %

from ExpressionSpace

elt: (BasicOperator, %, %, %, %, %, %, %) -> %

from ExpressionSpace

elt: (BasicOperator, %, %, %, %, %, %, %, %) -> %

from ExpressionSpace

elt: (BasicOperator, %, %, %, %, %, %, %, %, %) -> %

from ExpressionSpace

elt: (BasicOperator, List %) -> %

from ExpressionSpace

euclideanSize: % -> NonNegativeInteger if R has IntegralDomain

from EuclideanDomain

eval: (%, %, %) -> %

from InnerEvalable(%, %)

eval: (%, BasicOperator, % -> %) -> %

from ExpressionSpace

eval: (%, BasicOperator, %, Symbol) -> % if R has ConvertibleTo InputForm

`eval(x, s, f, y)` replaces every `s(a)` in `x` by `f(y)` with `y` replaced by `a` for any `a`.

eval: (%, BasicOperator, List % -> %) -> %

from ExpressionSpace

eval: (%, Equation %) -> %

from Evalable %

eval: (%, Kernel %, %) -> %

from InnerEvalable(Kernel %, %)

eval: (%, List %, List %) -> %

from InnerEvalable(%, %)

eval: (%, List BasicOperator, List %, Symbol) -> % if R has ConvertibleTo InputForm

`eval(x, [s1, ..., sm], [f1, ..., fm], y)` replaces every `si(a)` in `x` by `fi(y)` with `y` replaced by `a` for any `a`.

eval: (%, List BasicOperator, List(% -> %)) -> %

from ExpressionSpace

eval: (%, List BasicOperator, List(List % -> %)) -> %

from ExpressionSpace

eval: (%, List Equation %) -> %

from Evalable %

eval: (%, List Kernel %, List %) -> %

from InnerEvalable(Kernel %, %)

eval: (%, List Symbol, List NonNegativeInteger, List(% -> %)) -> % if R has Ring

`eval(x, [s1, ..., sm], [n1, ..., nm], [f1, ..., fm])` replaces every `si(a)^ni` in `x` by `fi(a)` for any `a`.

eval: (%, List Symbol, List NonNegativeInteger, List(List % -> %)) -> % if R has Ring

`eval(x, [s1, ..., sm], [n1, ..., nm], [f1, ..., fm])` replaces every `si(a1, ..., an)^ni` in `x` by `fi(a1, ..., an)` for any `a1`, …, am.

eval: (%, List Symbol, List(% -> %)) -> %

from ExpressionSpace

eval: (%, List Symbol, List(List % -> %)) -> %

from ExpressionSpace

eval: (%, Symbol, % -> %) -> %

from ExpressionSpace

eval: (%, Symbol, List % -> %) -> %

from ExpressionSpace

eval: (%, Symbol, NonNegativeInteger, % -> %) -> % if R has Ring

`eval(x, s, n, f)` replaces every `s(a)^n` in `x` by `f(a)` for any `a`.

eval: (%, Symbol, NonNegativeInteger, List % -> %) -> % if R has Ring

`eval(x, s, n, f)` replaces every `s(a1, ..., am)^n` in `x` by `f(a1, ..., am)` for any `a1`, …, am.

even?: % -> Boolean if % has RetractableTo Integer

from ExpressionSpace

expressIdealMember: (List %, %) -> Union(List %, failed) if R has IntegralDomain
exquo: (%, %) -> Union(%, failed) if R has IntegralDomain

from EntireRing

extendedEuclidean: (%, %) -> Record(coef1: %, coef2: %, generator: %) if R has IntegralDomain

from EuclideanDomain

extendedEuclidean: (%, %, %) -> Union(Record(coef1: %, coef2: %), failed) if R has IntegralDomain

from EuclideanDomain

factor: % -> Factored % if R has IntegralDomain
freeOf?: (%, %) -> Boolean

from ExpressionSpace

freeOf?: (%, Symbol) -> Boolean

from ExpressionSpace

gcd: (%, %) -> % if R has IntegralDomain

from GcdDomain

gcd: List % -> % if R has IntegralDomain

from GcdDomain

gcdPolynomial: (SparseUnivariatePolynomial %, SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % if R has IntegralDomain

from GcdDomain

ground?: % -> Boolean

`ground?(f)` tests if `f` is an element of `R`.

ground: % -> R

`ground(f)` returns `f` as an element of `R`. An error occurs if `f` is not an element of `R`.

height: % -> NonNegativeInteger

from ExpressionSpace

inv: % -> % if R has Group or R has IntegralDomain

from DivisionRing

is?: (%, BasicOperator) -> Boolean

from ExpressionSpace

is?: (%, Symbol) -> Boolean

from ExpressionSpace

isExpt: % -> Union(Record(var: Kernel %, exponent: Integer), failed) if R has SemiGroup

`isExpt(p)` returns `[x, n]` if `p = x^n` and `n ~= 0`.

isExpt: (%, BasicOperator) -> Union(Record(var: Kernel %, exponent: Integer), failed) if R has Ring

`isExpt(p, op)` returns `[x, n]` if `p = x^n` and `n ~= 0` and `x = op(a)`.

isExpt: (%, Symbol) -> Union(Record(var: Kernel %, exponent: Integer), failed) if R has Ring

`isExpt(p, f)` returns `[x, n]` if `p = x^n` and `n ~= 0` and `x = f(a)`.

isMult: % -> Union(Record(coef: Integer, var: Kernel %), failed) if R has AbelianSemiGroup

`isMult(p)` returns `[n, x]` if `p = n * x` and `n ~= 0`.

isPlus: % -> Union(List %, failed) if R has AbelianSemiGroup

`isPlus(p)` returns `[m1, ..., mn]` if `p = m1 +...+ mn` and `n > 1`.

isPower: % -> Union(Record(val: %, exponent: Integer), failed) if R has Ring

`isPower(p)` returns `[x, n]` if `p = x^n` and `n ~= 0`.

isTimes: % -> Union(List %, failed) if R has SemiGroup

`isTimes(p)` returns `[a1, ..., an]` if `p = a1*...*an` and `n > 1`.

kernel: (BasicOperator, %) -> %

from ExpressionSpace

kernel: (BasicOperator, List %) -> %

from ExpressionSpace

kernels: % -> List Kernel %

from ExpressionSpace

kernels: List % -> List Kernel %

from ExpressionSpace

latex: % -> String

from SetCategory

lcm: (%, %) -> % if R has IntegralDomain

from GcdDomain

lcm: List % -> % if R has IntegralDomain

from GcdDomain

lcmCoef: (%, %) -> Record(llcm_res: %, coeff1: %, coeff2: %) if R has IntegralDomain

from LeftOreRing

leftPower: (%, NonNegativeInteger) -> % if R has SemiGroup

from MagmaWithUnit

leftPower: (%, PositiveInteger) -> % if R has SemiGroup

from Magma

leftRecip: % -> Union(%, failed) if R has SemiGroup

from MagmaWithUnit

mainKernel: % -> Union(Kernel %, failed)

from ExpressionSpace

map: (% -> %, Kernel %) -> %

from ExpressionSpace

minPoly: Kernel % -> SparseUnivariatePolynomial % if % has Ring

from ExpressionSpace

multiEuclidean: (List %, %) -> Union(List %, failed) if R has IntegralDomain

from EuclideanDomain

numer: % -> SparseMultivariatePolynomial(R, Kernel %) if R has Ring

`numer(f)` returns the numerator of `f` viewed as a polynomial in the kernels over `R` if `R` is an integral domain. If not, then numer(`f`) = `f` viewed as a polynomial in the kernels over `R`.

numerator: % -> % if R has Ring

`numerator(f)` returns the numerator of `f` converted to %.

odd?: % -> Boolean if % has RetractableTo Integer

from ExpressionSpace

one?: % -> Boolean if R has SemiGroup

from MagmaWithUnit

operator: BasicOperator -> BasicOperator

from ExpressionSpace

operators: % -> List BasicOperator

from ExpressionSpace

opposite?: (%, %) -> Boolean if R has AbelianSemiGroup

from AbelianMonoid

paren: % -> %

from ExpressionSpace

patternMatch: (%, Pattern Float, PatternMatchResult(Float, %)) -> PatternMatchResult(Float, %) if R has PatternMatchable Float
patternMatch: (%, Pattern Integer, PatternMatchResult(Integer, %)) -> PatternMatchResult(Integer, %) if R has PatternMatchable Integer
plenaryPower: (%, PositiveInteger) -> % if R has CommutativeRing
prime?: % -> Boolean if R has IntegralDomain
principalIdeal: List % -> Record(coef: List %, generator: %) if R has IntegralDomain
quo: (%, %) -> % if R has IntegralDomain

from EuclideanDomain

recip: % -> Union(%, failed) if R has SemiGroup

from MagmaWithUnit

reducedSystem: (Matrix %, Vector %) -> Record(mat: Matrix Integer, vec: Vector Integer) if R has LinearlyExplicitOver Integer and R has Ring
reducedSystem: (Matrix %, Vector %) -> Record(mat: Matrix R, vec: Vector R) if R has Ring

from LinearlyExplicitOver R

reducedSystem: Matrix % -> Matrix Integer if R has LinearlyExplicitOver Integer and R has Ring
reducedSystem: Matrix % -> Matrix R if R has Ring

from LinearlyExplicitOver R

rem: (%, %) -> % if R has IntegralDomain

from EuclideanDomain

retract: % -> Fraction Integer if R has IntegralDomain and R has RetractableTo Integer or R has RetractableTo Fraction Integer
retract: % -> Fraction Polynomial R if R has IntegralDomain
retract: % -> Integer if R has RetractableTo Integer
retract: % -> Kernel %

from RetractableTo Kernel %

retract: % -> Polynomial R if R has Ring
retract: % -> R

from RetractableTo R

retract: % -> Symbol
retractIfCan: % -> Union(Fraction Integer, failed) if R has IntegralDomain and R has RetractableTo Integer or R has RetractableTo Fraction Integer
retractIfCan: % -> Union(Fraction Polynomial R, failed) if R has IntegralDomain
retractIfCan: % -> Union(Integer, failed) if R has RetractableTo Integer
retractIfCan: % -> Union(Kernel %, failed)

from RetractableTo Kernel %

retractIfCan: % -> Union(Polynomial R, failed) if R has Ring
retractIfCan: % -> Union(R, failed)

from RetractableTo R

retractIfCan: % -> Union(Symbol, failed)
rightPower: (%, NonNegativeInteger) -> % if R has SemiGroup

from MagmaWithUnit

rightPower: (%, PositiveInteger) -> % if R has SemiGroup

from Magma

rightRecip: % -> Union(%, failed) if R has SemiGroup

from MagmaWithUnit

sample: % if R has SemiGroup or R has AbelianSemiGroup

from AbelianMonoid

sizeLess?: (%, %) -> Boolean if R has IntegralDomain

from EuclideanDomain

smaller?: (%, %) -> Boolean

from Comparable

squareFree: % -> Factored % if R has IntegralDomain
squareFreePart: % -> % if R has IntegralDomain
subst: (%, Equation %) -> %

from ExpressionSpace

subst: (%, List Equation %) -> %

from ExpressionSpace

subst: (%, List Kernel %, List %) -> %

from ExpressionSpace

subtractIfCan: (%, %) -> Union(%, failed) if R has AbelianGroup
tower: % -> List Kernel %

from ExpressionSpace

tower: List % -> List Kernel %

from ExpressionSpace

unit?: % -> Boolean if R has IntegralDomain

from EntireRing

unitCanonical: % -> % if R has IntegralDomain

from EntireRing

unitNormal: % -> Record(unit: %, canonical: %, associate: %) if R has IntegralDomain

from EntireRing

univariate: (%, Kernel %) -> Fraction SparseUnivariatePolynomial % if R has IntegralDomain

`univariate(f, k)` returns `f` viewed as a univariate fraction in `k`.

variables: % -> List Symbol

`variables(f)` returns the list of all the variables of `f`.

variables: List % -> List Symbol

`variables([f1, ..., fn])` returns the list of all the variables of `f1`, …, `fn`.

zero?: % -> Boolean if R has AbelianSemiGroup

from AbelianMonoid

AbelianGroup if R has AbelianGroup

AbelianMonoid if R has AbelianSemiGroup

AbelianSemiGroup if R has AbelianSemiGroup

Algebra % if R has IntegralDomain

Algebra R if R has CommutativeRing

BasicType

BiModule(%, %) if R has Ring

BiModule(R, R) if R has CommutativeRing

canonicalsClosed if R has IntegralDomain

CoercibleFrom Fraction Integer if R has IntegralDomain and R has RetractableTo Integer or R has RetractableTo Fraction Integer

CoercibleFrom Polynomial R if R has Ring

CommutativeRing if R has IntegralDomain

CommutativeStar if R has IntegralDomain

Comparable

DivisionRing if R has IntegralDomain

EntireRing if R has IntegralDomain

EuclideanDomain if R has IntegralDomain

ExpressionSpace

Field if R has IntegralDomain

FullyLinearlyExplicitOver R if R has Ring

GcdDomain if R has IntegralDomain

Group if R has Group

InnerEvalable(%, %)

InnerEvalable(Kernel %, %)

IntegralDomain if R has IntegralDomain

LeftModule % if R has Ring

LeftModule R if R has CommutativeRing

LeftOreRing if R has IntegralDomain

LinearlyExplicitOver Integer if R has LinearlyExplicitOver Integer and R has Ring

LinearlyExplicitOver R if R has Ring

Magma if R has SemiGroup

MagmaWithUnit if R has SemiGroup

Module % if R has IntegralDomain

Module R if R has CommutativeRing

Monoid if R has SemiGroup

NonAssociativeAlgebra % if R has IntegralDomain

NonAssociativeAlgebra R if R has CommutativeRing

NonAssociativeRing if R has Ring

NonAssociativeRng if R has Ring

NonAssociativeSemiRing if R has Ring

NonAssociativeSemiRng if R has Ring

noZeroDivisors if R has IntegralDomain

RetractableTo Fraction Integer if R has RetractableTo Fraction Integer or R has IntegralDomain and R has RetractableTo Integer

RetractableTo Polynomial R if R has Ring

RightModule % if R has Ring

RightModule Integer if R has LinearlyExplicitOver Integer and R has Ring

RightModule R if R has Ring

Ring if R has Ring

Rng if R has Ring

SemiGroup if R has SemiGroup

SemiRing if R has Ring

SemiRng if R has Ring

SetCategory

TwoSidedRecip if R has Group or R has IntegralDomain

unitsKnown if R has Ring or R has Group