<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/w/index.php?action=history&amp;feed=atom&amp;title=Contraction_principle_%28large_deviations_theory%29</id>
	<title>Contraction principle (large deviations theory) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/w/index.php?action=history&amp;feed=atom&amp;title=Contraction_principle_%28large_deviations_theory%29"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Contraction_principle_(large_deviations_theory)&amp;action=history"/>
	<updated>2026-08-01T02:09:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.47.0-wmf.7</generator>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Contraction_principle_(large_deviations_theory)&amp;diff=255790&amp;oldid=prev</id>
		<title>en&gt;Monkbot: /* References */Task 3: Fix CS1 deprecated coauthor parameter errors</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Contraction_principle_(large_deviations_theory)&amp;diff=255790&amp;oldid=prev"/>
		<updated>2014-05-07T01:43:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;References: &lt;/span&gt;Task 3: Fix &lt;a href=&quot;/w/index.php?title=Help:CS1_errors&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Help:CS1 errors (page does not exist)&quot;&gt;CS1 deprecated coauthor parameter errors&lt;/a&gt;&lt;/p&gt;
&lt;a href=&quot;https://en.formulasearchengine.com/w/index.php?title=Contraction_principle_(large_deviations_theory)&amp;amp;diff=255790&amp;amp;oldid=17974&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>en&gt;Monkbot</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Contraction_principle_(large_deviations_theory)&amp;diff=17974&amp;oldid=prev</id>
		<title>en&gt;Sodin: added Category:Probability theorems using HotCat</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Contraction_principle_(large_deviations_theory)&amp;diff=17974&amp;oldid=prev"/>
		<updated>2011-10-13T16:57:16Z</updated>

		<summary type="html">&lt;p&gt;added &lt;a href=&quot;/w/index.php?title=Category:Probability_theorems&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Category:Probability theorems (page does not exist)&quot;&gt;Category:Probability theorems&lt;/a&gt; using &lt;a href=&quot;/w/index.php?title=WP:HC&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:HC (page does not exist)&quot;&gt;HotCat&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;In [[database theory]], a &amp;#039;&amp;#039;&amp;#039;conjunctive query&amp;#039;&amp;#039;&amp;#039; is a restricted form of [[first-order logic|first-order]] queries. Many first-order queries can be written as conjunctive queries.  In particular, a large part of queries issued on [[relational database]]s can be expressed in this way.  Conjunctive queries also have a number of desirable theoretical properties that larger classes of queries (e.g., the [[relational algebra]] queries) do not share.&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
The conjunctive queries are simply the fragment of (domain independent) [[first-order logic]] given by the set of&lt;br /&gt;
formulae that can be constructed from [[atomic formula]]e using [[Logical conjunction|conjunction]] &amp;lt;math&amp;gt;\wedge&amp;lt;/math&amp;gt; and&lt;br /&gt;
[[existential quantification]] &amp;lt;math&amp;gt;\exists&amp;lt;/math&amp;gt;, but not using [[disjunction]] &amp;lt;math&amp;gt;\lor&amp;lt;/math&amp;gt;, [[negation]] &amp;lt;math&amp;gt;\neg&amp;lt;/math&amp;gt;,&lt;br /&gt;
or [[universal quantification]] &amp;lt;math&amp;gt;\forall&amp;lt;/math&amp;gt;.&lt;br /&gt;
Each such formula can be rewritten (efficiently) into an equivalent formula in [[prenex normal form]], thus this form is usually simply assumed.&lt;br /&gt;
&lt;br /&gt;
Thus conjunctive queries are of the following general form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;(x_1, \ldots, x_k).\exists x_{k+1}, \ldots x_m. A_1 \wedge \ldots \wedge A_r&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
with the [[Free variables and bound variables|free variables]] &amp;lt;math&amp;gt;x_1, \ldots, x_k&amp;lt;/math&amp;gt; being called distinguished variables, and the [[Free variables and bound variables|bound variables]] &amp;lt;math&amp;gt;x_{k+1}, \ldots, x_m&amp;lt;/math&amp;gt; being called undistinguished variables. &amp;lt;math&amp;gt;A_1, \ldots, A_r&amp;lt;/math&amp;gt; are [[atomic formula]]e. Conjunctive queries without distinguished variables are called [[boolean conjunctive query|boolean conjunctive queries]].&lt;br /&gt;
&lt;br /&gt;
As an example of why the restriction to domain independent first-order logic is important,  consider &amp;lt;math&amp;gt;x_1.\exists x_2. R(x_2)&amp;lt;/math&amp;gt;, which is not domain independent; see [[Codd&amp;#039;s theorem]].  This formula cannot be implemented in the select-project-join fragment of relational algebra, and hence should not be considered a conjunctive query.&lt;br /&gt;
&lt;br /&gt;
Conjunctive queries can express a large part of queries, which are frequently issued on [[relational database]]s. To give an example, imagine a relational database for storing information about students, their address, the courses they visit and their gender. Finding all male students and their addresses who attend a course that is also attended by a female student is expressed by the following conjunctive query:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  (student, address) . &amp;lt;math&amp;gt;\exists&amp;lt;/math&amp;gt;(student2, course) .&lt;br /&gt;
     attends(student, course) &amp;lt;math&amp;gt;\wedge&amp;lt;/math&amp;gt; gender(student, &amp;#039;male&amp;#039;) &amp;lt;math&amp;gt;\wedge&amp;lt;/math&amp;gt; &lt;br /&gt;
     attends(student2, course) &amp;lt;math&amp;gt;\wedge&amp;lt;/math&amp;gt;&lt;br /&gt;
     gender(student2, &amp;#039;female&amp;#039;) &amp;lt;math&amp;gt;\wedge&amp;lt;/math&amp;gt; lives(student, address)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since the only entity of interest is the male student and his address, these are the only distinguished variables, while the variables &amp;lt;code&amp;gt;course&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;student2&amp;lt;/code&amp;gt; are only [[existential quantification|existentially quantified]], i.e. undistinguished.&lt;br /&gt;
&lt;br /&gt;
==Relationship to other query languages==&lt;br /&gt;
Conjunctive queries also correspond to select-project-join queries in [[relational algebra]] (i.e.,&lt;br /&gt;
relational algebra queries that do not use the operations union or difference) and to select-from-where queries in [[SQL]] in which the where-condition uses exclusively conjunctions of atomic equality conditions, i.e. conditions constructed from column names and constants using no comparison operators other than &amp;quot;=&amp;quot;, combined using &amp;quot;and&amp;quot;. Notably, this excludes the use of aggregation and subqueries. For example, the above query can be written as an SQL query of the conjunctive query fragment as&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  select l.student, l.address&lt;br /&gt;
  from attends a1, gender g1,&lt;br /&gt;
       attends a2, gender g2,&lt;br /&gt;
       lives l&lt;br /&gt;
  where a1.student=g1.student&lt;br /&gt;
  and   a2.student=g2.student&lt;br /&gt;
  and   l.student=g1.student&lt;br /&gt;
  and   a1.course=a2.course&lt;br /&gt;
  and   g1.gender=&amp;#039;male&amp;#039;&lt;br /&gt;
  and   g2.gender=&amp;#039;female&amp;#039;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conjunctive queries and datalog==&lt;br /&gt;
Besides their logical notation, conjunctive queries can also be written as [[datalog]] rules. Many authors in fact prefer the following datalog notation for the query above:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  result(student, address) :- attends(student, course),  gender(student, male),&lt;br /&gt;
                              attends(student2, course), gender(student2, female),&lt;br /&gt;
                              lives(student, address).&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although there are no quantifiers in this notation, variables appearing in the head of the rule are still implicitly [[universal quantification|universally quantified]], while variables only appearing in the body of the rule are still implicitly existentially quantified.&lt;br /&gt;
&lt;br /&gt;
While any conjunctive query can be written as a datalog rule, not every datalog program can be written as a conjunctive query. In fact, only single rules over extensional predicate symbols can be easily rewritten as an equivalent conjunctive query. The problem of deciding whether for a given datalog program there is an equivalent [[recursion|nonrecursive program]] (corresponding to a positive relational algebra query, or, equivalently, a formula of positive existential [[first-order logic]], or, as a special case, a conjunctive query) is known as the [[datalog boundedness]] problem and is undecidable.&amp;lt;ref&amp;gt;[[Gerd G. Hillebrand]], [[Paris C. Kanellakis]], [[Harry G. Mairson]], [[Moshe Y. Vardi]]: Undecidable Boundedness Problems for Datalog Programs. J. Log. Program. 25(2): 163-190 (1995)&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Extensions of conjunctive queries==&lt;br /&gt;
Extensions of conjunctive queries capturing more [[expressive power]] include unions of conjunctive queries, which are equivalent to positive (i.e., [[negation]]-free) [[relational algebra]], conjunctive queries extended by union and [[negation]], which by [[Codd&amp;#039;s theorem]] correspond to [[relational algebra]] and [[first-order logic]], conjunctive queries with built-in predicates and conjunctive queries with [[aggregate function]]s. The formal study of all of these extensions is justified by their application in [[relational databases]] and is in the realm of [[database theory]].&lt;br /&gt;
&lt;br /&gt;
==Complexity of conjunctive queries==&lt;br /&gt;
For the study of the [[computational complexity]] of evaluating conjunctive queries, two problems have to be distinguished. The first is the problem of evaluating a conjunctive query on a [[relational database]] where both the query and the database are considered part of the input. The complexity of this problem is usually referred to as &amp;#039;&amp;#039;&amp;#039;combined complexity&amp;#039;&amp;#039;&amp;#039;, while the complexity of the problem of evaluating a query on a relational database, where the query is assumed fixed, is&lt;br /&gt;
called &amp;#039;&amp;#039;&amp;#039;data complexity&amp;#039;&amp;#039;&amp;#039;.&amp;lt;ref&amp;gt;{{Citation | last=Vardi | first=Moshe Y. | authorlink=Moshe Y. Vardi | contribution=The Complexity of Relational Query Languages (Extended Abstract) | series=STOC &amp;#039;82: Proceedings of the fourteenth annual ACM symposium on Theory of computing | year=1982 | pages=137–146 | contribution-url=http://www.cs.rice.edu/~vardi/papers/stoc82.pdf.gz | doi=10.1145/800070.802186}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Conjunctive queries are [[NP-complete]] with respect to combined complexity,&amp;lt;ref&amp;gt;[[Ashok K. Chandra]] and [[Philip M. Merlin]], 1977. &amp;#039;&amp;#039;Optimal Implementation of Conjunctive Queries in Relational Data Bases&amp;#039;&amp;#039;. STOC &amp;#039;77: Proceedings of the ninth annual ACM symposium on Theory of computing [http://portal.acm.org/citation.cfm?id=803397&amp;amp;coll=portal&amp;amp;dl=ACM]&amp;lt;/ref&amp;gt; while the data complexity of conjunctive queries is very low, in the parallel complexity class [[AC0]], which is contained in [[LOGSPACE]] and thus in [[polynomial time]]. The [[NP-hard]]ness of conjunctive queries may appear surprising, since [[relational algebra]] and [[SQL]] strictly subsume the conjunctive queries and are thus at least as hard (in fact, relational algebra is [[PSPACE]]-complete with respect to combined complexity and is therefore even harder under widely held complexity-theoretic assumptions). However, in the usual application scenario, databases are large, while queries are very small, and the data complexity model may be appropriate for studying and describing their difficulty.&lt;br /&gt;
&lt;br /&gt;
==Formal properties of conjunctive queries==&lt;br /&gt;
Conjunctive queries are one of the great success stories of [[database theory]] in that many interesting problems that are computationally hard or [[undecidability|undecidable]] for larger classes of queries are feasible for conjunctive queries.&amp;lt;ref name=&amp;quot;AHV&amp;quot;&amp;gt;[[Serge Abiteboul]], [[Richard B. Hull]], [[Victor Vianu]]: Foundations of Databases. Addison-Wesley, 1995.&amp;lt;/ref&amp;gt; For example, consider the query containment problem. We write &amp;lt;math&amp;gt;R \subseteq S&amp;lt;/math&amp;gt; for two [[database relation]]s &amp;lt;math&amp;gt;R, S&amp;lt;/math&amp;gt; of the same [[database schema|schema]] if and only if each tuple occurring in &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; also occurs in &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;. Given a query &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; and a [[relational database]] instance &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt;, we write the result relation of evaluating the query on the instance simply as &amp;lt;math&amp;gt;Q(I)&amp;lt;/math&amp;gt;. Given two queries &amp;lt;math&amp;gt;Q_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;Q_2&amp;lt;/math&amp;gt; and a [[database schema]], the query containment problem is the problem of deciding whether for all possible database instances &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; over the input database schema, &amp;lt;math&amp;gt;Q_1(I) \subseteq Q_2(I)&amp;lt;/math&amp;gt;. The main application of query containment is in query optimization: Deciding whether two queries are equivalent is possible by simply checking mutual containment.&lt;br /&gt;
&lt;br /&gt;
The query containment problem is undecidable for [[relational algebra]] and [[SQL]] but is decidable and [[NP-complete]] for conjunctive queries. In fact, it turns out that the query containment problem for conjunctive queries is exactly the same problem as the query evaluation problem.&amp;lt;ref name=&amp;quot;AHV&amp;quot;/&amp;gt; Since queries tend to be small, [[NP-completeness]] here is usually considered acceptable.  The query containment problem for conjunctive queries is also equivalent to the [[constraint satisfaction problem]].&amp;lt;ref&amp;gt;{{Citation&lt;br /&gt;
| last = Kolaitis&lt;br /&gt;
| first = Phokion G.&lt;br /&gt;
| last2 = Vardi&lt;br /&gt;
| first2 = Moshe Y.&lt;br /&gt;
| title = Conjunctive-Query Containment and Constraint Satisfaction&lt;br /&gt;
| journal = Journal of Computer and System Sciences&lt;br /&gt;
| volume = 61&lt;br /&gt;
| pages = 302–332&lt;br /&gt;
| year = 2000&lt;br /&gt;
| doi = 10.1006/jcss.2000.1713}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An important class of conjunctive queries that have polynomial-time combined complexity are the &amp;#039;&amp;#039;&amp;#039;acyclic&amp;#039;&amp;#039;&amp;#039; conjunctive queries.&amp;lt;ref&amp;gt;[[Mihalis Yannakakis]]: Algorithms for Acyclic Database Schemes . Proc. VLDB 1981: 82-94.&amp;lt;/ref&amp;gt; The query evaluation, and thus query containment, is [[LOGCFL]]-complete and thus in [[polynomial time]].&amp;lt;ref&amp;gt;[[Georg Gottlob]], [[Nicola Leone]], and [[Francesco Scarcello]] (2001). &amp;quot;The complexity of acyclic conjunctive queries&amp;quot;. Journal of the ACM (JACM) 48 (3): 431–498. {{doi|10.1145/382780.382783}}.&amp;lt;/ref&amp;gt; Acyclicity of conjunctive queries is a structural property of queries that is defined with respect to the query&amp;#039;s [[hypergraph]]:&amp;lt;ref name=&amp;quot;AHV&amp;quot;/&amp;gt; a conjunctive query is acyclic if and only if it has hypertree-width 1. For the special case of conjunctive queries in which all relations used are binary, this notion corresponds to the treewidth of the [[dependency graph]] of the variables in the query (i.e., the graph having the variables of the query as nodes and an undirected edge &amp;lt;math&amp;gt;\{x,y\}&amp;lt;/math&amp;gt; between two variables if and only if there is an atomic formula &amp;lt;math&amp;gt;R(x,y)&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;R(y,x)&amp;lt;/math&amp;gt; in the query) and the conjunctive query is acyclic if and only if its dependency graph is [[Graph (mathematics)|acyclic]].&lt;br /&gt;
&lt;br /&gt;
An important generalization of acyclicity is the notion of [[hypertree decomposition|bounded hypertree-width]], which is a measure of how close to acyclic a hypergraph is, analogous to bounded [[treewidth]] in [[graph (mathematics)|graphs]]. Conjunctive queries of bounded tree-width have [[LOGCFL]] combined complexity.&amp;lt;ref&amp;gt;[[Georg Gottlob]], [[Nicola Leone]], and [[Francesco Scarcello]]: Hypertree Decompositions and Tractable Queries. J. Comput. Syst. Sci. 64(3): 579-627 (2002)&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unrestricted conjunctive queries over tree data (i.e., a relational database consisting of a binary child relation of a tree as well as unary relations for labeling the tree nodes) have polynomial time combined complexity.&amp;lt;ref&amp;gt;[[Georg Gottlob]], [[Christoph Koch]], [[Klaus U. Schulz]]: Conjunctive queries over trees. J. ACM 53(2): 238-272 (2006)&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6V1G-43G4RRN-2&amp;amp;_user=5423704&amp;amp;_coverDate=05/28/2000&amp;amp;_rdoc=2&amp;amp;_fmt=summary&amp;amp;_orig=browse&amp;amp;_srch=doc-info(%23toc%235674%232000%23997609997%23255297%23FLP%23display%23Volume)&amp;amp;_cdi=5674&amp;amp;_sort=d&amp;amp;_docanchor=&amp;amp;_ct=8&amp;amp;_acct=C000007438&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=5423704&amp;amp;md5=adc35b17aaf28963cc6925a017813785 Ullman, J. D. &amp;#039;&amp;#039;Information integration using logical views Theoretical Computer Science&amp;#039;&amp;#039;, 2000, 239, 189-210]&lt;br /&gt;
&lt;br /&gt;
*[[Georg Gottlob]], [http://www.dis.uniroma1.it/~lenzerin/homepagine/didattica/viewbasedqueryprocessing/ConjunctiveQueries.pdf Presentation on structural decomposition methods for the efficient evaluation of conjunctive queries (PDF)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Database theory]]&lt;/div&gt;</summary>
		<author><name>en&gt;Sodin</name></author>
	</entry>
</feed>