Function Exact-Range

Arity: 2
A relation maps elements of a domain onto element of a range. For each tuple in the relation, the last item is in the range, and the tuple formed by the preceeding items is in the domain. The EXACT-RANGE is the class whose instances are exactly those that appear in the last item of some tuple in the relation.

The EXACT-RANGE of a relation is always a class, while the exact-domain may be a relation of any arity, including variable arity (e.g., the + function can take 0 or more arguments, but its exact-range is some subset of the class NUMBER).

In KIF, functions are a special case of relations. This definition is based on relational terminology, but applies to functions as well. In discussions of functions, one often sees the notation f:X -> Y. Usually, X and Y are sets of elements x and y. In this ontology, the unary function f is also a binary relation, where X is the exact-domain of f and Y is the exact-range of f. This generalizes to cross products. For the function g:A x B x C -> D, the domain is the ternary relation of tuples (a, b, c) and the range is the unary relation of tuples (d). The exact-range of just those d's that are actually the value of g on some (a, b, c).

The EXACT-RANGE of a function is unique, and every function f maps (exact-domain f) onto (exact-range f). Sometimes the EXACT-RANGE of f is called the ``image of (exact-domain f) under d.''

The relation RANGE is a constraint on the possible values of a function. It is a superclass of the EXACT-RANGE, and is not unique.


  • Some books define the range of the function as the set Y in f:X->Y. Why is the range defined as a subset of Y?

    To unify relations and functions, we conceptualized functions as sets rather than as mappings (as in category ontology). In the category ontology sense, the range of function f is not a property of the function but of a particular mapping f:X -> Y. This mapping cannot be specified without its domain and range. In the set ontologetic account of this ontology, the function is defined extensionally and the range follows.

  • See-Also: range exact-domain
Domain: Relation
Binary-Relation, Function, Relation, Set
Range: Class

Equivalence Axioms for Exact-Range:

(<=> (Exact-Range ?Relation)
     (And (Relation ?Relation)
          (Class ?Range-Class)
          (Forall (?Range-Instance)
                  (<=> (Holds ?Range-Class ?Range-Instance)
                       (Exists (?Tuple)
                               (And (Member ?Tuple ?Relation)
                                    (= (Last ?Tuple) ?Range-Instance)))))))

Implication Axioms mentioning Exact-Range:

(=> (= (Exact-Range ?Relation) ?Range-Class)
    (Forall (?Range-Instance)
            (<=> (Holds ?Range-Class ?Range-Instance)
                 (Exists (?Tuple)
                         (And (Member ?Tuple ?Relation)
                              (= (Last ?Tuple) ?Range-Instance))))))

(=> (= (Exact-Range ?Relation) ?Range-Class) (Class ?Range-Class))

(=> (= (Exact-Range ?Relation) ?Range-Class) (Relation ?Relation))

(=> (Range ?Relation ?Type)
    (Subclass-Of (Exact-Range ?Relation) ?Type))

Equivalence Axioms mentioning Exact-Range:

(<=> (Onto ?Relation ?Range-Class)
     (Subclass-Of (Exact-Range ?Relation) ?Range-Class))

(<=> (Range ?Relation ?Type)
     (And (Relation ?Relation)
          (Class ?Type)
          (Subclass-Of (Exact-Range ?Relation) ?Type)))