{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nA *finite-injury priority construction* builds sets $A \\subseteq \\N$ by a computable process in stages $s = 0, 1, 2, \\ldots$, as follows.\n\n1. The goal is a list of *requirements* $R_0, R_1, R_2, \\ldots$, and $R_i$ has *higher priority* than $R_j$ when $i \u003c j$.\n2. At each stage $s$, finitely many numbers are added to the finite approximation $A_s$, so $A_0 \\subseteq A_1 \\subseteq \\cdots$ and $A = \\bigcup_s A_s$ is [[computably enumerable|TN9G24VABN]].\n3. At a stage, an action taken for $R_i$ may undo the work done for some $R_j$ with $j \u003e i$; then $R_j$ is *injured* and starts again.\n4. An action for $R_j$ never injures any $R_i$ with $i \u003c j$.\n\nThe construction is *finite-injury* if each requirement is injured only finitely often and acts only finitely often.\nThe *priority method* is the use of such constructions to prove the existence of computably enumerable sets with given properties.\nIt also covers extensions in which requirements may be injured infinitely often.\n\n## Remarks\n\nExample: the proof of the [[Friedberg–Muchnik theorem|RA358M9QCN]] is a finite-injury construction with requirements $A \\ne \\Phi_e^B$ and $B \\ne \\Phi_e^A$.\nBy induction on $i$, after some stage no requirement before $R_i$ acts, so $R_i$ is injured only finitely often and is met.\n\nNon-example: a construction of $A$ that at each stage asks whether a given program halts is not a priority construction in this sense.\nIt is not a computable process, so it does not make $A$ computably enumerable.\n\nThe proof that a finite-injury construction succeeds is usually an induction on the priority order.\nInfinite-injury methods, such as those used for the Sacks density theorem, allow some requirements to be injured infinitely often.\n",
  "commit": "547b6eddb8f2feb8d579f2d633d22a27b7e132fc",
  "front": {
    "defines": "3BZFSC5QZ2",
    "kind": "definition",
    "msc": [
      "03D25",
      "03D28"
    ],
    "name": "Priority method",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Turing_degree"
      }
    ],
    "tag": "Y1N80NR1CG",
    "uses": [
      "TN9G24VABN",
      "KZSB5E471K"
    ]
  },
  "kind": "definition",
  "link": "https://math2.tamnd.com/node/Y1N80NR1CG/",
  "links": [
    {
      "field": "defines",
      "target": "3BZFSC5QZ2"
    },
    {
      "field": "uses",
      "target": "TN9G24VABN"
    },
    {
      "field": "uses",
      "target": "KZSB5E471K"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/Y1N80NR1CG.md",
  "msc": [
    "03D25",
    "03D28"
  ],
  "name": "Priority method",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/Y1N/Y1N80NR1CG.md",
  "status": null,
  "tag": "Y1N80NR1CG",
  "uri": "m2://Y1N80NR1CG",
  "url": "https://math2.tamnd.com/wiki/priority-method-definition/",
  "writing": {
    "tag": "Y1N80NR1CG",
    "kind": "definition",
    "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
      }
    ]
  }
}
