{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $A_1, \\dots, A_n$ be [[events|031TPJVS74]] in a [[probability space|0NFPJVJJHX]].\nLet $D$ be a [[graph|00C0BR7D7H]] on the vertex set $\\set{1, \\dots, n}$.\nSuppose each $A_i$ is [[mutually independent|001B78R0DJ]] of the family of events $A_j$ with $j \\ne i$ and $j$ not adjacent to $i$.\n\n1. (General form.) Suppose there are real numbers $x_1, \\dots, x_n \\in [0, 1)$ with $\\Pr(A_i) \\le x_i \\prod_{j \\sim i} (1 - x_j)$ for each $i$, where $j \\sim i$ means that $j$ is adjacent to $i$. Then $\\Pr\\big(\\bigcap_i \\overline{A_i}\\big) \\ge \\prod_i (1 - x_i) \u003e 0$.\n2. (Symmetric form.) Suppose each vertex of $D$ has degree at most $d$, and $\\Pr(A_i) \\le p$ for each $i$, with $e \\, p \\, (d + 1) \\le 1$. Then $\\Pr\\big(\\bigcap_i \\overline{A_i}\\big) \u003e 0$.\n\n## Remarks\n\nThe proof shows by induction on $\\abs{S}$ that $\\Pr\\big(A_i \\mid \\bigcap_{j \\in S} \\overline{A_j}\\big) \\le x_i$ for each set $S$ not containing $i$ for which the conditioning event has positive probability.\nThe symmetric form follows from the general form with $x_i = 1/(d + 1)$, using $(1 - 1/(d+1))^d \\ge 1/e$.\nFor example, let $\\varphi$ be a formula in conjunctive normal form in which each clause has exactly $k$ literals on distinct variables.\nIf each clause shares variables with at most $d$ other clauses and $e (d + 1) \\le 2^k$, then $\\varphi$ is satisfiable.\nIndeed, under a uniformly random assignment each clause fails with probability $2^{-k}$.\nSome limit on dependence is needed: if $A_1$ is an event of probability $1/2$ and $A_2$ is its complement, then no outcome avoids both.\nHere $d = 1$ and $p = 1/2$, and $e p (d + 1) = e \u003e 1$.\n\n## Explanations\n\n### L1 human\n\nSuppose you want to avoid many bad events at once, and each bad event is unlikely.\nIf the events were independent, you could avoid all of them with positive probability.\nThe local lemma says that this still works when each event depends on only a few others.\nThis is often enough to prove that a good object exists.\n\n### L2 human\n\nThe local lemma is one of the main tools of the [[probabilistic method|3B55HNS754]].\nUnlike [[Boole's inequality|0EGSEE9J9R]], it can give positive probability even when the sum of the probabilities of the bad events is large.\nTypical applications are colourings of hypergraphs, satisfiability of sparse formulas, and lower bounds for Ramsey numbers.\nMoser and Tardos gave an efficient algorithm that finds an outcome avoiding all events, under the same hypotheses in the variable setting.\n",
  "commit": "5fc425f97f1f6b11da5892c2948ef8c5d8805665",
  "front": {
    "about": [
      "3B55HNS754"
    ],
    "kind": "statement",
    "msc": [
      "05D40",
      "60C05"
    ],
    "name": "Lovász local lemma",
    "role": "lemma",
    "same_as": {
      "wikidata": "Q831721",
      "wikipedia": "Lovász local lemma"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Lov%C3%A1sz_local_lemma"
      }
    ],
    "tag": "35YQ94FNV1",
    "uses": [
      "0NFPJVJJHX",
      "031TPJVS74",
      "001B78R0DJ",
      "00C0BR7D7H"
    ]
  },
  "kind": "statement",
  "link": "https://math2.tamnd.com/node/35YQ94FNV1/",
  "links": [
    {
      "field": "about",
      "target": "3B55HNS754"
    },
    {
      "field": "uses",
      "target": "0NFPJVJJHX"
    },
    {
      "field": "uses",
      "target": "031TPJVS74"
    },
    {
      "field": "uses",
      "target": "001B78R0DJ"
    },
    {
      "field": "uses",
      "target": "00C0BR7D7H"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/35YQ94FNV1.md",
  "msc": [
    "05D40",
    "60C05"
  ],
  "name": "Lovász local lemma",
  "prov": null,
  "role": "lemma",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/35Y/35YQ94FNV1.md",
  "status": null,
  "tag": "35YQ94FNV1",
  "uri": "m2://35YQ94FNV1",
  "url": "https://math2.tamnd.com/wiki/lovasz-local-lemma/",
  "writing": {
    "tag": "35YQ94FNV1",
    "kind": "statement",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      },
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
