{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Proof\n\nWe cover $[a, b]$ by open sets on which the error is small, and use compactness to pick one index.\n\n1. Let $a \u003c b$, and let $f_n$ and $f$ be as in the statement. For each $n$, let $g_n = f - f_n$.\n2. Fix $x \\in [a, b]$ and $n$. For $m \\ge n$, we have $f_n(x) \\le f_m(x)$. Letting $m \\to \\infty$ gives $f_n(x) \\le f(x)$, since [[limits preserve non-strict inequalities|0N32V0E3XJ]]. So $g_n(x) \\ge 0$.\n3. Since $f_n(x) \\le f_{n+1}(x)$, we get $g_n(x) \\ge g_{n+1}(x)$ for all $n$ and $x$.\n4. Since $f_n \\to f$ [[pointwise|056FSKG32J]], $g_n(x) \\to 0$ for each $x \\in [a, b]$.\n5. Each $g_n = f + (-1) \\cdot f_n$ is continuous on $[a, b]$, since [[sums and products of continuous functions are continuous|0VGMHCF4SC]] and constants are continuous.\n6. Fix $\\varepsilon \u003e 0$. For each $n$, let $U_n$ be the union of all open intervals $V$ such that $g_n(x) \u003c \\varepsilon$ for every $x \\in V \\cap [a, b]$.\n7. Each $U_n$ is a union of open intervals, so it is an [[open set|01ZQQDCERP]] of $\\R$. By its definition, $g_n(x) \u003c \\varepsilon$ for each $x \\in U_n \\cap [a, b]$.\n8. Let $x \\in [a, b]$ with $g_n(x) \u003c \\varepsilon$. By step 5 and the [[epsilon-delta form of continuity|0W8YHHGCJG]] with tolerance $\\varepsilon - g_n(x) \u003e 0$, there is $\\delta \u003e 0$ with $g_n(t) \u003c \\varepsilon$ for all $t \\in [a, b]$ with $|t - x| \u003c \\delta$. So $(x - \\delta, x + \\delta)$ is one of the intervals in step 6, and $x \\in U_n$.\n9. Let $x \\in [a, b]$. By step 4, there is $n$ with $g_n(x) \u003c \\varepsilon$. By step 8, $x \\in U_n$. So the family $(U_n)_{n \\ge 1}$ is an [[open cover|0NVPNC12JY]] of $[a, b]$.\n10. The interval $[a, b]$ is closed and bounded. By the [[Heine–Borel theorem|07PFYV65MB]], it is [[compact|00R0X1WGPX]].\n11. By step 10, finitely many of the sets cover $[a, b]$, say $U_{n_1}, \\dots, U_{n_k}$. Let $N = \\max(n_1, \\dots, n_k)$.\n12. Let $x \\in [a, b]$. Then $x \\in U_{n_i}$ for some $i$, so $g_{n_i}(x) \u003c \\varepsilon$ by step 7.\n13. Let $n \\ge N$. Since $n \\ge N \\ge n_i$, steps 2 and 3 give $0 \\le g_n(x) \\le g_{n_i}(x) \u003c \\varepsilon$.\n14. So $|f_n(x) - f(x)| = g_n(x) \u003c \\varepsilon$ for all $n \\ge N$ and all $x \\in [a, b]$. As $\\varepsilon \u003e 0$ was arbitrary, $f_n \\to f$ [[uniformly|08FPABDQ4C]] on $[a, b]$.\n\n## Idea\n\nThe set where $f - f_n \u003c \\varepsilon$ is open, by continuity, and it grows with $n$, by monotonicity. Pointwise convergence makes these sets cover $[a, b]$. Compactness reduces the cover to finitely many sets, and the largest of them is already all of $[a, b]$.\n",
  "commit": "4a3290d299c8b2cd6493fce2296920ba7f82d942",
  "front": {
    "kind": "proof",
    "msc": [
      "40A30"
    ],
    "name": "Proof of Dini's theorem by compactness",
    "proves": "0XRRYF1HPE",
    "sources": [
      {
        "locator": "Proof",
        "url": "https://proofwiki.org/wiki/Dini%27s_Theorem"
      }
    ],
    "tag": "PTER4CQT32",
    "uses": [
      "056FSKG32J",
      "08FPABDQ4C",
      "0N32V0E3XJ",
      "0VGMHCF4SC",
      "0W8YHHGCJG",
      "01ZQQDCERP",
      "0NVPNC12JY",
      "00R0X1WGPX",
      "07PFYV65MB"
    ]
  },
  "kind": "proof",
  "link": "https://math2.tamnd.com/node/PTER4CQT32/",
  "links": [
    {
      "field": "proves",
      "target": "0XRRYF1HPE"
    },
    {
      "field": "uses",
      "target": "056FSKG32J"
    },
    {
      "field": "uses",
      "target": "08FPABDQ4C"
    },
    {
      "field": "uses",
      "target": "0N32V0E3XJ"
    },
    {
      "field": "uses",
      "target": "0VGMHCF4SC"
    },
    {
      "field": "uses",
      "target": "0W8YHHGCJG"
    },
    {
      "field": "uses",
      "target": "01ZQQDCERP"
    },
    {
      "field": "uses",
      "target": "0NVPNC12JY"
    },
    {
      "field": "uses",
      "target": "00R0X1WGPX"
    },
    {
      "field": "uses",
      "target": "07PFYV65MB"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/PTER4CQT32.md",
  "msc": [
    "40A30"
  ],
  "name": "Proof of Dini's theorem by compactness",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/PTE/PTER4CQT32.md",
  "status": null,
  "tag": "PTER4CQT32",
  "uri": "m2://PTER4CQT32",
  "url": "https://math2.tamnd.com/wiki/proof-of-dinis-theorem-by-compactness/",
  "writing": {
    "tag": "PTER4CQT32",
    "kind": "proof",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      }
    ]
  }
}
