Presentation is loading. Please wait.

Presentation is loading. Please wait.

Functions. A function between two sets is a relation between those sets that has a special property, namely that each member of the from-set is related.

Similar presentations


Presentation on theme: "Functions. A function between two sets is a relation between those sets that has a special property, namely that each member of the from-set is related."— Presentation transcript:

1 Functions

2 A function between two sets is a relation between those sets that has a special property, namely that each member of the from-set is related to at most one member of the to-set. Functions Ipoh Kota Bharu Alor Star Seremban Pasir Mas Kangar Perak Kelantan Kedah Neg. Sembilan cities states isin

3 Partial Function From the diagram the city can only be in one state; there is only one arrow connecting it The domain of the function need not be the whole of the from-set

4 Partial Function : Examples Isin : cities ↛ states Lent_to is a function that allows a book to be borrowed by only one person at a time can be declared as Lent_to : Book ↛ Person The type of Lent_to is p (Book  Person) The predicate Book ↛ Person  Book  Person formalizes the fact that every function from Book to Person is also a relation. Lent_to : Book ↛ Person Lent_to = {r : Book  Person |  b : Book; p, q : Person  (( b r p  b r q )  p = q ))}

5 Partial Function : Example

6 Some notes Domain, range, domain restriction, range restriction, domain subtraction, range subtraction, inverse, composition apply to functions Inverse of a function may not be a function Union, intersection, difference can be used for functions Union of two functions might not be a function

7 Function definition by lambda abstraction

8 Lambda expression is equivalent to function described by set expression x : T | pred term is equivalent to {x : T | pred x ↦ term} Example : function which maps any number of which is less than 5 to its square n :  | n < 5 n 2 can also be written as {n :  | n < 5 n ↦ n 2 }

9 Function application Since a function maps each element of its domain to one range element we use the notation f x to denote for any x in the domain of f the unique range element to which f maps x Example: let Lent_to : Book ↛ Person suppose b : Book is in the domain Lent_to then we apply Lent_to to b by writing Lent_to b this denote the person to whom the book b has been lent. b is called the argument of the function application. Lent_to b is the value of for argument b

10 Examples Definition by set comprehension isqrt : { n :  | n  0  n 2 ↦ n } we would have isqrt 9 = 3 or we don’t have the function name { n :  | n  0  n 2 ↦ n } 9 = 3

11 Total Functions A function is total function when its domain is the whole of its from- set

12 Total Functions - example Suppose we define a new relation relating each Potter to their age in years: ageofPotter : Potters   it is a function since each Potter is related to only one number. every Potter has an age so the domain of this function is the whole of the from-set. This means the function is total We use → to denote total function Example: we would declare ageofPotter : Potters → 

13 Toolkit functions

14

15

16

17

18 Function Overriding

19

20

21

22 Another example Suppose the present value of Lent_to function is given by the following set enumeration old == {29 ↦ joe, 567 ↦ sue, 49 ↦ joe, 1022 ↦ les} suppose certain amendments are to be incorporated by the following set enumeration new == {29 ↦ jim, 95 ↦ joe} if we have old ⊕ new then the result will be {29 ↦ jim, 95 ↦ joe, 567 ↦ sue, 49 ↦ joe, 1022 ↦ les}

23 Injective Functions If each element of the domain is mapped to a different element of the to-set, then the function is injective (partial injection or 1 to 1 function) Second members of the pairs are unique Denoted by if the domain of an injection is the whole of the from-set, we call the injection a total injection Denoted by ↣

24 Surjective functions If the range of the function is the whole of the to-set, then the function is surjective (onto) For each second member of the pairs, there is at least one first member of the pairs Notations used partial surjective total surjective

25 Bijection functions A function which is both injective and surjective is said to be bijective ( 1 to 1 correspondance) Notations used

26

27 When declaring a function in a specification the important questions to consider are as follows:  is it total or partial?  is it injective?  is it surjective?  is the source a finite set?

28 Data type definition: free type definition Suppose we have fiction and non-fiction books. The given set for them is [Non_Fiction, Fiction] let say we want to construct a type Book to cover both kinds: we define Book ::= fict > | nfict > the definition introduces: 1) the new type Book 2) two construct functions fict and nfict > is called disjoint union bracket

29 Data type definition: free type definition The above definition is equivalent to: 1) [Book] 2) fict : Fiction ↣ Book 3) nfict : Non_Fiction ↣ Book 4) ran fict  ran nfict =  5) Book = ran fict  ran nfict Given this declaration f : Fiction; Lent_to : Book ↛ Person The person who has borrowed f is Lent_to (fict f)


Download ppt "Functions. A function between two sets is a relation between those sets that has a special property, namely that each member of the from-set is related."

Similar presentations


Ads by Google