Let f : A -> B be an injective (one-to-one) function. Define g : 2^A -> 2^B as: g(C) = {f(x) | x in C}, for all subsets C of A. Define h : 2^B -> 2^A as: h(D) = {x | x in A, f(x) in D}, for all subsets D of B. Which of the following statements is always true? A. g(h(D)) subseteq D B. g(h(D)) supseteq D C. g(h(D)) intersect D = phi D. g(h(D)) intersect (B - D) != phi
GATE 2003 · Discrete Mathematics · Functions · hard
Answer: g(h(D)) subseteq D always holds, so the answer is Option A.
Unfold the definitions of g and h: By definition h(D) = {x in A : f(x) in D}. Take any element y in g(h(D)); then y = f(x) for some x in h(D), and x in h(D) means f(x) in D. So y = f(x) is in D. Since every element of g(h(D)) lies in D, we get g(h(D)) subseteq D.
Reject the other options: B (g(h(D)) supseteq D) fails: if D contains an element b in B that is not an image of any x (b not in f[A]), then b is never recovered, so D is not contained in g(h(D)). C (g(h(D)) intersect D = phi) fails: pick any b = f(x) in D, then b in g(h(D)) and b in D, so the intersection is non-empty. D (g(h(D)) intersect (B - D) != phi) fails: by Step 1, g(h(D)) subseteq D, so it is disjoint from B - D, making the intersection empty. Only A survives.