### Problem 1 (15 pts.)

Consider the conjunctive queries A and B.
``` A: p(X,Y) :- q(X,Z) & q(Z,T) & r(T,Y). B: ```
``` p(X,Z) :- q(X,X) & r(X,Z). ```
Is A contained in B? Is B contained in A? Justify your answers by offering containment mappings or showing that none exists.

### Problem 2 (20 pts.)

Consider the infinite sequence of conjunctive queries Q1, Q2, ..., where Qi is:
``` ```
``` q(X) :- arc(X,Z1) & arc(Z1,Z2) & ... & arc(Z{i-1},Zi) & arc(Zi,X). ```
Note that Qi represents (not necessarily simple) cycles of length i+1 in a directed graph. Find all containments among the Q's.

### Problem 3 (15 pts.)

Consider the conjunctive queries A and B.
``` A: p(X) :- q(X,Y,X) & q(X,Z,Y) & r(Y,X). B: ```
``` p(X) :- q(X,Y,Z) & r(Y,Z). ```
Show that A is contained in B by using the method of canonical databases.

### Problem 4 (30 pts.)

Consider the conjunctive queries A and B.
``` A: p(X) :- q(X,Y) & r(Y,Z) & s(Z,W) & s(X,Z). B: ```
``` p(X) :- q(X,Y) & q(X,Z) & r(Y,Z) & r(Z,Y) & s(Y,Z) & s(X,Y). ```
Test whether B is contained in A by using Saraiya's containment test. However, you must start by mapping q(X,Y) to q(X,Y) (this requirement is to make sure that you go through the major steps of the algorithm). Indicate at each step what inferences are made.

### Problem 5 (20 pts.)

Find all equivalences and containments among the four conjunctive queries below. Note that c is a constant in Q4.
``` Q1: p(X,Y) :- q(X,A) & q(A,B) & q(B,Y). Q2: p(X,Y) :- q(X,A) & q(A,B) & q(B,C) & q(C,Y). Q3: p(X,Y) :- q(X,A) & q(B,C) & q(D,Y) & q(X,B) & q(A,C) & q(C,Y). Q4: ```
``` p(X,Y) :- q(X,A) & q(A,c) & q(c,B) & q(B,Y). ```