/usr/share/axiom-20170501/src/algebra/DSMP.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 | )abbrev domain DSMP DifferentialSparseMultivariatePolynomial
++ Author: William Sit
++ Date Created: 19 July 1990
++ Date Last Updated: 13 September 1991
++ References:Kolchin, E.R. "Differential Algebra and Algebraic Groups"
++ (Academic Press, 1973).
++ Description:
++ \spadtype{DifferentialSparseMultivariatePolynomial} implements
++ an ordinary differential polynomial ring by combining a
++ domain belonging to the category \spadtype{DifferentialVariableCategory}
++ with the domain \spadtype{SparseMultivariatePolynomial}.
DifferentialSparseMultivariatePolynomial(R, S, V) : SIG == CODE where
R: Ring
S: OrderedSet
V: DifferentialVariableCategory S
E ==> IndexedExponents(V)
PC ==> PolynomialCategory(R,IndexedExponents(V),V)
PCL ==> PolynomialCategoryLifting
P ==> SparseMultivariatePolynomial(R, V)
SUP ==> SparseUnivariatePolynomial
SMP ==> SparseMultivariatePolynomial(R, S)
SIG ==> Join(DifferentialPolynomialCategory(R,S,V,E),RetractableTo SMP)
CODE ==> P add
retractIfCan(p:$):Union(SMP, "failed") ==
zero? order p =>
map(x+->retract(x)@S :: SMP,y+->y::SMP, p)$PCL(
IndexedExponents V, V, R, $, SMP)
"failed"
coerce(p:SMP):$ ==
map(x+->x::V::$, y+->y::$, p)$PCL(IndexedExponents S, S, R, SMP, $)
|