{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nLet $A$ be a nonempty set.\nLet $\\Gamma$ be a set of finitary relations on $A$.\nA *primitive positive formula* over $\\Gamma$ is a formula of the form\n$$\\exists y_1 \\cdots \\exists y_k \\, \\bigl(\\varphi_1 \\wedge \\cdots \\wedge \\varphi_r\\bigr).$$\nHere each $\\varphi_j$ is an equation $z_1 = z_2$ or an atomic formula $R(z_1, \\dots, z_m)$ with $R \\in \\Gamma$ of arity $m$.\nThe $z_i$ are variables.\nA relation $S \\subseteq A^p$ is *primitive positive definable* from $\\Gamma$ if $S = \\set{(a_1, \\dots, a_p) \\in A^p : \\psi(a_1, \\dots, a_p)}$.\nHere $\\psi(x_1, \\dots, x_p)$ is a primitive positive formula over $\\Gamma$ with free variables $x_1, \\dots, x_p$.\nA *relational clone* on $A$ is a set $\\Gamma$ of finitary relations on $A$ such that:\n\n1. $\\Gamma$ contains the binary equality relation $\\set{(a, a) : a \\in A}$.\n2. $\\Gamma$ contains the empty relation of each arity.\n3. Every relation that is primitive positive definable from $\\Gamma$ belongs to $\\Gamma$.\n\n## Remarks\n\nExample: for any set $F$ of operations on $A$, the set $\\operatorname{Inv}(F)$ of all relations preserved by every $f \\in F$ is a relational clone.\nCheck: equality and empty relations are preserved by every operation.\nIf the relations in a primitive positive formula are preserved by $f$, so is the defined relation, because $f$ can be applied to the witnesses $y_i$ too.\nNon-example: on $\\set{0, 1}$, the set consisting of equality, the empty relations and the single relation $R = \\set{(0, 1)}$ is not a relational clone.\nThe formula $\\exists y \\, R(x, y)$ defines the unary relation $\\set{0}$, which is not in this set.\nConventions differ slightly between texts on whether the empty relation is included.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "defines": "MC25MTN2N7",
    "kind": "definition",
    "msc": [
      "08A40",
      "08A02"
    ],
    "name": "Relational clone",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Clone_(algebra)"
      }
    ],
    "tag": "PZES1MKY8M",
    "uses": [
      "05AVARPXA2",
      "09CEDJYBKP"
    ]
  },
  "kind": "definition",
  "link": "https://tamnd.github.io/math2/node/PZES1MKY8M/",
  "links": [
    {
      "field": "defines",
      "target": "MC25MTN2N7"
    },
    {
      "field": "uses",
      "target": "05AVARPXA2"
    },
    {
      "field": "uses",
      "target": "09CEDJYBKP"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/PZES1MKY8M.md",
  "msc": [
    "08A40",
    "08A02"
  ],
  "name": "Relational clone",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/PZE/PZES1MKY8M.md",
  "status": null,
  "tag": "PZES1MKY8M",
  "uri": "m2://PZES1MKY8M",
  "url": "https://tamnd.github.io/math2/wiki/relational-clone-definition/",
  "writing": {
    "tag": "PZES1MKY8M",
    "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
      }
    ]
  }
}
