The theory of query processing in data integration systems is commonly expressed using conjunctive queries and Datalog, a purely declarative logic programming language. One can loosely think of a conjunctive query as a logical function applied to the relations of a database such as "formula_28 where formula_29 contains another query formula_30 (denoted formula_31) if the results of applying formula_30 are a subset of the results of applying formula_33 for any database. The two queries are said to be equivalent if the resulting sets are equal for any database. This is important because in both GAV and LAV systems, a user poses conjunctive queries over a "virtual" schema represented by a set of views, or "materialized" conjunctive queries. Integration seeks to rewrite the queries represented by the views to make their results equivalent or maximally contained by our user's query. This corresponds to the problem of answering queries using views (AQUV).