{
  "slug": "civer",
  "name": "CIVER",
  "tagline": "Modular SMT verification integrated in a Circom fork",
  "maintainer": "COSTA group, Universidad Complutense de Madrid (Albert Rubio et al.)",
  "url": "https://github.com/costa-group/circom_civer",
  "repo": "https://github.com/costa-group/circom_civer",
  "category": "zk-circuits",
  "targets": [
    "Circom 2.1.6"
  ],
  "approach": "Z3-backed weak safety (determinism), tag specifications, pre- and post-conditions, verified bottom-up per template",
  "license": "Open source (GPL)",
  "status": "Research, maintained; R1CS, PLONK and ACIR support planned",
  "summary": "CIVER is a verifier built into a fork of the Circom compiler by the team behind Circom's own maintainers' academic group. It checks weak safety (every output determined by inputs), tag specifications and user-written pre- and post-conditions template by template, reusing results bottom-up so large circomlib-style codebases scale.",
  "details": [
    "Because it runs inside the compiler, CIVER sees the circuit exactly as compiled, avoiding the extraction gap. Its post-condition mode is a lightweight route to functional properties without a proof assistant."
  ],
  "strengths": [
    "No extraction step; verifies what the compiler emits.",
    "Modular, so circomlib-scale codebases are feasible.",
    "Supports functional pre- and post-conditions, not just determinism."
  ],
  "limits": [
    "Circom only, pinned to a compiler version.",
    "SMT limits: timeouts on nonlinear-heavy templates.",
    "Academic maintenance cadence."
  ],
  "fit": [
    "Run CIVER alongside Picus on Circom; use its post-conditions to state the properties an audit cares about."
  ],
  "references": [
    [
      "circom_civer repository",
      "https://github.com/costa-group/circom_civer"
    ]
  ],
  "category_name": "ZK circuit verification",
  "page": "https://sorryfree.com/frameworks/civer/",
  "updated": "2026-09-13"
}