{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $(\\mathcal{C}, \\otimes, I, \\alpha, \\lambda, \\rho)$ be a [[monoidal category|M3MSQ3NKAE]].\nCall a formal word any expression built from variables $x_1, x_2, \\ldots$ and the unit $I$ with the binary operation $\\otimes$.\nCall a formal morphism between two words any composite of formal instances of $\\alpha$, $\\lambda$, $\\rho$ and their inverses, tensored on both sides with identities.\n\n1. Any two formal morphisms between the same two words are equal after every substitution of objects of $\\mathcal{C}$ for the variables. In other words, every formal [[diagram|WV898P4X16]] built from $\\alpha$, $\\lambda$ and $\\rho$ commutes.\n2. $\\mathcal{C}$ is equivalent, by a strong [[monoidal functor|PY430TXMG0]] that is an [[equivalence of categories|K7A04ZBD92]], to a strict monoidal category.\n\n## Remarks\n\nProof idea for part 1: every word can be moved by a formal morphism to a normal form.\nFor example, the normal form can put all brackets to the right and remove all copies of $I$.\nOne shows that any two such moves to normal form are equal, using the [[pentagon identity|XM4NTS5BGG]] and the triangle identity to compare the possible first steps.\nThen any formal morphism $u \\to v$ equals the composite of the move $u \\to$ normal form and the inverse of the move $v \\to$ normal form.\nEquivalently, the free monoidal category on a set of variables is a preorder.\n\nThe word \"formal\" is necessary.\nA diagram of instances of $\\alpha$, $\\lambda$, $\\rho$ on actual objects may fail to commute.\nThis can happen when the diagram only makes sense because two different words give equal objects, for example when $A \\otimes B = C$ holds in $\\mathcal{C}$.\nFormal diagrams track each variable, so such accidental identifications are not allowed.\n\n## Explanations\n\n### L1 human\n\nIn a monoidal category, brackets and unit objects can be moved around using fixed isomorphisms.\nThe theorem says that it never matters which route of such moves one takes: all routes give the same isomorphism.\nSo one may safely write $A \\otimes B \\otimes C$ without brackets, as for an ordinary associative product.\n\n### L2 human\n\nCoherence is what makes calculations in monoidal categories practical: it justifies string diagrams and the habit of pretending that the tensor product is strictly associative.\nIt reduces infinitely many coherence conditions to the two axioms of the definition, the pentagon and the triangle.\nFor braided monoidal categories the analogous statement says that formal diagrams commute when they have the same underlying braid; for symmetric ones, when they have the same underlying permutation.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "M3MSQ3NKAE"
    ],
    "kind": "statement",
    "msc": [
      "18M05",
      "18N20"
    ],
    "name": "Mac Lane's coherence theorem",
    "role": "theorem",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Coherency_(homotopy_theory)"
      }
    ],
    "tag": "2W2X7EBG2S",
    "uses": [
      "M3MSQ3NKAE",
      "XM4NTS5BGG",
      "WV898P4X16",
      "PY430TXMG0",
      "K7A04ZBD92"
    ]
  },
  "kind": "statement",
  "link": "https://tamnd.github.io/math2/node/2W2X7EBG2S/",
  "links": [
    {
      "field": "about",
      "target": "M3MSQ3NKAE"
    },
    {
      "field": "uses",
      "target": "M3MSQ3NKAE"
    },
    {
      "field": "uses",
      "target": "XM4NTS5BGG"
    },
    {
      "field": "uses",
      "target": "WV898P4X16"
    },
    {
      "field": "uses",
      "target": "PY430TXMG0"
    },
    {
      "field": "uses",
      "target": "K7A04ZBD92"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/2W2X7EBG2S.md",
  "msc": [
    "18M05",
    "18N20"
  ],
  "name": "Mac Lane's coherence theorem",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/2W2/2W2X7EBG2S.md",
  "status": null,
  "tag": "2W2X7EBG2S",
  "uri": "m2://2W2X7EBG2S",
  "url": "https://tamnd.github.io/math2/wiki/mac-lanes-coherence-theorem/",
  "writing": {
    "tag": "2W2X7EBG2S",
    "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
      }
    ]
  }
}
