Download Relations in Software Engineering: Properties and Operations and more Slides Software Engineering in PDF only on Docsity!
LECTURE 15: RELATIONS
Software Engineering
1 Introduction
- We saw in earlier lectures that a function is just a set of maplets, for example: tel == {mikew 7 → 1531 , eric 7 → 1489 }. A maplet is just an ordered pair, so another way of writing this is tel == {(mikew, 1531), (eric, 1489)} Formally, if f : T 1 → T 1 , then f is a subset of the cartesian product of T 1 × T 1 : f ⊆ T 1 × T 2. But functions can’t be defined in this way, as they must have the uniqueness property — the following is not a function: {(mike, 1531), (eric, 1531)}.
- A more general way of capturing a relationship between two sets is to use a relation.
- Relations are similar to functions, but do not have the uniquness property.
2 Operations on Relations
- Everything you can do with a function, you can do with a relation:
dom R domain of R ran R range of R S R R with domain restricted to S R S R with range restricted to S S − R R with S subtracted from domain of R R − S R with S subtracted from range of R
R == {(a, 1), (a, 2), (b, 1), (c, 3)} then dom R = {a, b, c} ran R = { 1 , 2 , 3 } {a} R = {(a, 1), (a, 2)} {a, b} R = {(a, 1), (a, 2), (b, 1)} R { 1 } = {(a, 1), (b, 1)} R { 1 , 3 } = {(a, 1), (b, 1), (c, 3)} {a} − R = {(b, 1), (c, 3)} {a, b} − R = {(c, 3)} R − { 1 } = {(a, 2), (b, 3)} R − { 1 , 2 , 3 } = ∅.
f == {a 7 → 1 , b 7 → 1 } Now f is certainly a function (though it is not one-to-one.) But take the inverse of f : f ∼^ = {(1, a), (1, b)}. Although f ∼^ is a relation, it is not a function.
2.2 Relational Image
- Can we do relation application...?
- EXAMPLE. If
R == {(a, 1), (a, 2), (b, 1), (c, 3)} then R(a) =?
- No, we can’t, since it is not defined what the value of R should be here — should it be 1 or 2 or both?
- However, we can do something a bit more general — we can get the relation image of a value, using the image brackets ‘(| |)’.
3 Properties of Relations
- An interesting class of relations are those that are defined on just one set.
- EXAMPLE. Consider the set of binary relations on IN: IN ↔ IN.
- Definition: If R : T ↔ T, then we say R is a binary relation on T.
- We shall now consider the properties of these types of relation.
3.1 Reflexivity
- Suppose we have a relation R on T such that for any element x ∈ (dom R ∪ ran R), we have (x, x) ∈ R. Then R is said to be reflexive.
- EXAMPLES.
- {(1, 1), (1, 2), (2, 2), (1, 3), (3, 3)} ... is a reflexive relation on IN.
- {(1, 1), (1, 2), (2, 2), (1, 3)} ... is not a reflexive relation on IN (because (3, 3) is not a member).
- The subset relation, ⊆, is reflexive, because S ⊆ S, for any set S.
- The ‘less that’ relation, <, is not reflexive, because it is not true that n < n, for any value n.
- The ‘is the father of’ relation (defined on the set of people) is not reflexive, because it is not true that p is the father of p, for any person p.
3.3 Transitivity
- A relation R is said to be transitive iff whenever we have (x, y) ∈ R and (y, z) ∈ R, we also have (x, z) ∈ R.
- EXAMPLES.
- {(2, 1), (1, 2), (2, 3), (3, 2)} ... is not a transitive relation, as it does not contain (1, 3).
- The less than relation, <, is transitive, since if a < b and b < c then a < c.
- The ‘is an ancestor of’ relation is transitive.
- Equality is transitive.
3.4 Equivalence Relations
- Definition: If a relation is reflexive, symmetric, and transitive, then it is called an equivalence relation.
- The general idea behind equivalence relations is that they classify objects which are ‘alike’ in some respect.
- EXAMPLES.
- Equality is an equivalence relation.
- The relation ‘is the same species as’, defined on the set of all animals, is an equivalence relation.
- The relation ‘owns the same make car as’, defined on the set of people, is an equivalence relation.
- Neither < nor ⊆ are equivalence relations.
- Equivalence relation are often written ≡ or ∼.