{"adoption": {"forks": 299, "observed_at": "2026-08-28T04:03:37.066403+00:00", "stars": 1109}, "canonical_url": "https://ross.abutalabs.com/products/cbmc", "card": {"archived": false, "artifact_type": "cli-tool", "description": "C Bounded Model Checker", "domain": ["developer-tools", "security", "testing"], "enriched": true, "function": ["testing", "security", "developer-tools"], "health_score": 99, "homepage": "https://diffblue.github.io/cbmc", "language": "C++", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["diffblue/cbmc"], "name": "diffblue/cbmc", "platform": ["windows", "cpp", "cli"], "pushed_at": "2026-08-21T03:32:14+00:00", "repo": "diffblue/cbmc", "stars": 1109, "tags": ["bounded-model-checking", "formal-verification", "model-checking", "c-verification", "cpp-verification", "memory-safety", "smt-solver", "assertion-checking", "undefined-behavior", "algorithms", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["verify C programs for buffer overflows and array bounds violations", "check pointer safety and memory errors in C/C++ code", "detect undefined behavior like signed integer overflow", "prove user-specified assertions hold on all bounded inputs", "verify C code consistency against Verilog hardware designs", "formally verify embedded or safety-critical C code", "find bugs via exhaustive path exploration instead of sampling test inputs"], "what_it_is": "CBMC (C Bounded Model Checker) is a formal verification tool for C and C++ programs that explores all possible execution paths on bounded inputs to check assertions, memory safety, and undefined behavior. It works by unwinding loops and passing the resulting formula to a decision procedure (SMT solver).", "when_to_avoid": ["your codebase has deep or unbounded loops/recursion that cannot be practically unwound", "you only need lightweight static analysis or linting", "you need runtime testing or fuzzing rather than formal verification", "you work primarily in languages other than C/C++"], "when_to_choose": ["you need formal guarantees about C/C++ code correctness for bounded inputs", "you want exhaustive checking of memory safety and undefined behavior rather than fuzzing", "you are verifying safety-critical or embedded C code", "you need to check equivalence between C and hardware description languages"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cbmc", "repo": "diffblue/cbmc", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.066403+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:43:34.672476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd0dcbeba8e60821595dcff917c046267151ba53ed0426d518a5de42cfbf9250", "fetched_at": "2026-08-28T04:03:37.066403+00:00", "kind": "readme", "missing": false, "url": "https://github.com/diffblue/cbmc"}, {"content_hash": "f9e6759140b885fe07a93855dcf39f26f69c8822be906bf90778b201ad203b43", "fetched_at": "2026-08-29T12:47:04.355625+00:00", "kind": "homepage", "missing": false, "url": "https://diffblue.github.io/cbmc"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.066403+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:43:34.672476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd0dcbeba8e60821595dcff917c046267151ba53ed0426d518a5de42cfbf9250", "fetched_at": "2026-08-28T04:03:37.066403+00:00", "kind": "readme", "missing": false, "url": "https://github.com/diffblue/cbmc"}, {"content_hash": "f9e6759140b885fe07a93855dcf39f26f69c8822be906bf90778b201ad203b43", "fetched_at": "2026-08-29T12:47:04.355625+00:00", "kind": "homepage", "missing": false, "url": "https://diffblue.github.io/cbmc"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:43:34.672476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd0dcbeba8e60821595dcff917c046267151ba53ed0426d518a5de42cfbf9250", "fetched_at": "2026-08-28T04:03:37.066403+00:00", "kind": "readme", "missing": false, "url": "https://github.com/diffblue/cbmc"}, {"content_hash": "f9e6759140b885fe07a93855dcf39f26f69c8822be906bf90778b201ad203b43", "fetched_at": "2026-08-29T12:47:04.355625+00:00", "kind": "homepage", "missing": false, "url": "https://diffblue.github.io/cbmc"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.066403+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.066403+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.066403+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:43:34.672476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd0dcbeba8e60821595dcff917c046267151ba53ed0426d518a5de42cfbf9250", "fetched_at": "2026-08-28T04:03:37.066403+00:00", "kind": "readme", "missing": false, "url": "https://github.com/diffblue/cbmc"}, {"content_hash": "f9e6759140b885fe07a93855dcf39f26f69c8822be906bf90778b201ad203b43", "fetched_at": "2026-08-29T12:47:04.355625+00:00", "kind": "homepage", "missing": false, "url": "https://diffblue.github.io/cbmc"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.066403+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.066403+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:43:34.672476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd0dcbeba8e60821595dcff917c046267151ba53ed0426d518a5de42cfbf9250", "fetched_at": "2026-08-28T04:03:37.066403+00:00", "kind": "readme", "missing": false, "url": "https://github.com/diffblue/cbmc"}, {"content_hash": "f9e6759140b885fe07a93855dcf39f26f69c8822be906bf90778b201ad203b43", "fetched_at": "2026-08-29T12:47:04.355625+00:00", "kind": "homepage", "missing": false, "url": "https://diffblue.github.io/cbmc"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.066403+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.066403+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.066403+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:43:34.672476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd0dcbeba8e60821595dcff917c046267151ba53ed0426d518a5de42cfbf9250", "fetched_at": "2026-08-28T04:03:37.066403+00:00", "kind": "readme", "missing": false, "url": "https://github.com/diffblue/cbmc"}, {"content_hash": "f9e6759140b885fe07a93855dcf39f26f69c8822be906bf90778b201ad203b43", "fetched_at": "2026-08-29T12:47:04.355625+00:00", "kind": "homepage", "missing": false, "url": "https://diffblue.github.io/cbmc"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.066403+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.066403+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:43:34.672476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd0dcbeba8e60821595dcff917c046267151ba53ed0426d518a5de42cfbf9250", "fetched_at": "2026-08-28T04:03:37.066403+00:00", "kind": "readme", "missing": false, "url": "https://github.com/diffblue/cbmc"}, {"content_hash": "f9e6759140b885fe07a93855dcf39f26f69c8822be906bf90778b201ad203b43", "fetched_at": "2026-08-29T12:47:04.355625+00:00", "kind": "homepage", "missing": false, "url": "https://diffblue.github.io/cbmc"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:43:34.672476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd0dcbeba8e60821595dcff917c046267151ba53ed0426d518a5de42cfbf9250", "fetched_at": "2026-08-28T04:03:37.066403+00:00", "kind": "readme", "missing": false, "url": "https://github.com/diffblue/cbmc"}, {"content_hash": "f9e6759140b885fe07a93855dcf39f26f69c8822be906bf90778b201ad203b43", "fetched_at": "2026-08-29T12:47:04.355625+00:00", "kind": "homepage", "missing": false, "url": "https://diffblue.github.io/cbmc"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:43:34.672476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd0dcbeba8e60821595dcff917c046267151ba53ed0426d518a5de42cfbf9250", "fetched_at": "2026-08-28T04:03:37.066403+00:00", "kind": "readme", "missing": false, "url": "https://github.com/diffblue/cbmc"}, {"content_hash": "f9e6759140b885fe07a93855dcf39f26f69c8822be906bf90778b201ad203b43", "fetched_at": "2026-08-29T12:47:04.355625+00:00", "kind": "homepage", "missing": false, "url": "https://diffblue.github.io/cbmc"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:43:34.672476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd0dcbeba8e60821595dcff917c046267151ba53ed0426d518a5de42cfbf9250", "fetched_at": "2026-08-28T04:03:37.066403+00:00", "kind": "readme", "missing": false, "url": "https://github.com/diffblue/cbmc"}, {"content_hash": "f9e6759140b885fe07a93855dcf39f26f69c8822be906bf90778b201ad203b43", "fetched_at": "2026-08-29T12:47:04.355625+00:00", "kind": "homepage", "missing": false, "url": "https://diffblue.github.io/cbmc"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 86}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3851, "days_push": 12, "days_rel": 12, "gap_med": 52.0, "n_releases_24m": 13}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}