This file is indexed.

/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)))