Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is...

50
MAT 7003 : Mathematical Foundations (for Software Engineering) J Paul Gibson, A207 [email protected] http://www-public.it-sudparis.eu/~gibson/Teaching/MAT7003/ 2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsAndRelations(Using RODIN).1 http://www-public.it-sudparis.eu/~gibson/Teaching/MAT7003/ Sets and Relations (Using RODIN) …/~gibson/Teaching/MAT7003/L3-SetsAndRelations(Using RODIN).pdf

Transcript of Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is...

Page 1: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

MAT 7003 : Mathematical Foundations

(for Software Engineering)

J Paul Gibson, A207

[email protected]

http://www-public.it-sudparis.eu/~gibson/Teaching/MAT7003/

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsAndRelations(Using RODIN).1

http://www-public.it-sudparis.eu/~gibson/Teaching/MAT7003/

Sets and Relations (UsingRODIN)

…/~gibson/Teaching/MAT7003/L3-SetsAndRelations(Using RODIN).pdf

Page 2: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Have you installed RODIN on your PC?

http://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/2.6/

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsAndRelations(Using RODIN).2

Page 3: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Unzip in a suitable location and run the executable

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsAndRelations(Using RODIN).3

Page 4: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Follow the Instructions on the Welcome Page

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsAndRelations(Using RODIN).4

… and restart … and check for updates

Page 5: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

After installing RODIN and checking for updates you should have a clean workspace, which looks something like this:

A CLEAN WORKSPACE

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsAndRelations(Using RODIN).5

Page 6: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

A NEW PROJECT

Now we wish to create a new project; and there are multiple ways of doing this(as there always is in RODIN – and Eclipse):

New Event-B project

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsAndRelations(Using RODIN).6

Here: using shortcut

New Event-B project

Page 7: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Give the Project a Name (Introduction )

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsAndRelations(Using RODIN).7

Page 8: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Now add a Context component –SomeSets - to our project (in order to do some mathematics using set notation)

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).8

Page 9: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Check that the SomeSets context is empty

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).9

Page 10: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Now, try and write the following context specification … how intuitive is the RODIN user interface for beginners?

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).10

Can you explain what it means (in English)?

Page 11: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

There is a second kind of editor/viewthat is popular

Right click SomeSets and select Open With Event-B context editor

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).11

This is the pretty printview of the Event-B context editor

Page 12: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Use the editor view to add English commentsdocumenting the specification

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).12

Page 13: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Use the editor view to add English commentsdocumenting the specification

NOTE: Both the differenteditor views getupdated

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).13

Page 14: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Now, can you specify that if you are male then you cannot be female

But, our specification is incomplete: it allowsmale and female sets to overlap

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).14

There are lots of different axioms thatyou could write.

Can you find one that you think iscorrect?

Page 15: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Male∩ Female =∅

Female = PERSON∖ Male

Male = PERSON \ Female

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).15

QUESTION: Are these axioms equivalent?

Let’s see using RODIN:Does Male∩ Female =∅ imply Female = PERSON ∖ Male

Page 16: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).16

Add Male∩ Female =∅ as an axiom(non theorem)Add Female = PERSON ∖ Male as a theorem

QUESTION: What do you notice about the SomeSets context properties ?

Page 17: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).17

We have someproof obligations to discharge with the prover

Page 18: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

We can open the Proving perspective to try to prove axm5

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).18

Page 19: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

This shouldnt be so hard for a prover to Prove automatically

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).19

Launch PP (with all hypotheses)

Page 20: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Don’t forget to save the proof

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).20

Page 21: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Can you use RODIN to check equivalence of these axioms?

1. Male∩ Female =∅

2. Female = PERSON∖ Male

3. Male = PERSON \ Female

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).21

We have already proven that 1 => 2

Question: what else do we need to prove?

Page 22: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Let’s add some more sets to our context.

Imagine that we wish to build a context that models family relations

The types of concepts that we need are:

•Mother,•Father,•Parent,

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).22

•Parent,•Child,•Brother,•Sister,•Sibling,•Ancestor,•Descendant

TO DO: See how many of these you can model using just sets

Page 23: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Parents – the set of people who are mothers or fathers is pretty easy, eg:

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).23

But, it is not clear how to model the other concepts (if it isindeed possible) without introducing relations between sets

Page 24: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS

If a set A is given explicitly, it is immaterial in which order the elements of A are listed, e.g. the set {x, y} is the same as the set {y, x}. In many instances, however, one would like, and, indeed, needs, to have someorderin the appearance of the elements.

We needto capture the notion of orderingusingSet syntaxand

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.24

We needto capture the notion of orderingusingSet syntaxand semantics.

Page 25: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS

Definition Let A be a set:

1. A is called a singletonif A = {x} for some x, i.e. if A has exactly one element.

2. A is called an unordered pair, if A = {x, y} for some x, y, if A has exactly two elements.

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.25

has exactly two elements.

3. A is called an ordered pairif A = {{x}, {x, y}} for some x, y.

We shall usually abbreviate the right hand expression by<x, y> = {{x}, {x, y}}

Page 26: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS

The decisive property of ordered pairsis that two ordered pairs are equal if the respective components are the same.

TheoremLet <a, b> and <c, d> be ordered pairs.

Then <a, b> = <c, d> if and only ifa = c and b = d.

Remark. The expression “if and only if” means that

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.26

Remark. The expression “if and only if” means that1. If <a, b> = <c, d>, then a = c and b = d.2. If a = c and b = d, then <a, b> = <c, d>

So, we have to prove two directions, namely 1. and 2.

Usually, “if and only if” is abbreviated as simply “iff ”.

QUESTION: Can you prove this?

Page 27: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS

Definition The Cartesian (or cross-) productA × B of two sets is defined as:

A × B = {<a, b> : a ∈A, b ∈ B}

This definition can be generalised to more than 2 sets (but we wont do this at the moment)

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.27

this at the moment)

QUESTION: •Is it possible that A × B = B × A? •If A has n elements and B has m elements, how many elements does A × B have?

Page 28: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS

Definition

Any subset of A × B is called a relation between A and B

Any subset of A × A is called a relation on A

Since a relation R on A is a subset of A × A, it is an element of the⊆

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.28

Since a relation R on A is a subset of A × A, it is an element of thepowerset of A × A, i.e. R ⊆ Þ(A × A).

If R is a relation on A and <x, y> ∈ R,then we also write:

• xRy, read as “x is in R-relation to y”, or simply• x is in relation to y, if R is understood.

Page 29: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS: pictorial representations

For small sets we can use a pictorial representation of relation R on A

Sketch two copies of A and, if xRy then draw an arrow from the x in the left sketch to the y in the right sketch.

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.29

Example,

Let A = {a, b, c, d, e}, and

R = {<a, a> , <a,c>, <c,a>, <d,b>, <d,d>}

a

b

c

d

e

a

b

c

d

e

Page 30: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS: definitions

Definition. Let R be a relation on A. Then,

domR= {x ∈A : There exists some y ∈A such that <x, y>∈ R}.domR is called the domainof R.

ranR= {y ∈A : There exists some x ∈A such that hx, yi ∈ R}is called the rangeof R.

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.30

∈ ∈ ∈

Finally, fldR = domR ∪ ranR is called the field of R.

Note: •domR, ranR, and fldR are all subsets of A.•Sometimes they are written dom, ran and fld (when R is implicit in context of use)

Page 31: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS: definitions

Definition . Let R be a relation on A. Then,

R˘ = {<y, x> : <x, y> ∈ R} is called the converseof R.

We obtain the converse R˘ of R if we turn around all the ordered pairs of R, ie if we have a pictorial representation of R, this means that all existing arrows are reversed.

R R˘

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.31

a

b

c

d

e

a

b

c

d

e

R R˘a

b

c

d

e

a

b

c

d

e

Page 32: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS: definitions

Definition : composition

Let R and S be relations on A; then

R ◦ S = {<x, z> : there is a y ∈A such that xRy and ySz}.

The operation ◦ is called the compositionor the relative productof R and S.

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.32

and S.

Page 33: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS:

Ordering relation example

let A = N and let R be the relation defined by <x, y> ∈ R iff x ≤ y; we note that ≤ (or R) has the properties that for all x, y, z ∈ N:

1. x ≤ x,2. If x ≤ y and y ≤ x then x = y,3. If x ≤ y and y ≤ z then x ≤ z,

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.33

3. If x ≤ y and y ≤ z then x ≤ z,4. x ≤ y or y ≤ x, i.e. any two elements of N are comparable with respect to ≤.

Page 34: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS: ordering definitions

1. R is reflexiveif <x, x> ∈ R for all x ∈A.2. R is antisymmetricif for all x, y ∈A, <x, y> ∈ R and <y, x> ∈ R implies x = y.3. R is transitiveif for all x, y, z ∈A, <x, y> ∈ R and <y, z> ∈ R implies <x, z> ∈ R.4. R is a partial orderon A, if R is reflexive, antisymmetric, and transitive.

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.34

Sometimes we will call a partial order on A just an order on A, or an ordering of A.

5. R is a linear orderon A if R is a partial order, and xRy or yRx for all x, y ∈A, i.e. if any two elements of A are comparable with respect to R.

Page 35: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS: ordering definitions

If R is an ordering relation on A, then we usually write ≤ (or a similar symbol) for R, i.e.

x ≤ y iff xRy

If ≤ is a partial orderon A, then we call the pair <A, ≤ > apartially ordered set, or just an ordered set.

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.35

Furthermore, if ≤ is a linear order, then<A, ≤ > is called a linearly orderedset or a chain.

PROBLEM:Let A = {1, 2, . . . , 10} and define the relation # on A by x#y iff xis a multiple of y. Show that # is a partial order on A and draw its diagram

Page 36: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS: Equivalence Relations

Definition : A relation R on a set A is called symmetricif <a, b> ∈ R implies <b, a>R for all a, b ∈A;

in other words, R is symmetricif R = R˘.

Definition R is called an equivalencerelation if R is reflexive, transitive and symmetric

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.36

transitive and symmetric

The importance of equivalence relations lies in the fact that they induce a grouping of the base set into subsets.

Page 37: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

RELATIONS: Equivalence Relations

Definition : Let A be a non-empty set. A family P of non-empty subsets of A is called a partitionof A, if every element of A is in exactly one element of P.

In other words,

1. For all S, T ∈ P we have S ∩ T = ∅,2. The union of all elements of P is A.

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.37

∈ ∅

2. The union of all elements of P is A.

The elements of the partition are called the classesof P. A partitionof A is also called a classification.

If P is a partition of A, and if its classes are defined by certain properties, then each element of a specific class has the property which defines the class; in other words all the elements of a class are indistinguishable or equivalent with respect to the defining property of the class.

Page 38: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

FUNCTIONS

Definition : A function is an ordered triple <f, A, B> such that:

1. A and B are sets, and f ⊆A × B,

2. For every x ∈A there is some y ∈ B such that <x, y> ∈ f

3. If <x, y> ∈ f and <x, z> ∈ f, then y = z; in other words, the assignment is unique in the sense that an x ∈A is assigned at

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.38

∈ ∈

assignment is unique in the sense that an x ∈A is assigned at most one element of B.

A is called the domainof f, and B its codomain.

Page 39: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

FUNCTIONS

Definition :

A partial functionfrom X to Y is a function f: X' → Y, where X' is a subset of X.

It generalizes the concept of a function by not forcing f to map every element of X to an element of Y (only some subset X’ ⊆ X).

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.39

If X' = X, then f is called a total function and is equivalent to a function (as defined previously).

Partial functions are often used when the exact domain, X' , is not known .

Page 40: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

FUNCTIONS

Notation:

It is customary to write the function <f, A,B> as

f : A → B

Also, if <x, y> ∈ f, then we will usually write

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.40

y = f(x)

and call y the imageof x under f.

The set {y ∈ B : There is an x ∈A such that y = f(x)} is called the rangeof f.

Page 41: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

FUNCTIONS

If for a function f : A → B it is clear what A and B are, we sometimes call the function simply f, but we must keep in mind that a function is only properly defined if we also give a domain and a codomain!

Definition Let f : A → B be a function.

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.41

Definition Let f : A → B be a function.

1. If A = B and f(x) = x for all x ∈A, the f is called the identityfunction on A, and it is denoted by idA

Page 42: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

FUNCTIONS

Definition Let f : A → B be a function.

If A ⊆ B and f(x) = x for all x ∈A, then f is called the inclusionfunction from A to B, or, if no confusion can arise, simply the inclusion.

If A = B and f is the inclusion, then f is in fact the identity on A.

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.42

If A = B and f is the inclusion, then f is in fact the identity on A.

Page 43: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

FUNCTIONS

Definitions Let f : A → B be a function.

If f(x) = x for some x ∈A, then x is called a fixed pointof f.

If f(x) = b for all x ∈A, then f is called a constant function.

If g : C → D is a function such that A ⊆ C, B ⊆ D, and f ⊆ g,

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.43

If g : C → D is a function such that A ⊆ C, B ⊆ D, and f ⊆ g, then g is called an extensionof f over C, and f is called the restrictionof g to A.

Page 44: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

FUNCTIONS

Definition

Let f : A → B and g : C → D be functions such that

ran f ⊆ dom g.

Then the function g ◦f : A → C defined by (g ◦ f )(x) = g(f(x)) is

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.44

Then the function g ◦f : A → C defined by (g ◦ f )(x) = g(f(x)) is called the (functional) compositionof f and g.

Lemma Let f : A → B, g : B → C, h : C → D be functions. Then,h ◦ (g ◦ f) = (h ◦ g) ◦ f,

i.e. the composition of functions is associative

Page 45: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

FUNCTIONS

Definitions Let f : A → B

f is called ontoor surjectiveif codom f = ran f. If f is surjective, we sometimes indicate this by writing

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.45

f is called one–one or injectiveif for all x, y ∈A, f(x) = f(y) impliesx = y. If f is injective, we sometimes indicate this by writing

f is called bijectiveif f is onto and one-one

Page 46: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

FUNCTIONS

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.46

QUESTION: Give an example of these types of function over the sets of people

Page 47: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

FUNCTIONS

Definition Let f : A → B and g : B → A be functions;

g is called the inverse of f, if g(f(x)) = x for all x ∈A.

It is often written as:

In other words, g is an inverse of f, if and only if g ◦ f = id

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.47

In other words, g is an inverse of f, if and only if g ◦ f = idA

Theorem f : A → B has an inverse if and only if f is injective

Page 48: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

FUNCTIONS

Definition

Let A = {1, 2, 3, . . . , n}, and f : A → A be a bijective function;

then f is called a permutationon n.

QUESTION: for a set with N elements then how many permutations exist?

2009: J Paul Gibson TSP: Mathematical Foundations MAT7003/SetsFnsRelations.48

permutations exist?

CODING TASK: Write a program to generate all the permutations of a set of integers, and to count the number generated. Does your program verify your answer to the question, above?

Page 49: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

Let us return to the family in RODIN to try and model the relationships

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).49

Page 50: Sets and Relations (Using RODIN) - TELECOM SudParisgibson/Teaching/MAT7003/L3... · intuitive is the RODIN user interface for beginners? 2012: J Paul Gibson TSP: Mathematical Foundations

TO DO (before next week):

Attempt to add new family relations to the axioms

Attempt to introduce new theorems

Can the RODIN prover dischargethe proof obligations

2012: J Paul Gibson TSP: Mathematical Foundations MAT7003/Sets And Relations (Using Event-B).50

Can the RODIN prover dischargethe proof obligations automatically?

A sample solution to this problemwill be put on-line before the next session; but you should try it for yourselves.