/usr/share/axiom-20170501/src/algebra/SUCH.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 | )abbrev domain SUCH SuchThat
++ Author: Mark Botch
++ Description:
++ This domain implements "such that" forms
SuchThat(S1, S2) : SIG == CODE where
S1 : SetCategory
S2 : SetCategory
E ==> OutputForm
SIG ==> SetCategory with
construct: (S1, S2) -> %
++ construct(s,t) makes a form s:t
lhs: % -> S1
++ lhs(f) returns the left side of f
rhs: % -> S2
++ rhs(f) returns the right side of f
CODE ==> add
Rep := Record(obj: S1, cond: S2)
construct(o, c) == [o, c]$Record(obj: S1, cond: S2)
lhs st == st.obj
rhs st == st.cond
coerce(w):E == infix("|"::E, w.obj::E, w.cond::E)
|