210 likes | 328 Vues
This lecture covers the foundational concepts of set theory and functions, crucial to understanding computer science. Key topics include the definition of sets, subsets, power sets, and operations such as union, intersection, and complement. We delve into bitwise operations with characteristic vectors, and their applications in cryptography. The session aims to establish a formal understanding of these mathematical constructs and their significance in logic and computer science, complete with examples and proofs to clarify concepts.
E N D
CSE 311: Foundations of Computing Fall 2013 Lecture 9: Set theory and functions
announcements Reading assignment Set theory 2.1-2.3 (both editions)
set theory • Formal treatment dates from late 19th century • Direct ties between set theory and logic • Important foundational language
definition: a set is an unordered collection of objects : “x is an element of A” “x is a member of A” “x is in A” : () Give some examples: Finite sets, Multiple domains N, Z, Q, R Emptyset Sets containing sets
definitions • A and B are equal if they have the same elements • A is a subset of B if every element of A is also in B A = B x (x A x B) A B x (x A x B) A B
empty set and power set • Empty set does not contain any elements • Power set of a set A = set of all subsets of A
set operations union intersection set difference symmetric difference (with respect to universe U) complement
it’s Boolean algebra again • Definition for based on • Definition for based on • Complement works like
De Morgan’s Laws Proof technique: To show C = D show x C x D and x D x C Prove A B = A B Begin with x A B x A x B
distributive laws A B A B C C
representing sets using bits • Suppose universe is • Can represent set as a vector of bits: wherewhen when • Called the characteristic vector of set B • Given characteristic vectors for and • What is characteristic vector for ? ?
bitwise operations on vectors 01101101 Java: z=x|y00110111 01111111 00101010 Java: z=x&y 00001111 00001010 01101101 Java: z=x^y 00110111 01011010
a simple identity • If x and y are bits: (x y) y = ? • What if x and y are bit-vectors?
private key cryptography • Alice wants to communicate message secretly to Bob so that eavesdropper Eve who hears their conversation cannot tell what Alice’s message is. • Alice and Bob can get together and privately share a secret key K ahead of time.
one-time pad • Alice and Bob privately share random n-bit vector K • Eve does not know K • Later, Alice has n-bit message m to send to Bob • Alice computes C = m K • Alice sends C to Bob • Bob computes m = C K which is (m K) K • Eve cannot figure out m from C unless she can guess K
unix/linux file permissions • ls–l drwxr-xr-x ... Documents/ -rw-r--r-- ... file1 • Permissions maintained as bit vectors • Letter means bit is 1 • “--” means bit is 0.
functions review • A function from to • an assignment of exactly one element of to each element of . • We write . • “Image of a” = • Domain of: • Range of = set of all images of elements of
image, preimage 1 a b 2 c 3 d 4 e
is this a function? one-to-one?onto? 1 a b 2 c 3 d 4 e 5 6