/usr/share/axiom-20170501/src/algebra/OVAR.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 | )abbrev domain OVAR OrderedVariableList
++ Author: Mark Botch
++ Description:
++ This domain implements ordered variables
OrderedVariableList(VariableList) : SIG == CODE where
VariableList : List Symbol
SIG ==> Join(OrderedFinite, ConvertibleTo Symbol, ConvertibleTo InputForm,
ConvertibleTo Pattern Float, ConvertibleTo Pattern Integer) with
variable : Symbol -> Union(%,"failed")
++ variable(s) returns a member of the variable set or failed
CODE ==> add
VariableList := removeDuplicates VariableList
Rep := PositiveInteger
s1,s2:%
convert(s1):Symbol == VariableList.((s1::Rep)::PositiveInteger)
coerce(s1):OutputForm == (convert(s1)@Symbol)::OutputForm
convert(s1):InputForm == convert(convert(s1)@Symbol)
convert(s1):Pattern(Integer) == convert(convert(s1)@Symbol)
convert(s1):Pattern(Float) == convert(convert(s1)@Symbol)
index i == i::%
lookup j == j :: Rep
size () == #VariableList
variable(exp:Symbol) ==
for i in 1.. for exp2 in VariableList repeat
if exp=exp2 then return i::PositiveInteger::%
"failed"
s1 < s2 == s2 <$Rep s1
s1 = s2 == s1 =$Rep s2
latex(x:%):String == latex(convert(x)@Symbol)
|