This file is indexed.

/usr/share/axiom-20170501/src/algebra/RETRACT.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
)abbrev category RETRACT RetractableTo
++ Date Last Updated: 14 May 1991
++ Description:
++ A is retractable to B means that some elements if A can be converted
++ into elements of B and any element of B can be converted into an
++ element of A.

RetractableTo(S) : Category == SIG where
  S : Type

  SIG ==> with

    coerce : S -> %
      ++ coerce(a) transforms a into an element of %.

    retractIfCan : % -> Union(S,"failed")
      ++ retractIfCan(a) transforms a into an element of S if possible.
      ++ Returns "failed" if a cannot be made into an element of S.

    retract : % -> S
      ++ retract(a) transforms a into an element of S if possible.
      ++ Error: if a cannot be made into an element of S.

   add

     retract(s) ==
       (u:=retractIfCan s) case "failed" => error "not retractable"
       u