{
  "type": "option",
  "name": "Lookup arguments: Plookup, LogUp, cq, Lasso/Shout/Twist",
  "slug": "lookup-arguments",
  "section": {
    "id": "proof-systems",
    "number": "01",
    "title": "Choosing a proof system",
    "url": "https://zkpick.com/proof-systems/"
  },
  "url": "https://zkpick.com/proof-systems/lookup-arguments/",
  "markdown": "https://zkpick.com/md/proof-systems/lookup-arguments.md",
  "category": "Cross-cutting — often the real cost driver",
  "summary": "Lookup arguments: Plookup, LogUp, cq, Lasso/Shout/Twist: Cross-cutting — often the real cost driver. Lookup arguments prove that values appear in a table, and are how systems express operations that are expensive as raw arithmetic. Maturity: Plookup and LogUp production; structure-exploiting variants research-stage. Maintained by: Plookup: Gabizon and Williamson (Aztec). LogUp: Haböck (Polygon). cq: Eagen, Fiore and Gabizon. Lasso, Twist and Shout: Setty, Thaler and collaborators (a16z crypto). Choose it when: Evaluate the lookup argument explicitly whenever range checks, bitwise operations or instruction decoding dominate your constraint count.",
  "description": "Lookup arguments prove that values appear in a table, and are how systems express operations that are expensive as raw arithmetic. Plookup is the original and ubiquitous; LogUp uses logarithmic derivatives and is substantially cheaper for wide multi-column lookups; cq makes prover cost independent of table size after preprocessing; Lasso and its successors exploit table structure so huge tables need never be materialised.",
  "notes": [],
  "sections": [],
  "strengths": [
    "Frequently determines prover time more than the choice of headline proof system does",
    "LogUp and its GKR variant dominate modern small-field designs",
    "Structure-exploiting arguments make instruction-set-sized tables tractable at all"
  ],
  "tradeoffs": [
    "Plookup scales poorly with large tables and multi-column lookups",
    "cq requires a KZG SRS and amortised preprocessing — poor fit for changing tables",
    "Structure-exploiting schemes are tied to sumcheck arithmetisations, need decomposable tables to deliver their headline benefits, and their reference implementation is self-declared alpha",
    "Multiplicity handling is a known correctness trap: an unconstrained multiplicity column silently breaks soundness"
  ],
  "bestFit": "Evaluate the lookup argument explicitly whenever range checks, bitwise operations or instruction decoding dominate your constraint count.",
  "maintainers": "Plookup: Gabizon and Williamson (Aztec). LogUp: Haböck (Polygon). cq: Eagen, Fiore and Gabizon. Lasso, Twist and Shout: Setty, Thaler and collaborators (a16z crypto)",
  "maturity": "Plookup and LogUp production; structure-exploiting variants research-stage",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "source": "https://eprint.iacr.org/2022/1530",
  "facts": [],
  "relatedFailureModes": [
    {
      "name": "Letting the lookup argument be an afterthought",
      "url": "https://zkpick.com/proof-systems/failure-modes/letting-the-lookup-argument-be-an-afterthought/"
    }
  ],
  "sources": [
    {
      "title": "Plookup — a simplified polynomial protocol for lookup tables",
      "url": "https://eprint.iacr.org/2020/315",
      "kind": "paper"
    },
    {
      "title": "Multivariate lookups based on logarithmic derivatives (LogUp)",
      "url": "https://eprint.iacr.org/2022/1530",
      "kind": "paper"
    },
    {
      "title": "cq — cached quotients for fast lookups",
      "url": "https://eprint.iacr.org/2022/1763",
      "kind": "paper"
    }
  ],
  "updated": "2026-09-12",
  "version": "1.3",
  "canonical": "https://zkpick.com/proof-systems/lookup-arguments/",
  "authors": [
    "MarketComp"
  ]
}