{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $\\Omega \\subseteq \\R^n$ be an [[open set|02BH3MCBQB]], and let $C^\\infty_c(\\Omega)$ be the set of smooth functions $\\varphi \\colon \\Omega \\to \\R$ whose support is a compact subset of $\\Omega$.\nLet $f \\colon \\Omega \\to \\R$ be locally [[integrable|X7GTF3D98F]], that is, integrable on every compact subset of $\\Omega$.\nIf\n$$\\int_\\Omega f(x) \\varphi(x) \\, dx = 0 \\quad \\text{for every } \\varphi \\in C^\\infty_c(\\Omega),$$\nthen $f = 0$ [[almost everywhere|RARTMA0ZEC]] on $\\Omega$.\nIn particular, if $f$ is continuous, then $f(x) = 0$ for every $x \\in \\Omega$.\n\n## Remarks\n\nFor continuous $f$ the proof is short.\nIf $f(x_0) \u003e 0$, then $f \u003e 0$ on a ball $B$ around $x_0$; a [[bump function|HS65DW0HXH]] $\\varphi \\ge 0$ supported in $B$ with $\\varphi(x_0) \u003e 0$ gives $\\int_\\Omega f \\varphi \\, dx \u003e 0$, a contradiction.\nFor locally integrable $f$, one convolves $f$ with a smooth mollifier: the hypothesis makes every mollified function vanish, and these converge to $f$ in $L^1$ on compact sets.\n\nThe lemma is the step that turns the vanishing of the [[first variation|5B8NFYB2XQ]] into the [[Euler–Lagrange equation|PS0VV149ET]].\nAfter an integration by parts, the first variation has the form $\\int_\\Omega E(x) \\varphi(x) \\, dx$, where $E$ is the Euler–Lagrange expression; the lemma gives $E = 0$.\n\nThe class of test functions must be large enough.\nIf only $\\varphi$ with $\\int_\\Omega \\varphi \\, dx = 0$ were allowed, every constant $f$ would satisfy the hypothesis; this case is the [[du Bois-Reymond lemma|AATQKCWAAC]].\n\n## Explanations\n\n### L1 human\n\nIf a function gives zero when it is averaged against every smooth bump, then the function is zero.\nA bump placed where the function is positive would otherwise give a positive answer.\nIt is the reason why \"zero for all variations\" can be turned into an equation that holds at every point.\n\n### L2 human\n\nIn a derivation of the Euler–Lagrange equation one first finds $\\int_a^b \\big(L_z - \\frac{d}{dx} L_p\\big)\\eta \\, dx = 0$ for all $\\eta$ that vanish at the ends.\nThe lemma then gives the pointwise equation $L_z - \\frac{d}{dx} L_p = 0$.\nIn distribution theory the lemma says that a locally integrable function is determined by the distribution it defines.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "PQ25NHV0KS"
    ],
    "kind": "statement",
    "msc": [
      "49K05",
      "49K10",
      "46F05"
    ],
    "name": "Fundamental lemma of the calculus of variations",
    "role": "lemma",
    "same_as": {
      "wikidata": "Q2474925",
      "wikipedia": "Fundamental lemma of the calculus of variations"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Fundamental_lemma_of_the_calculus_of_variations"
      }
    ],
    "tag": "JNDZ86CV3Y",
    "uses": [
      "02BH3MCBQB",
      "X7GTF3D98F",
      "HS65DW0HXH",
      "RARTMA0ZEC",
      "DWJF7ABPR1"
    ]
  },
  "kind": "statement",
  "link": "https://tamnd.github.io/math2/node/JNDZ86CV3Y/",
  "links": [
    {
      "field": "about",
      "target": "PQ25NHV0KS"
    },
    {
      "field": "uses",
      "target": "02BH3MCBQB"
    },
    {
      "field": "uses",
      "target": "X7GTF3D98F"
    },
    {
      "field": "uses",
      "target": "HS65DW0HXH"
    },
    {
      "field": "uses",
      "target": "RARTMA0ZEC"
    },
    {
      "field": "uses",
      "target": "DWJF7ABPR1"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/JNDZ86CV3Y.md",
  "msc": [
    "49K05",
    "49K10",
    "46F05"
  ],
  "name": "Fundamental lemma of the calculus of variations",
  "prov": null,
  "role": "lemma",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/JND/JNDZ86CV3Y.md",
  "status": null,
  "tag": "JNDZ86CV3Y",
  "uri": "m2://JNDZ86CV3Y",
  "url": "https://tamnd.github.io/math2/wiki/fundamental-lemma-of-the-calculus-of-variations/",
  "writing": {
    "tag": "JNDZ86CV3Y",
    "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
      }
    ]
  }
}
