{
  "aliases": null,
  "backlinks": [
    {
      "field": "uses",
      "target": "4DQGSSWREK"
    },
    {
      "field": "uses",
      "target": "97QF3KHSBY"
    },
    {
      "field": "uses",
      "target": "FWRJV1ZABC"
    },
    {
      "field": "uses",
      "target": "HZ17ES9PDY"
    },
    {
      "field": "uses",
      "target": "QPV0HNP22S"
    },
    {
      "field": "uses",
      "target": "YWX4FCFPAP"
    },
    {
      "field": "uses",
      "target": "ZREF8MTYNW"
    },
    {
      "field": "about",
      "target": "97QF3KHSBY"
    },
    {
      "field": "defines",
      "target": "XZV7BD3D66"
    }
  ],
  "body": "\n## Summary\n\nA primitive recursive function is a function on the [[natural numbers|0MWKJ44V5A]] built from zero, successor and projections by composition and primitive recursion.\nPrimitive recursion defines $f(n + 1)$ from $f(n)$, like a for-loop whose number of steps is fixed in advance.\nEvery primitive recursive function is total and [[computable|KZSB5E471K]], and most functions met in ordinary number theory are primitive recursive.\nNot every total computable function is primitive recursive; the [[Ackermann function|N470JF7ZJX]] is the classical example.\n\n## Explanations\n\n### L1 human\n\nStart with the simplest functions: the constant $0$, adding one, and picking one argument out of a list.\nThen allow two ways of building new functions: plugging functions into each other, and defining a value at $n + 1$ from the value at $n$.\nAddition comes from adding one repeatedly, multiplication from adding repeatedly, and powers from multiplying repeatedly.\nEvery function obtained this way can be computed by a program whose loops have a bound known before the loop starts.\n",
  "commit": "547b6eddb8f2feb8d579f2d633d22a27b7e132fc",
  "front": {
    "kind": "concept",
    "msc": [
      "03D20"
    ],
    "name": "Primitive recursive function",
    "same_as": {
      "wikidata": "Q1570472",
      "wikipedia": "Primitive recursive function"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Primitive_recursive_function"
      }
    ],
    "specializes": [
      "KZSB5E471K"
    ],
    "tag": "5NVA2JRHPV"
  },
  "kind": "concept",
  "link": "https://math2.tamnd.com/node/5NVA2JRHPV/",
  "links": [
    {
      "field": "specializes",
      "target": "KZSB5E471K"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/5NVA2JRHPV.md",
  "msc": [
    "03D20"
  ],
  "name": "Primitive recursive function",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/5NV/5NVA2JRHPV.md",
  "status": null,
  "tag": "5NVA2JRHPV",
  "uri": "m2://5NVA2JRHPV",
  "url": "https://math2.tamnd.com/wiki/primitive-recursive-function/",
  "writing": {
    "tag": "5NVA2JRHPV",
    "kind": "concept",
    "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
      }
    ]
  }
}
