The **extension** of a predicate – a truth-valued function – is the set of tuples of values that, used as arguments, satisfy the predicate. Such a set of tuples is a relation.

For example, the statement "*d2* is the weekday following *d1*" can be seen as a truth function associating to each tuple (*d2*, *d1*) the value *true* or *false*. The extension of this truth function is, by convention, the set of all such tuples associated with the value *true*, i.e.

{(Monday, Sunday), (Tuesday, Monday), (Wednesday, Tuesday), (Thursday, Wednesday), (Friday, Thursday), (Saturday, Friday), (Sunday, Saturday)}

By examining this extension we can conclude that "Tuesday is the weekday following Saturday" (for example) is false.

Using set-builder notation, the extension of the *n*-ary predicate can be written as

If the values 0 and 1 in the range of a characteristic function are identified with the values false and true, respectively – making the characteristic function a predicate – , then for all relations *R* and predicates the following two statements are equivalent:

- is the characteristic function of
*R* *R*is the extension of