Relations in Software Engineering: Properties and Operations, Slides of Software Engineering

The concept of relations in software engineering. Relations are similar to functions but do not have the uniqueness property. The definition of relations, operations on relations such as domain, range, restriction, and subtraction, the inverse of a relation, and relation application. Additionally, the document discusses the properties of relations, including reflexivity, symmetry, and transitivity, and the concepts of reflexive and transitive closures.

Typology: Slides

2011/2012

Uploaded on 02/03/2012

gustavott
gustavott 🇬🇧

3.9

(14)

253 documents

1 / 15

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
LECTURE 15: RELATIONS
Software Engineering
Mike Wooldridge
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

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

  • EXAMPLES. Let

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 } = ∅.

  • EXAMPLE. Suppose we had

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), (1, 2), (2, 2), (1, 3), (3, 3)} ... is a reflexive relation on IN.
    2. {(1, 1), (1, 2), (2, 2), (1, 3)} ... is not a reflexive relation on IN (because (3, 3) is not a member).
    3. The subset relation, ⊆, is reflexive, because S ⊆ S, for any set S.
    4. The ‘less that’ relation, <, is not reflexive, because it is not true that n < n, for any value n.
    5. 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.
    1. {(2, 1), (1, 2), (2, 3), (3, 2)} ... is not a transitive relation, as it does not contain (1, 3).
    2. The less than relation, <, is transitive, since if a < b and b < c then a < c.
    3. The ‘is an ancestor of’ relation is transitive.
    4. 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.
    1. Equality is an equivalence relation.
    2. The relation ‘is the same species as’, defined on the set of all animals, is an equivalence relation.
    3. The relation ‘owns the same make car as’, defined on the set of people, is an equivalence relation.
    4. Neither < nor ⊆ are equivalence relations.
  • Equivalence relation are often written ≡ or ∼.