/usr/share/doc/libbiojava-java/resources/org/biojava/ontology/core.set.pred is in libbiojava-java 1:1.7.1-5.
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | namespace core.set { Set type and operations }
import core.instance_of
import core.relation
import core.domain
import core.co_domain
import core.equal
# Sets and their opperations
#
#
set { a set of items }
universal { the set of all items }
empty { the empty set }
contains { set contains an element }
not_contains { does not contain }
sub_set { one set contains all members of another }
instance_of(set, type)
instance_of(universal, set)
instance_of(empty, set)
instance_of(contains, relation)
instance_of(not_contains, relation)
instance_of(sub_set, relation)
instance_of(contains, relation)
domain(set, contains)
instance_of(not_contains, relation)
domain(set, not_contains)
contains { universal contains everything }
(universal, _x)
equal { empty contains nothing }
(false,
contains(empty, _x))
instance_of(relation, sub_set)
domain(set, sub_set)
co_domain(set, sub_set)
# Set operation deffinitions
#
#
implies(contains(_S, _x),
and(instance_of(_S, set),
instance_of(_x, any)))
xor(contains(_S, _x), not_contains(_S, _x))
union { set-wise union }
domain(set, union)
co_domain(set, union)
equal { union(X, Y) = Z <=> i e Z && (i e X or i e Y) }
(union([_X, _Y], _Z),
and(and(and(instance_of(_X, set), instance_of(_Y, set)), instance_of(_Z, set)),
and(contains(_Z, _i),
or(contains(_X, _i), contains(_Y, _i)))))
intersection { set-wise intersection }
domain(set, intersection)
co_domain(set, intersection)
equal { intersection(X, Y) = Z <=> i e Z && (i e X and i e Y) }
(intersection([_X, _Y], _Z),
and(and(and(instance_of(_X, set), instance_of(_Y, set)), instance_of(_Z, set)),
and(contains(_Z, _i),
and(contains(_X, _i), contains(_Y, _i)))))
subtraction { set-wise subtraction }
co_domain(set, subtraction)
equal { subtraction(X, Y) = Z <=> i e Z && (i e X and not i e Y) }
(subtraction([_X, _Y], _Z),
and(and(and(instance_of(_X, set), instance_of(_Y, set)), instance_of(_Z, set)),
and(contains(_Z, _i),
and(contains(_X, _i), not_contains(_Y, _i)))))
disjoint { sets are disjoint if no item is a member of both }
domain(set, disjoint)
co_domain(set, disjoint)
equal { disjoint(X, Y) = not (i e X && i e Y) }
(disjoint(_X, _Y),
equal(and(contains(_X, _i), contains(_Y, _i)), false))
subset { one set is a subset of the other }
domain(set, subset)
co_domain(set, subset)
equal { X subset Y <=> x e X => x e Y }
(subset(_X, _Y),
implies(contains(_X, _x), contains(_Y, _x)))
remove { remove an item from a set }
and(remove([_X, _x], _Z),
and(contains(_Z, _i),
and(contains(_X, _x), not_equal(_i, _x))))
add { add an item to a set }
and { adding an item means that the result contains all the originals as well as
the one you added }
(add([_X, _x], _Z),
and(contains(_Z, _i),
or(contains(_X, _i), equal(_x, _i))))
equal { A set contains an item _x if adding it produces an equal set }
(contains(_X, _x),
add([_X, _x], _X))
implies { sets are equal if they contain exactly the same items }
(and(instance_of(_S, set), and(instance_of(_T, set), equal(_S, _T))),
equal(contains(_S, _i), contains(_T, _i)))
|