{
  "slug": "proof-systems",
  "name": "Proof systems and computational proofs",
  "short": "proof-system verification",
  "title": "Formal verification of proof systems and cryptographic security proofs: ArkLib, EasyCrypt, CryptoVerif, SSProve, ProofFrog",
  "summary": "Frameworks for machine-checking the cryptographic argument itself: knowledge soundness of a polynomial IOP, the security reduction of a KEM, or the game-hopping proof in a paper. These work in the computational model, where the adversary is a probabilistic polynomial-time algorithm and security is a concrete bound, and they are the only tools on this index that verify the proof system rather than the circuit inside it.",
  "intro": [
    "A verified circuit is only as good as the proof system that compiles it. Sum-check, FRI, STIR and WHIR, Fiat-Shamir transforms and polynomial commitment schemes all carry pen-and-paper soundness proofs that have historically contained errors. Two families of tools address this. ArkLib formalizes interactive oracle reductions and their composition in Lean 4, targeting the SNARK components the Ethereum Foundation cares about. EasyCrypt, CryptoVerif and SSProve are general computational provers, used for KEMs, signatures, TLS and, in one production case, a ZK verifier's honesty proof.",
    "Expect these projects to be slower and more research-shaped than circuit verification. The payoff is that they close the gap between a verified circuit and a verified system, which is why the Ethereum Foundation's 2025 zkEVM security roadmap requires a formal soundness argument for recursion by the end of 2026."
  ],
  "choose": [
    "Verifying a SNARK component (sum-check, FRI/STIR/WHIR, polynomial commitments, Fiat-Shamir): **ArkLib**, in Lean 4, with VCV-io for probabilistic reasoning.",
    "Proving a primitive or protocol secure in the computational model with a team that already writes game-based proofs: **EasyCrypt** (paired with Jasmin for verified code) or **SSProve** in Rocq.",
    "Automating a game sequence for a protocol like TLS, Signal or WireGuard: **CryptoVerif**.",
    "Checking that a paper's game-hopping proof is well-formed: **ProofFrog**.",
    "Proving a soundness bound for a Reed-Solomon proximity problem: the **better.codes** challenge is the live venue, with Lean-checked submissions."
  ],
  "tools": [
    {
      "name": "ArkLib",
      "page": "https://sorryfree.com/frameworks/arklib/"
    },
    {
      "name": "EasyCrypt",
      "page": "https://sorryfree.com/frameworks/easycrypt/"
    },
    {
      "name": "CryptoVerif",
      "page": "https://sorryfree.com/frameworks/cryptoverif/"
    },
    {
      "name": "SSProve",
      "page": "https://sorryfree.com/frameworks/ssprove/"
    },
    {
      "name": "ProofFrog",
      "page": "https://sorryfree.com/frameworks/prooffrog/"
    },
    {
      "name": "Squirrel",
      "page": "https://sorryfree.com/frameworks/squirrel/"
    }
  ],
  "page": "https://sorryfree.com/categories/proof-systems/",
  "updated": "2026-09-13"
}