This file is indexed.

/usr/share/axiom-20170501/src/algebra/DIOPS.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
)abbrev category DIOPS DictionaryOperations
++ Author: Michael Monagan; revised by Manuel Bronstein and Richard Jenks
++ Date Created: August 87 through August 88
++ Date Last Updated: April 1991
++ Description:
++ This category is a collection of operations common to both
++ categories \spadtype{Dictionary} and \spadtype{MultiDictionary}

DictionaryOperations(S) : Category == SIG where
  S : SetCategory

  SIG ==> Join(BagAggregate S, Collection(S)) with

    dictionary : () -> %
      ++ dictionary()$D creates an empty dictionary of type D.
  
    dictionary : List S -> %
      ++ dictionary([x,y,...,z]) creates a dictionary consisting of
      ++ entries \axiom{x,y,...,z}.
  
    if % has finiteAggregate then
  
      remove_! : (S,%) -> %
        ++ remove!(x,d) destructively changes dictionary d by removing
        ++ all entries y such that \axiom{y = x}.
  
      remove_! : (S->Boolean,%) -> %
        ++ remove!(p,d) destructively changes dictionary d by removeing
        ++ all entries x such that \axiom{p(x)} is true.
  
      select_! : (S->Boolean,%) -> %
        ++ select!(p,d) destructively changes dictionary d by removing
        ++ all entries x such that \axiom{p(x)} is not true.
  
   add
  
     construct l == dictionary l
  
     dictionary() == empty()
  
     if % has finiteAggregate then
  
       copy d == dictionary parts d
  
       coerce(s:%):OutputForm ==
         prefix("dictionary"@String :: OutputForm,
                  [x::OutputForm for x in parts s])